19#define VERSE_ENUM_RUNTIME_TYPE_KINDS(v) \
43#define VISIT_KIND(Name) Name,
63 bIsReachable.store(
true, std::memory_order_relaxed);
67 bIsReachable.store(
false, std::memory_order_relaxed);
71 return bIsReachable.load(std::memory_order_relaxed);
98 virtual bool IsValid(
const void* Data)
const {
return true; }
109 std::atomic<bool> bIsReachable{
false};
115#define VERSE_DEFINE_NONPARAMETRIC_RUNTIME_TYPE(RuntimeTypeType, CType) \
117 struct TRuntimeTypeTraits<CType> \
119 static RuntimeTypeType& GetType() \
121 return RuntimeTypeType::Get(); \
126#define VERSE_IMPLEMENT_GLOBAL_RUNTIME_TYPE(RuntimeTypeClass) \
127 RuntimeTypeClass& RuntimeTypeClass::Get() \
129 static RuntimeTypeClass StaticType; \
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
#define AUTORTFM_DISABLE
Definition AutoRTFMDefines.h:116
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
T TNotNull
Definition NotNull.h:307
uint32 PointerHash(const void *Key)
Definition TypeHash.h:91
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
#define UE_FORCE_CONSTEVAL(expr)
Definition UnrealTemplate.h:246
#define VERSE_DEFINE_NONPARAMETRIC_RUNTIME_TYPE(RuntimeTypeType, CType)
Definition VBPVMRuntimeType.h:115
#define VERSE_ENUM_RUNTIME_TYPE_KINDS(v)
Definition VBPVMRuntimeType.h:19
Definition OutputDevice.h:133
Definition UObjectGlobals.h:2492
Definition StructuredArchiveSlots.h:52
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition StringBuilder.h:79
Definition VBPVMRuntimeType.cpp:8
bool AreEquivalent(const FRuntimeType &TypeA, const void *DataA, const FDynamicallyTypedValue &ValueB)
Definition VBPVMRuntimeType.cpp:10
Definition UnrealMathUtility.h:270
Definition DynamicallyTypedValue.h:26
uint32 GetMinAlignment() const
Definition DynamicallyTypedValue.h:61
EContainsReferences
Definition DynamicallyTypedValue.h:28
SIZE_T GetNumBytes() const
Definition DynamicallyTypedValue.h:59
Definition DynamicallyTypedValue.h:72
Definition VBPVMRuntimeType.h:136
virtual COREUOBJECT_API void DestroyValue(void *Data) const override
Definition VBPVMRuntimeType.cpp:42
virtual COREUOBJECT_API void InitializeValue(void *Data) const override
Definition VBPVMRuntimeType.cpp:47
virtual COREUOBJECT_API void MarkValueReachable(void *Data, FReferenceCollector &Collector) const override
Definition VBPVMRuntimeType.cpp:34
virtual COREUOBJECT_API void ExportValueToText(FString &OutputString, const void *Data, const void *DefaultData, UObject *Parent, UObject *ExportRootScope) const override
Definition VBPVMRuntimeType.cpp:108
static COREUOBJECT_API FRuntimeTypeDynamic & Get()
virtual COREUOBJECT_API bool AreEquivalent(const void *DataA, const FRuntimeType &TypeB, const void *DataB) const override
Definition VBPVMRuntimeType.cpp:182
virtual COREUOBJECT_API void InstanceSubobjects(void *Data, void const *DefaultData, TNotNull< UObject * > Owner, FObjectInstancingGraph *InstanceGraph) const override
Definition VBPVMRuntimeType.cpp:193
virtual COREUOBJECT_API void InitializeValueFromCopy(void *DestData, const void *SourceData) const override
Definition VBPVMRuntimeType.cpp:52
virtual COREUOBJECT_API void AppendDiagnosticString(FUtf8StringBuilderBase &Builder, const void *Data, uint32 RecursionDepth) const override
Definition VBPVMRuntimeType.cpp:22
virtual COREUOBJECT_API bool ImportValueFromText(const TCHAR *&InputString, void *Data, UObject *Parent, FOutputDevice *ErrorText) const override
Definition VBPVMRuntimeType.cpp:121
virtual COREUOBJECT_API void SerializeValue(FStructuredArchive::FSlot Slot, void *Data, const void *DefaultData) const override
Definition VBPVMRuntimeType.cpp:66
virtual COREUOBJECT_API bool AreIdentical(const void *DataA, const void *DataB) const override
Definition VBPVMRuntimeType.cpp:161
virtual COREUOBJECT_API uint32 GetValueHash(const void *Data) const override
Definition VBPVMRuntimeType.cpp:155
Definition VBPVMRuntimeType.h:40
virtual void InstanceSubobjects(void *Data, void const *DefaultData, TNotNull< UObject * > Owner, FObjectInstancingGraph *InstanceGraph) const
Definition VBPVMRuntimeType.h:96
void UnmarkReachable()
Definition VBPVMRuntimeType.h:65
virtual void InitializeIntrusiveUnsetOptionalValue(void *Data) const
Definition VBPVMRuntimeType.h:101
virtual void ExportValueToText(FString &OutputString, const void *Data, const void *DefaultData, UObject *Parent, UObject *ExportRootScope) const =0
virtual bool HasIntrusiveUnsetOptionalState() const
Definition VBPVMRuntimeType.h:100
virtual ~FRuntimeType()
Definition VBPVMRuntimeType.h:57
virtual void MarkReachable(FReferenceCollector &Collector) override
Definition VBPVMRuntimeType.h:61
virtual bool IsValid(const void *Data) const
Definition VBPVMRuntimeType.h:98
friend uint32 GetTypeHash(const TArray< FRuntimeType * > &Types)
Definition VBPVMRuntimeType.h:78
const EKind Kind
Definition VBPVMRuntimeType.h:48
bool IsReachable() const
Definition VBPVMRuntimeType.h:69
virtual void AppendDiagnosticString(FUtf8StringBuilderBase &Builder, const void *Data, uint32 RecursionDepth) const =0
FRuntimeType(EKind InKind, SIZE_T InNumBytes, uint8 InMinAlignmentLogTwo, EContainsReferences InContainsReferences)
Definition VBPVMRuntimeType.h:50
friend uint32 GetTypeHash(const FRuntimeType &Type)
Definition VBPVMRuntimeType.h:74
virtual bool AreEquivalent(const void *DataA, const FRuntimeType &TypeB, const void *DataB) const =0
friend bool operator==(FRuntimeType &Lhs, FRuntimeType &Rhs)
Definition VBPVMRuntimeType.h:87
virtual bool IsIntrusiveOptionalValueSet(const void *Data) const
Definition VBPVMRuntimeType.h:102
EKind
Definition VBPVMRuntimeType.h:42
virtual bool ImportValueFromText(const TCHAR *&InputString, void *Data, UObject *Parent, FOutputDevice *ErrorText) const =0
Definition VBPVMRuntimeType.h:113