UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MassRequirementAccessDetector.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#if WITH_MASSENTITY_DEBUG
8#include "MassEntityQuery.h"
10
11
13
14struct FMassRequirementAccessDetector
15{
19
20private:
21 using FDetectorMethod = bool (FRWAccessDetector::*)() const;
22 template<typename TBitSet>
23 void Operation(const TBitSet& BitSet, FDetectorMethod Op)
24 {
26 BitSet.ExportTypes(Types);
27 for (const UStruct* Type : Types)
28 {
30 {
32 (DetectorRef.*Op)();
33 }
34 }
35 }
36
38 {
39 for (const FMassFragmentRequirementDescription& Req : Requirements)
40 {
41 if (Req.Presence != EMassFragmentPresence::None)
42 {
43 if (Req.AccessMode == EMassFragmentAccess::ReadWrite)
44 {
45 Detectors.Find(Req.StructType)->Get().AcquireWriteAccess();
46 }
47 else if (Req.AccessMode == EMassFragmentAccess::ReadOnly)
48 {
49 Detectors.Find(Req.StructType)->Get().AcquireReadAccess();
50 }
51 }
52 }
53 }
54
56 {
57 for (const FMassFragmentRequirementDescription& Req : Requirements)
58 {
59 if (Req.Presence != EMassFragmentPresence::None)
60 {
61 if (Req.AccessMode == EMassFragmentAccess::ReadWrite)
62 {
63 Detectors.Find(Req.StructType)->Get().ReleaseWriteAccess();
64 }
65 else if (Req.AccessMode == EMassFragmentAccess::ReadOnly)
66 {
67 Detectors.Find(Req.StructType)->Get().ReleaseReadAccess();
68 }
69 }
70 }
71 }
72
74 void AddDetectors(const FStructTracker& StructTracker);
75
77};
78
79#else
80struct FMassEntityQuery;
81#endif // WITH_MASSENTITY_DEBUG
82
83namespace UE::Mass::Debug
84{
86 {
87#if WITH_MASSENTITY_DEBUG
90
93#else
97#endif // WITH_MASSENTITY_DEBUG
98 };
99}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
const bool
Definition NetworkReplayStreaming.h:178
Definition Array.h:670
UE_NODEBUG UE_FORCEINLINE_HINT bool Find(const ElementType &Item, SizeType &Index) const
Definition Array.h:1302
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition Class.h:480
Definition MassCommandBuffer.h:52
Definition MassEntityManager.h:96
Definition MassEntityQuery.h:51
Definition MassRequirements.h:51
Definition StructTypeBitSet.h:275
Definition MassRequirementAccessDetector.h:86
FScopedRequirementAccessDetector(const FMassEntityQuery &)
Definition MassRequirementAccessDetector.h:94