168 int32 SerialNumber = 0;
175 std::atomic<int32> NextSerialNumber = 0;
178 int32 GenerateSerialNumber()
181 return NextSerialNumber.fetch_add(1);
227#if WITH_MASSENTITY_DEBUG
235 static constexpr int MaxGenerationBits = 30;
239 uint32 GenerationId : MaxGenerationBits = 0;
241 uint32 bIsAllocated : 1 = 0;
245 int32 GetSerialNumber()
const;
247 bool operator==(
const FEntityData&
Other)
const;
250 EEntityState GetEntityStateInternal(
const FEntityData& EntityData)
const;
253 const FEntityData& LookupEntity(
int32 Index)
const;
256 uint64 ComputePageSize()
const;
265 uint32 MaximumEntityCountShift = 0;
266 uint32 MaxEntitiesPerPage = 0;
267 uint32 MaxEntitiesPerPageShift = 0;
272 FEntityData** EntityPages =
nullptr;
#define UE_AUTORTFM_ALWAYS_OPEN
Definition AutoRTFMDefines.h:114
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_FORCEINLINE_HINT bool IsValid(const UObject *Test)
Definition Object.h:1875
Definition ArrayView.h:139
Definition ChunkedArray.h:56
Definition SharedPointer.h:692
Definition MassEntityManagerStorage.h:198
virtual int32 Acquire(TArrayView< FMassEntityHandle > OutEntityHandles) override
Definition MassEntityManagerStorage.cpp:474
virtual bool IsValidIndex(int32 Index) const override
Definition MassEntityManagerStorage.cpp:337
virtual int32 GetSerialNumber(int32 Index) const override
Definition MassEntityManagerStorage.cpp:332
virtual int32 ForceReleaseOne(FMassEntityHandle Handle) override
Definition MassEntityManagerStorage.cpp:611
virtual SIZE_T GetAllocatedSize() const override
Definition MassEntityManagerStorage.cpp:365
virtual void SetArchetypeFromShared(int32 Index, TSharedPtr< FMassArchetypeData > &Archetype) override
Definition MassEntityManagerStorage.cpp:299
virtual TSharedPtr< FMassArchetypeData > & GetArchetypeAsShared(int32 Index) override
Definition MassEntityManagerStorage.cpp:289
virtual int32 ComputeFreeSize() const override
Definition MassEntityManagerStorage.cpp:621
virtual ~FConcurrentEntityStorage() override
Definition MassEntityManagerStorage.cpp:265
virtual bool IsEntityActive(FMassEntityHandle EntityHandle) const override
Definition MassEntityManagerStorage.cpp:354
virtual int32 ForceRelease(TConstArrayView< FMassEntityHandle > Handles) override
Definition MassEntityManagerStorage.cpp:583
virtual FMassEntityHandle AcquireOne() override
Definition MassEntityManagerStorage.cpp:444
virtual int32 Num() const override
Definition MassEntityManagerStorage.cpp:616
virtual bool IsValidHandle(FMassEntityHandle EntityHandle) const override
Definition MassEntityManagerStorage.cpp:348
virtual int32 ReleaseOne(FMassEntityHandle Handle) override
Definition MassEntityManagerStorage.cpp:578
virtual FMassArchetypeData * GetArchetype(int32 Index) override
Definition MassEntityManagerStorage.cpp:279
virtual EEntityState GetEntityState(int32 Index) const override
Definition MassEntityManagerStorage.cpp:327
Definition MassEntityManagerStorage.h:138
virtual FMassArchetypeData * GetArchetype(int32 Index) override
Definition MassEntityManagerStorage.cpp:42
virtual int32 Acquire(TArrayView< FMassEntityHandle > OutEntityHandles) override
Definition MassEntityManagerStorage.cpp:132
virtual bool IsEntityActive(FMassEntityHandle EntityHandle) const override
Definition MassEntityManagerStorage.cpp:102
virtual int32 ForceRelease(TConstArrayView< FMassEntityHandle > Handles) override
Definition MassEntityManagerStorage.cpp:198
virtual void SetArchetypeFromShared(int32 Index, TSharedPtr< FMassArchetypeData > &) override
Definition MassEntityManagerStorage.cpp:62
virtual int32 Num() const override
Definition MassEntityManagerStorage.cpp:216
virtual TSharedPtr< FMassArchetypeData > & GetArchetypeAsShared(int32 Index) override
Definition MassEntityManagerStorage.cpp:52
virtual bool IsValidIndex(int32 Index) const override
Definition MassEntityManagerStorage.cpp:91
virtual SIZE_T GetAllocatedSize() const override
Definition MassEntityManagerStorage.cpp:109
virtual FMassEntityHandle AcquireOne() override
Definition MassEntityManagerStorage.cpp:119
virtual int32 ComputeFreeSize() const override
Definition MassEntityManagerStorage.cpp:221
virtual EEntityState GetEntityState(int32 Index) const override
Definition MassEntityManagerStorage.cpp:72
virtual int32 ForceReleaseOne(FMassEntityHandle Handle) override
Definition MassEntityManagerStorage.cpp:211
virtual bool IsValidHandle(FMassEntityHandle EntityHandle) const override
Definition MassEntityManagerStorage.cpp:96
virtual int32 GetSerialNumber(int32 Index) const override
Definition MassEntityManagerStorage.cpp:86
virtual int32 ReleaseOne(FMassEntityHandle Handle) override
Definition MassEntityManagerStorage.cpp:193
Definition MassEntityManagerStorage.h:53
virtual int32 ComputeFreeSize() const =0
virtual int32 Release(TConstArrayView< FMassEntityHandle > Handles)=0
virtual int32 Acquire(TArrayView< FMassEntityHandle > OutEntityHandles)=0
virtual int32 GetSerialNumber(int32 Index) const =0
int32 Acquire(const int32 Count, TArray< FMassEntityHandle > &OutEntityHandles)
Definition MassEntityManagerStorage.cpp:14
virtual EEntityState GetEntityState(int32 Index) const =0
virtual FMassEntityHandle AcquireOne()=0
virtual int32 ForceReleaseOne(FMassEntityHandle Handle)=0
virtual ~IEntityStorageInterface()=default
virtual const TSharedPtr< FMassArchetypeData > & GetArchetypeAsShared(int32 Index) const =0
virtual int32 Num() const =0
virtual int32 ReleaseOne(FMassEntityHandle Handles)=0
virtual bool IsValidHandle(FMassEntityHandle EntityHandle) const =0
virtual bool IsValidIndex(int32 Index) const =0
virtual SIZE_T GetAllocatedSize() const =0
virtual const FMassArchetypeData * GetArchetype(int32 Index) const =0
virtual void SetArchetypeFromShared(int32 Index, TSharedPtr< FMassArchetypeData > &Archetype)=0
virtual void SetArchetypeFromShared(int32 Index, const TSharedPtr< FMassArchetypeData > &Archetype)=0
virtual bool IsValid(int32 Index) const =0
virtual FMassArchetypeData * GetArchetype(int32 Index)=0
virtual int32 ForceRelease(TConstArrayView< FMassEntityHandle > Handles)=0
virtual TSharedPtr< FMassArchetypeData > & GetArchetypeAsShared(int32 Index)=0
EEntityState
Definition MassEntityManagerStorage.h:56
virtual bool IsEntityActive(FMassEntityHandle EntityHandle) const =0
Definition MassArchetypeData.h:21
U16 Index
Definition radfft.cpp:71
Definition MassArchetypeData.h:172
Definition MassEntityHandle.h:13
Definition MassEntityManagerStorage.h:30
uint32 MaxEntitiesPerPage
Definition MassEntityManagerStorage.h:41
uint32 MaxEntityCount
Definition MassEntityManagerStorage.h:35
Definition MassEntityManagerStorage.h:17