7#include "Misc/Optional.h"
9#define UE_API COREUOBJECT_API
28 inline bool IsSet(
const void* Data)
const
98 return IsSet(Data) ? Data :
nullptr;
107 return IsSet(Data) ? Data :
nullptr;
131 return IsSet(Data) ? Data :
nullptr;
136 return IsSet(Data) ? Data :
nullptr;
163 TEXT(
"Expected optional value property to have aligned size, but got misaligned size %i for %s that has minimum alignment %i"),
193#if UE_WITH_CONSTINIT_UOBJECT
#define NULL
Definition oodle2base.h:134
constexpr T Align(T Val, uint64 Alignment)
Definition AlignmentTemplates.h:18
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define checkfSlow(expr, format,...)
Definition AssertionMacros.h:333
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
#define DECLARE_FIELD_API(TClass, TSuperClass, TStaticFlags, TRequiredAPI)
Definition Field.h:257
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
T TNotNull
Definition NotNull.h:307
@ CASTCLASS_FOptionalProperty
Definition ObjectMacros.h:392
EObjectFlags
Definition ObjectMacros.h:552
EPropertyObjectReferenceType
Definition ObjectMacros.h:533
#define UE_API
Definition PropertyOptional.h:9
EPropertyVisitorControlFlow
Definition PropertyVisitor.h:15
EPropertyPointerType
Definition UnrealType.h:156
EConvertFromTypeResult
Definition UnrealType.h:130
Definition Archive.h:1208
FField Super
Definition Field.h:575
COREUOBJECT_API FString GetFullName() const
Definition Field.cpp:599
FFieldVariant Owner
Definition Field.h:600
Definition NameTypes.h:617
Definition PropertyOptional.h:185
virtual UE_API void CopyValuesInternal(void *Dest, void const *Src, int32 Count) const override
Definition PropertyOptional.cpp:414
virtual UE_API bool UseBinaryOrNativeSerialization(const FArchive &Ar) const override
Definition PropertyOptional.cpp:641
virtual UE_API void SaveTypeName(UE::FPropertyTypeNameBuilder &Type) const override
Definition PropertyOptional.cpp:671
virtual UE_API EConvertFromTypeResult ConvertFromType(const FPropertyTag &Tag, FStructuredArchive::FSlot Slot, uint8 *Data, const UStruct *DefaultsStruct, const uint8 *Defaults) override
Definition PropertyOptional.cpp:487
virtual UE_API FString GetCPPMacroType(FString &ExtendedTypeText) const override
Definition PropertyOptional.cpp:143
virtual UE_API void GetInnerFields(TArray< FField * > &OutFields) override
Definition PropertyOptional.cpp:119
virtual UE_API void EmitReferenceInfo(UE::GC::FSchemaBuilder &Schema, int32 BaseOffset, TArray< const FStructProperty * > &EncounteredStructProps, UE::GC::FPropertyStack &DebugPath) override
Definition GarbageCollection.cpp:6641
virtual UE_API void ExportText_Internal(FString &ValueStr, const void *ContainerOrPropertyPtr, EPropertyPointerType PropertyPointerType, const void *DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope) const override
Definition PropertyOptional.cpp:340
virtual UE_API bool CanSerializeFromTypeName(UE::FPropertyTypeName Type) const override
Definition PropertyOptional.cpp:682
virtual UE_API void SerializeItem(FStructuredArchive::FSlot Slot, void *Value, void const *Defaults) const override
Definition PropertyOptional.cpp:195
virtual UE_API void AddReferencedObjects(FReferenceCollector &Collector) override
Definition PropertyOptional.cpp:79
virtual UE_API bool ContainsObjectReference(TArray< const FStructProperty * > &EncounteredStructProps, EPropertyObjectReferenceType InReferenceType=EPropertyObjectReferenceType::Strong) const override
Definition GarbageCollection.cpp:6840
virtual UE_API bool SupportsNetSharedSerialization() const override
Definition PropertyOptional.cpp:335
virtual UE_API void LinkInternal(FArchive &Ar) override
Definition PropertyOptional.cpp:150
virtual UE_API bool LoadTypeName(UE::FPropertyTypeName Type, const FPropertyTag *Tag=nullptr) override
Definition PropertyOptional.cpp:653
virtual UE_API void * ResolveVisitedPathInfo(void *Data, const FPropertyVisitorInfo &Info) const override
Definition PropertyOptional.cpp:716
virtual UE_API FField * GetInnerFieldByName(const FName &InName) override
Definition PropertyOptional.cpp:109
virtual UE_API void ClearValueInternal(void *Data) const override
Definition PropertyOptional.cpp:431
virtual UE_API uint32 GetValueTypeHashInternal(const void *Src) const override
Definition PropertyOptional.cpp:628
virtual UE_API ~FOptionalProperty()
Definition PropertyOptional.cpp:52
virtual UE_API void FinishDestroyInternal(void *Data) const override
Definition PropertyOptional.cpp:463
virtual UE_API bool HasIntrusiveUnsetOptionalState() const override
Definition PropertyOptional.cpp:68
virtual UE_API void GetPreloadDependencies(TArray< UObject * > &OutDeps) override
Definition PropertyOptional.cpp:95
virtual UE_API int32 GetMinAlignment() const override
Definition PropertyOptional.cpp:482
virtual UE_API void InitializeValueInternal(void *Data) const override
Definition PropertyOptional.cpp:436
virtual UE_API void InstanceSubobjects(void *Data, void const *DefaultData, TNotNull< UObject * > Owner, struct FObjectInstancingGraph *InstanceGraph) override
Definition PropertyOptional.cpp:472
virtual UE_API EPropertyVisitorControlFlow Visit(FPropertyVisitorContext &Context, const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorContext &)> InFunc) const override
Definition PropertyOptional.cpp:694
virtual UE_API void DestroyValueInternal(void *Data) const override
Definition PropertyOptional.cpp:448
virtual UE_API void PostDuplicate(const FField &InField) override
Definition PropertyOptional.cpp:102
virtual UE_API bool ContainsClearOnFinishDestroyInternal(TArray< const FStructProperty * > &EncounteredStructProps) const override
Definition PropertyOptional.cpp:457
virtual UE_API bool SameType(const FProperty *Other) const override
Definition PropertyOptional.cpp:74
UE_API void SetValueProperty(FProperty *InValueProperty)
Definition PropertyOptional.cpp:61
virtual UE_API void AddCppProperty(FProperty *Property) override
Definition PropertyOptional.cpp:126
Definition OutputDevice.h:133
Definition UnrealType.h:174
void DestroyValue(void *Dest) const
Definition UnrealType.h:1025
virtual COREUOBJECT_API bool IsIntrusiveOptionalValueSet(const void *Data) const
Definition Property.cpp:2368
virtual COREUOBJECT_API int32 GetMinAlignment() const
Definition Property.cpp:1193
virtual void virtual ExportText_Internal(FString &ValueStr, const void *PropertyValueOrContainer, EPropertyPointerType PointerType, const void *DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope=nullptr) const PURE_VIRTUAL(FProperty const TCHAR ImportText_Internal)(const TCHAR *Buffer, void *ContainerOrPropertyPtr, EPropertyPointerType PointerType, UObject *OwnerObject, int32 PortFlags, FOutputDevice *ErrorText) const PURE_VIRTUAL(FProperty
Definition UnrealType.h:719
virtual FString GetCPPType(FString *ExtendedTypeText=NULL, uint32 CPPExportFlags=0) const PURE_VIRTUAL(FProperty
Definition UnrealType.h:339
UE_FORCEINLINE_HINT int32 GetSize() const
Definition UnrealType.h:1206
virtual COREUOBJECT_API void ClearIntrusiveOptionalValue(void *Data) const
Definition Property.cpp:2374
virtual bool Identical(const void *A, const void *B, uint32 PortFlags=0) const PURE_VIRTUAL(FProperty
Definition UnrealType.h:515
void InitializeValue(void *Dest) const
Definition UnrealType.h:1108
virtual void SerializeItem(FStructuredArchive::FSlot Slot, void *Value, void const *Defaults=NULL) const PURE_VIRTUAL(FProperty virtual COREUOBJECT_API boo NetSerializeItem)(FArchive &Ar, UPackageMap *Map, void *Data, TArray< uint8 > *MetaData=NULL) const
Definition UnrealType.h:582
Definition UObjectGlobals.h:2492
Definition StructuredArchiveSlots.h:52
Definition AssetRegistryState.h:50
Definition PropertyTypeName.h:151
Definition PropertyTypeName.h:46
Definition GarbageCollectionSchema.h:62
Definition GarbageCollectionSchema.h:265
Definition PropertyOptional.h:15
constexpr FOptionalPropertyLayout()
Definition PropertyOptional.h:153
void * GetValuePointerForReadOrReplace(void *Data) const
Definition PropertyOptional.h:118
UE_FORCEINLINE_HINT const bool * GetIsSetPointer(const void *Data) const
Definition PropertyOptional.h:174
void MarkUnset(void *Data) const
Definition PropertyOptional.h:58
FProperty * ValueProperty
Definition PropertyOptional.h:156
void * GetValuePointerForReadOrReplaceIfSet(void *Data) const
Definition PropertyOptional.h:133
void * GetValuePointerForReplaceIfSet(void *Data) const
Definition PropertyOptional.h:104
bool IsSet(const void *Data) const
Definition PropertyOptional.h:28
FProperty * GetValueProperty() const
Definition PropertyOptional.h:22
int32 CalcIsSetOffset() const
Definition PropertyOptional.h:158
const void * GetValuePointerForReadOrReplaceIfSet(const void *Data) const
Definition PropertyOptional.h:128
constexpr FOptionalPropertyLayout(FProperty *InValueProperty)
Definition PropertyOptional.h:16
int32 CalcSize() const
Definition PropertyOptional.h:139
const void * GetValuePointerForReadOrReplace(const void *Data) const
Definition PropertyOptional.h:113
const void * GetValuePointerForRead(const void *Data) const
Definition PropertyOptional.h:78
UE_FORCEINLINE_HINT bool * GetIsSetPointer(void *Data) const
Definition PropertyOptional.h:170
void * MarkSetAndGetInitializedValuePointerToReplace(void *Data) const
Definition PropertyOptional.h:35
const void * GetValuePointerForReadIfSet(const void *Data) const
Definition PropertyOptional.h:95
void * GetValuePointerForReplace(void *Data) const
Definition PropertyOptional.h:86
Definition PropertyTag.h:38
Definition PropertyVisitor.h:268
Definition PropertyVisitor.h:32