UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FObjectPropertyBase Class Reference

#include <UnrealType.h>

+ Inheritance diagram for FObjectPropertyBase:

Public Member Functions

UE_API FObjectPropertyBase (FFieldVariant InOwner, const FName &InName, EObjectFlags InObjectFlags)
 
UE_API FObjectPropertyBase (FFieldVariant InOwner, const UECodeGen_Private::FObjectPropertyParams &Prop, EPropertyFlags AdditionalPropertyFlags=CPF_None)
 
UE_API FObjectPropertyBase (FFieldVariant InOwner, const UECodeGen_Private::FObjectPropertyParamsWithoutClass &Prop, EPropertyFlags AdditionalPropertyFlags=CPF_None)
 
virtual UE_API void Serialize (FArchive &Ar) override
 
virtual UE_API void AddReferencedObjects (FReferenceCollector &Collector) override
 
virtual UE_API void BeginDestroy () override
 
virtual UE_API void PostDuplicate (const FField &InField) override
 
virtual UE_API bool Identical (const void *A, const void *B, uint32 PortFlags) const override
 
virtual UE_API bool NetSerializeItem (FArchive &Ar, UPackageMap *Map, void *Data, TArray< uint8 > *MetaData=NULL) const override
 
virtual bool SupportsNetSharedSerialization () const override
 
virtual UE_API FName GetID () const override
 
virtual UE_API void InstanceSubobjects (void *Data, void const *DefaultData, TNotNull< UObject * > Owner, struct FObjectInstancingGraph *InstanceGraph) override
 
virtual UE_API bool SameType (const FProperty *Other) const override
 
virtual UE_API EPropertyVisitorControlFlow Visit (FPropertyVisitorContext &Context, const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorContext &)> InFunc) const override
 
virtual UE_API voidResolveVisitedPathInfo (void *Data, const FPropertyVisitorInfo &Info) const override
 
FString GetCPPTypeCustom (FString *ExtendedTypeText, uint32 CPPExportFlags, const FString &InnerNativeTypeName) const
 
virtual UObjectLoadObjectPropertyValue (const void *PropertyValueAddress) const
 
UE_FORCEINLINE_HINT UObjectLoadObjectPropertyValue_InContainer (const void *PropertyValueAddress, int32 ArrayIndex=0) const
 
virtual UE_API UObjectGetObjectPropertyValue (const void *PropertyValueAddress) const
 
virtual UE_API TObjectPtr< UObjectGetObjectPtrPropertyValue (const void *PropertyValueAddress) const
 
virtual UE_API UObjectGetObjectPropertyValue_InContainer (const void *ContainerAddress, int32 ArrayIndex=0) const
 
virtual UE_API TObjectPtr< UObjectGetObjectPtrPropertyValue_InContainer (const void *ContainerAddress, int32 ArrayIndex=0) const
 
UE_API void SetObjectPropertyValue (void *PropertyValueAddress, UObject *Value) const
 
UE_API void SetObjectPtrPropertyValue (void *PropertyValueAddress, TObjectPtr< UObject > Ptr) const
 
UE_API void SetObjectPropertyValue_InContainer (void *ContainerAddress, UObject *Value, int32 ArrayIndex=0) const
 
UE_API void SetObjectPtrPropertyValue_InContainer (void *ContainerAddress, TObjectPtr< UObject > Ptr, int32 ArrayIndex=0) const
 
UE_FORCEINLINE_HINT void SetPropertyClass (UClass *NewPropertyClass)
 
virtual UE_API void CheckValidObject (void *ValueAddress, TObjectPtr< UObject > OldValue, const void *Defaults=nullptr) const
 
virtual UE_API bool AllowObjectTypeReinterpretationTo (const FObjectPropertyBase *Other) const
 
- Public Member Functions inherited from FProperty
COREUOBJECT_API FProperty (FFieldVariant InOwner, const FName &InName, EObjectFlags InObjectFlags)
 
COREUOBJECT_API FProperty (FFieldVariant InOwner, const UECodeGen_Private::FPropertyParamsBaseWithOffset &Prop, EPropertyFlags AdditionalPropertyFlags=CPF_None)
 
COREUOBJECT_API FProperty (FFieldVariant InOwner, const UECodeGen_Private::FPropertyParamsBaseWithoutOffset &Prop, EPropertyFlags AdditionalPropertyFlags=CPF_None)
 
COREUOBJECT_API void SetElementSize (int32 NewSize)
 
int32 GetElementSize () const
 
COREUOBJECT_API FString GetNameCPP () const
 
virtual COREUOBJECT_API FString GetCPPMacroType (FString &ExtendedTypeText) const
 
virtual bool HasSetter () const
 
virtual bool HasGetter () const
 
virtual bool HasSetterOrGetter () const
 
virtual void CallSetter (void *Container, const void *InValue) const
 
virtual void CallGetter (const void *Container, void *OutValue) const
 
COREUOBJECT_API EPropertyVisitorControlFlow Visit (const FPropertyVisitorData &Data, const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorPath &, const FPropertyVisitorData &)> InFunc) const
 
COREUOBJECT_API EPropertyVisitorControlFlow Visit (const FPropertyVisitorData &Data, const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorContext &)> InFunc) const
 
UE_FORCEINLINE_HINT int32 GetOffset_ForDebug () const
 
UE_FORCEINLINE_HINT int32 GetOffset_ForUFunction () const
 
UE_FORCEINLINE_HINT int32 GetOffset_ForGC () const
 
UE_FORCEINLINE_HINT int32 GetOffset_ForInternal () const
 
UE_FORCEINLINE_HINT int32 GetOffset_ReplaceWith_ContainerPtrToValuePtr () const
 
void LinkWithoutChangingOffset (FArchive &Ar)
 
int32 Link (FArchive &Ar)
 
virtual COREUOBJECT_API EConvertFromTypeResult ConvertFromType (const FPropertyTag &Tag, FStructuredArchive::FSlot Slot, uint8 *Data, const UStruct *DefaultsStruct, const uint8 *Defaults)
 
bool Identical_InContainer (const void *A, const void *B, int32 ArrayIndex=0, uint32 PortFlags=0) const
 
void SerializeBinProperty (FStructuredArchive::FSlot Slot, void *Data, int32 ArrayIdx=-1)
 
void SerializeNonMatchingBinProperty (FStructuredArchive::FSlot Slot, void *Data, void const *DefaultData, UStruct *DefaultStruct)
 
void ExportTextItem_Direct (FString &ValueStr, const void *PropertyValue, const void *DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope=nullptr) const
 
void ExportTextItem_InContainer (FString &ValueStr, const void *Container, const void *DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope=nullptr) const
 
const TCHARImportText_InContainer (const TCHAR *Buffer, void *Container, UObject *OwnerObject, int32 PortFlags, FOutputDevice *ErrorText=(FOutputDevice *) GWarn) const
 
const TCHARImportText_Direct (const TCHAR *Buffer, void *PropertyPtr, UObject *OwnerObject, int32 PortFlags, FOutputDevice *ErrorText=(FOutputDevice *) GWarn) const
 
void SetValue_InContainer (void *OutContainer, const void *InValue) const
 
void GetValue_InContainer (void const *InContainer, void *OutValue) const
 
COREUOBJECT_API void SetSingleValue_InContainer (void *OutContainer, const void *InValue, int32 ArrayIndex) const
 
COREUOBJECT_API void GetSingleValue_InContainer (const void *InContainer, void *OutValue, int32 ArrayIndex) const
 
COREUOBJECT_API voidAllocateAndInitializeValue () const
 
COREUOBJECT_API void DestroyAndFreeValue (void *InMemory) const
 
COREUOBJECT_API void PerformOperationWithSetter (void *OutContainer, void *DirectPropertyAddress, TFunctionRef< void(void *)> DirectValueAccessFunc) const
 
COREUOBJECT_API void PerformOperationWithGetter (void *OutContainer, const void *DirectPropertyAddress, TFunctionRef< void(const void *)> DirectValueAccessFunc) const
 
virtual COREUOBJECT_API voidGetValueAddressAtIndex_Direct (const FProperty *Inner, void *InValueAddress, int32 Index) const
 
COREUOBJECT_API bool ExportText_Direct (FString &ValueStr, const void *Data, const void *Delta, UObject *Parent, int32 PortFlags, UObject *ExportRootScope=nullptr) const
 
UE_FORCEINLINE_HINT bool ExportText_InContainer (int32 Index, FString &ValueStr, const void *Data, const void *Delta, UObject *Parent, int32 PortFlags, UObject *ExportRootScope=nullptr) const
 
template<typename ValueType >
UE_FORCEINLINE_HINT ValueType * ContainerPtrToValuePtr (UObject *ContainerPtr, int32 ArrayIndex=0) const
 
template<typename ValueType >
UE_FORCEINLINE_HINT ValueType * ContainerPtrToValuePtr (void *ContainerPtr, int32 ArrayIndex=0) const
 
template<typename ValueType >
UE_FORCEINLINE_HINT ValueType const * ContainerPtrToValuePtr (UObject const *ContainerPtr, int32 ArrayIndex=0) const
 
template<typename ValueType >
UE_FORCEINLINE_HINT ValueType const * ContainerPtrToValuePtr (void const *ContainerPtr, int32 ArrayIndex=0) const
 
template<typename ValueType >
ValueType * ContainerPtrToValuePtrForDefaults (const UStruct *ContainerClass, UObject *ContainerPtr, int32 ArrayIndex=0) const
 
template<typename ValueType >
ValueType * ContainerPtrToValuePtrForDefaults (const UStruct *ContainerClass, void *ContainerPtr, int32 ArrayIndex=0) const
 
template<typename ValueType >
const ValueType * ContainerPtrToValuePtrForDefaults (const UStruct *ContainerClass, const UObject *ContainerPtr, int32 ArrayIndex=0) const
 
template<typename ValueType >
const ValueType * ContainerPtrToValuePtrForDefaults (const UStruct *ContainerClass, const void *ContainerPtr, int32 ArrayIndex=0) const
 
UE_FORCEINLINE_HINT bool IsInContainer (int32 ContainerSize) const
 
UE_FORCEINLINE_HINT bool IsInContainer (const UStruct *ContainerClass) const
 
void CopySingleValue (void *Dest, void const *Src) const
 
COREUOBJECT_API uint32 GetValueTypeHash (const void *Src) const
 
void CopyCompleteValue (void *Dest, void const *Src) const
 
UE_FORCEINLINE_HINT void CopyCompleteValue_InContainer (void *Dest, void const *Src) const
 
virtual COREUOBJECT_API void CopySingleValueToScriptVM (void *Dest, void const *Src) const
 
virtual COREUOBJECT_API void CopyCompleteValueToScriptVM (void *Dest, void const *Src) const
 
virtual COREUOBJECT_API void CopyCompleteValueToScriptVM_InContainer (void *OutValue, void const *InContainer) const
 
virtual COREUOBJECT_API void CopyCompleteValueFromScriptVM_InContainer (void *OutContainer, void const *InValue) const
 
virtual COREUOBJECT_API void CopySingleValueFromScriptVM (void *Dest, void const *Src) const
 
virtual COREUOBJECT_API void CopyCompleteValueFromScriptVM (void *Dest, void const *Src) const
 
void ClearValue (void *Data) const
 
void ClearValue_InContainer (void *Data, int32 ArrayIndex=0) const
 
void DestroyValue (void *Dest) const
 
void DestroyValue_InContainer (void *Dest) const
 
bool ContainsFinishDestroy (TArray< const FStructProperty * > &EncounteredStructProps) const
 
void FinishDestroy (void *Data) const
 
void FinishDestroy_InContainer (void *Data) const
 
void InitializeValue (void *Dest) const
 
void InitializeValue_InContainer (void *Dest) const
 
COREUOBJECT_API bool ValidateImportFlags (uint32 PortFlags, FOutputDevice *ErrorText=NULL) const
 
COREUOBJECT_API bool ShouldPort (uint32 PortFlags=0) const
 
virtual COREUOBJECT_API int32 GetMinAlignment () const
 
virtual COREUOBJECT_API bool ContainsObjectReference (TArray< const FStructProperty * > &EncounteredStructProps, EPropertyObjectReferenceType InReferenceType=EPropertyObjectReferenceType::Strong) const
 
bool ContainsWeakObjectReference () const
 
UE_FORCEINLINE_HINT bool ContainsInstancedObjectProperty () const
 
virtual COREUOBJECT_API void EmitReferenceInfo (UE::GC::FSchemaBuilder &Schema, int32 BaseOffset, TArray< const FStructProperty * > &EncounteredStructProps, UE::GC::FPropertyStack &DebugPath)
 
UE_FORCEINLINE_HINT int32 GetSize () const
 
COREUOBJECT_API bool ShouldSerializeValue (FArchive &Ar) const
 
virtual COREUOBJECT_API bool UseBinaryOrNativeSerialization (const FArchive &Ar) const
 
bool ShouldDuplicateValue () const
 
virtual COREUOBJECT_API bool LoadTypeName (UE::FPropertyTypeName Type, const FPropertyTag *Tag=nullptr)
 
virtual COREUOBJECT_API void SaveTypeName (UE::FPropertyTypeNameBuilder &Type) const
 
virtual COREUOBJECT_API bool CanSerializeFromTypeName (UE::FPropertyTypeName Type) const
 
FPropertyGetOwnerProperty ()
 
const FPropertyGetOwnerProperty () const
 
UE_FORCEINLINE_HINT EPropertyFlags GetPropertyFlags () const
 
UE_FORCEINLINE_HINT void SetPropertyFlags (EPropertyFlags NewFlags)
 
UE_FORCEINLINE_HINT void ClearPropertyFlags (EPropertyFlags NewFlags)
 
UE_FORCEINLINE_HINT bool HasAnyPropertyFlags (uint64 FlagsToCheck) const
 
UE_FORCEINLINE_HINT bool HasAllPropertyFlags (uint64 FlagsToCheck) const
 
UE_FORCEINLINE_HINT FPropertyGetRepOwner ()
 
UE_FORCEINLINE_HINT bool IsEditorOnlyProperty () const
 
ELifetimeCondition GetBlueprintReplicationCondition () const
 
void SetBlueprintReplicationCondition (ELifetimeCondition InBlueprintReplicationCondition)
 
virtual bool HasIntrusiveUnsetOptionalState() const PURE_VIRTUAL(FProperty virtual COREUOBJECT_API void InitializeIntrusiveUnsetOptionalValue (void *Data) const
 
virtual COREUOBJECT_API bool IsIntrusiveOptionalValueSet (const void *Data) const
 
virtual COREUOBJECT_API void ClearIntrusiveOptionalValue (void *Data) const
 
virtual COREUOBJECT_API void EmitIntrusiveOptionalReferenceInfo (UE::GC::FSchemaBuilder &Schema, int32 BaseOffset, TArray< const FStructProperty * > &EncounteredStructProps, UE::GC::FPropertyStack &DebugPath)
 
- Public Member Functions inherited from FField
virtual SIZE_T GetFieldSize () const
 
COREUOBJECT_API FField (EInternal InInernal, FFieldClass *InClass)
 
COREUOBJECT_API FField (FFieldVariant InOwner, const FName &InName, EObjectFlags InObjectFlags)
 
virtual COREUOBJECT_API ~FField ()
 
virtual COREUOBJECT_API void PostLoad ()
 
virtual COREUOBJECT_API void GetPreloadDependencies (TArray< UObject * > &OutDeps)
 
COREUOBJECT_API bool IsRooted () const
 
COREUOBJECT_API bool IsNative () const
 
COREUOBJECT_API bool IsValidLowLevel () const
 
COREUOBJECT_API bool IsIn (const UObject *InOwner) const
 
COREUOBJECT_API bool IsIn (const FField *InOwner) const
 
COREUOBJECT_API FLinkerLoadGetLinker () const
 
virtual COREUOBJECT_API void AddCppProperty (FProperty *Property)
 
virtual COREUOBJECT_API void Bind ()
 
EObjectFlags GetFlags () const
 
void SetFlags (EObjectFlags NewFlags)
 
void ClearFlags (EObjectFlags NewFlags)
 
bool HasAnyFlags (EObjectFlags FlagsToCheck) const
 
bool HasAllFlags (EObjectFlags FlagsToCheck) const
 
FFieldClassGetClass () const
 
uint64 GetCastFlags () const
 
bool IsA (const FFieldClass *FieldType) const
 
template<typename T >
bool IsA () const
 
bool HasAnyCastFlags (const uint64 InCastFlags) const
 
bool HasAllCastFlags (const uint64 InCastFlags) const
 
void AppendName (FString &ResultString) const
 
FFieldVariant GetOwnerVariant () const
 
UObjectGetOwnerUObject () const
 
UE_FORCEINLINE_HINT UObjectInternalGetOwnerAsUObjectUnsafe () const
 
COREUOBJECT_API UClassGetOwnerClass () const
 
COREUOBJECT_API UStructGetOwnerStruct () const
 
COREUOBJECT_API UFieldGetOwnerUField () const
 
COREUOBJECT_API UPackageGetOutermost () const
 
COREUOBJECT_API UObjectGetTypedOwner (UClass *Target) const
 
COREUOBJECT_API FFieldGetTypedOwner (FFieldClass *Target) const
 
template<typename T >
T * GetOwner () const
 
template<typename T >
FUNCTION_NON_NULL_RETURN_START T * GetOwnerChecked () const FUNCTION_NON_NULL_RETURN_END
 
template<typename T >
T * GetTypedOwner () const
 
FName GetFName () const
 
FString GetName () const
 
void GetName (FString &OutName) const
 
COREUOBJECT_API void Rename (const FName &NewName)
 
COREUOBJECT_API FString GetPathName (const UObject *StopOuter=nullptr) const
 
COREUOBJECT_API void GetPathName (const UObject *StopOuter, FStringBuilderBase &ResultString) const
 
COREUOBJECT_API FString GetFullName () const
 
COREUOBJECT_API FString GetAuthoredName () const
 
virtual FFieldGetInnerFieldByName (const FName &InName)
 
virtual void GetInnerFields (TArray< FField * > &OutFields)
 

Static Public Member Functions

static UE_API bool ParseObjectPropertyValue (const FProperty *Property, UObject *OwnerObject, UClass *RequiredMetaClass, uint32 PortFlags, const TCHAR *&Buffer, TObjectPtr< UObject > &out_ResolvedValue, FUObjectSerializeContext *InSerializeContext=nullptr, bool bAllowAnyPackage=true)
 
static UE_API TObjectPtr< UObjectFindImportedObject (const FProperty *Property, UObject *OwnerObject, UClass *ObjectClass, UClass *RequiredMetaClass, const TCHAR *Text, uint32 PortFlags=0, FUObjectSerializeContext *InSerializeContext=nullptr, bool bAllowAnyPackage=true)
 
static UE_API FString GetExportPath (const TObjectPtr< const UObject > &Object, const UObject *Parent=nullptr, const UObject *ExportRootScope=nullptr, const uint32 PortFlags=PPF_None)
 
static UE_API FString GetExportPath (FTopLevelAssetPath ClassPathName, const FString &ObjectPathName)
 
static UE_API bool StaticIdentical (UObject *A, UObject *B, uint32 PortFlags)
 
- Static Public Member Functions inherited from FProperty
static COREUOBJECT_API const TCHARImportSingleProperty (const TCHAR *Str, void *DestData, const UStruct *ObjectStruct, UObject *SubobjectOuter, int32 PortFlags, FOutputDevice *Warn, TArray< struct FDefinedProperty > &DefinedProperties)
 
static COREUOBJECT_API FName FindRedirectedPropertyName (const UStruct *ObjectStruct, FName OldName)
 
- Static Public Member Functions inherited from FField
static COREUOBJECT_API FFieldClassStaticClass ()
 
static constexpr EClassCastFlags StaticClassCastFlagsPrivate ()
 
static constexpr EClassCastFlags StaticClassCastFlags ()
 
static COREUOBJECT_API FFieldConstruct (const FFieldVariant &InOwner, const FName &InName, EObjectFlags InFlags)
 
static COREUOBJECT_API FFieldConstruct (const FName &FieldTypeName, const FFieldVariant &InOwner, const FName &InName, EObjectFlags InFlags)
 
static COREUOBJECT_API FFieldTryConstruct (const FName &FieldTypeName, const FFieldVariant &InOwner, const FName &InName, EObjectFlags InFlags)
 
static COREUOBJECT_API FFieldDuplicate (const FField *InField, FFieldVariant DestOwner, const FName DestName=NAME_None, EObjectFlags FlagMask=RF_AllFlags, EInternalObjectFlags InternalFlagsMask=EInternalObjectFlags_AllFlags)
 
static COREUOBJECT_API FName GenerateFFieldName (FFieldVariant InOwner, FFieldClass *InClass)
 

Public Attributes

TObjectPtr< class UClassPropertyClass
 
- Public Attributes inherited from FProperty
EPropertyFlags PropertyFlags
 
uint16 RepIndex
 
FPropertyPropertyLinkNext = nullptr
 
union { 
 
   FProperty *   NextRef = nullptr 
 
};  
 
union { 
 
   FProperty *   DestructorLinkNext = nullptr 
 
};  
 
FPropertyPostConstructLinkNext = nullptr
 
FName RepNotifyFunc
 
virtual FString GetCPPType (FString *ExtendedTypeText=NULL, uint32 CPPExportFlags=0) const PURE_VIRTUAL(FProperty
 
virtual bool Identical (const void *A, const void *B, uint32 PortFlags=0) const PURE_VIRTUAL(FProperty
 
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
 
- Public Attributes inherited from FField
FFieldVariant Owner
 
FFieldNext
 
FName NamePrivate
 
EObjectFlags FlagsPrivate
 

Protected Member Functions

virtual UE_API void ExportText_Internal (FString &ValueStr, const void *PropertyValueOrContainer, EPropertyPointerType PropertyPointerType, const void *DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope) const override
 
virtual UE_API const TCHARImportText_Internal (const TCHAR *Buffer, void *ContainerOrPropertyPtr, EPropertyPointerType PropertyPointerType, UObject *OwnerObject, int32 PortFlags, FOutputDevice *ErrorText) const override
 
virtual UE_API void SetObjectPropertyValueUnchecked (void *PropertyValueAddress, UObject *Value) const
 
virtual UE_API void SetObjectPtrPropertyValueUnchecked (void *PropertyValueAddress, TObjectPtr< UObject > Ptr) const
 
virtual UE_API void SetObjectPropertyValueUnchecked_InContainer (void *ContainerAddress, UObject *Value, int32 ArrayIndex=0) const
 
virtual UE_API void SetObjectPtrPropertyValueUnchecked_InContainer (void *ContainerAddress, TObjectPtr< UObject > Ptr, int32 ArrayIndex=0) const
 
virtual UE_API bool AllowCrossLevel () const
 
UE_API UObjectConstructDefaultObjectValueIfNecessary (UObject *ExistingValue, FString *OutFailureReason=nullptr, const void *Defaults=nullptr) const
 
template<typename T , typename OutType >
PGO_LINK_DISABLE_WARNINGS void GetWrappedUObjectPtrValues (OutType *OutObjects, const void *SrcAddress, EPropertyMemoryAccess SrcAccess, int32 ArrayIndex, int32 ArrayCount) const
 
template<typename T , typename ValueType >
PGO_LINK_ENABLE_WARNINGS void SetWrappedUObjectPtrValues (void *DestAddress, EPropertyMemoryAccess DestAccess, ValueType *InValues, int32 ArrayIndex, int32 ArrayCount) const
 
- Protected Member Functions inherited from FProperty
COREUOBJECT_API void SetOffset_Internal (int32 NewOffset)
 
COREUOBJECT_API void Init ()
 
virtual COREUOBJECT_API void LinkInternal (FArchive &Ar)
 
voidPointerToValuePtr (void const *ContainerOrPropertyPtr, EPropertyPointerType PropertyPointerType, int32 ArrayIndex=0) const
 
virtual COREUOBJECT_API void CopyValuesInternal (void *Dest, void const *Src, int32 Count) const
 
virtual COREUOBJECT_API uint32 GetValueTypeHashInternal (const void *Src) const
 
virtual COREUOBJECT_API void ClearValueInternal (void *Data) const
 
virtual COREUOBJECT_API void DestroyValueInternal (void *Dest) const
 
virtual COREUOBJECT_API bool ContainsClearOnFinishDestroyInternal (TArray< const FStructProperty * > &EncounteredStructProps) const
 
virtual COREUOBJECT_API void FinishDestroyInternal (void *Data) const
 
virtual COREUOBJECT_API void InitializeValueInternal (void *Dest) const
 
- Protected Member Functions inherited from FField
void SetFlagsTo (EObjectFlags NewFlags)
 

Additional Inherited Members

- Public Types inherited from FField
typedef FField Super
 
typedef FField ThisClass
 
typedef FField BaseFieldClass
 
typedef FFieldClass FieldTypeClass
 
using FLinkedListBuilder = TLinkedListBuilder< FField >
 
- Protected Attributes inherited from FProperty
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
 

Constructor & Destructor Documentation

◆ FObjectPropertyBase() [1/3]

FObjectPropertyBase::FObjectPropertyBase ( FFieldVariant  InOwner,
const FName InName,
EObjectFlags  InObjectFlags 
)

◆ FObjectPropertyBase() [2/3]

FObjectPropertyBase::FObjectPropertyBase ( FFieldVariant  InOwner,
const UECodeGen_Private::FObjectPropertyParams &  Prop,
EPropertyFlags  AdditionalPropertyFlags = CPF_None 
)

Constructor used for constructing compiled-in properties

Parameters
InOwnerOwner of the property
PropBasePointer to the compiled in structure describing the property

◆ FObjectPropertyBase() [3/3]

FObjectPropertyBase::FObjectPropertyBase ( FFieldVariant  InOwner,
const UECodeGen_Private::FObjectPropertyParamsWithoutClass &  Prop,
EPropertyFlags  AdditionalPropertyFlags = CPF_None 
)

Member Function Documentation

◆ AddReferencedObjects()

void FObjectPropertyBase::AddReferencedObjects ( FReferenceCollector Collector)
overridevirtual

Reimplemented from FField.

◆ AllowCrossLevel()

bool FObjectPropertyBase::AllowCrossLevel ( ) const
protectedvirtual

◆ AllowObjectTypeReinterpretationTo()

bool FObjectPropertyBase::AllowObjectTypeReinterpretationTo ( const FObjectPropertyBase Other) const
virtual

◆ BeginDestroy()

void FObjectPropertyBase::BeginDestroy ( )
overridevirtual

Reimplemented from FField.

◆ CheckValidObject()

void FObjectPropertyBase::CheckValidObject ( void ValueAddress,
TObjectPtr< UObject OldValue,
const void Defaults = nullptr 
) const
virtual

◆ ConstructDefaultObjectValueIfNecessary()

UObject * FObjectPropertyBase::ConstructDefaultObjectValueIfNecessary ( UObject ExistingValue,
FString *  OutFailureReason = nullptr,
const void Defaults = nullptr 
) const
protected

Constructs a new object if the existing one is missing or is not compatible with the property class Used for making sure non-nullable properties have valid values.

Parameters
ExistingValuePrevious object value (can be null)
OutFailureReasonAn optional output string describing the reason why null was returned.
DefaultsDefaults object to use when constructing the object value (can be null).
Returns
Pointer that should be assigned to the property value, or null if a default value could not be created.

◆ ExportText_Internal()

void FObjectPropertyBase::ExportText_Internal ( FString &  ValueStr,
const void PropertyValueOrContainer,
EPropertyPointerType  PropertyPointerType,
const void DefaultValue,
UObject Parent,
int32  PortFlags,
UObject ExportRootScope 
) const
overrideprotectedvirtual

◆ FindImportedObject()

TObjectPtr< UObject > FObjectPropertyBase::FindImportedObject ( const FProperty Property,
UObject OwnerObject,
UClass ObjectClass,
UClass RequiredMetaClass,
const TCHAR Text,
uint32  PortFlags = 0,
FUObjectSerializeContext InSerializeContext = nullptr,
bool  bAllowAnyPackage = true 
)
static

◆ GetCPPTypeCustom()

FString FObjectPropertyBase::GetCPPTypeCustom ( FString *  ExtendedTypeText,
uint32  CPPExportFlags,
const FString &  InnerNativeTypeName 
) const
inline

◆ GetExportPath() [1/2]

FString FObjectPropertyBase::GetExportPath ( const TObjectPtr< const UObject > &  Object,
const UObject Parent = nullptr,
const UObject ExportRootScope = nullptr,
const uint32  PortFlags = PPF_None 
)
static

Returns the qualified export path for a given object, parent, and export root scope

Parameters
ObjectObject to get the export path for
ParentOuter of the Object used as a root object for generating the Objects path name
ExportRootScopeSimilar to Parent but used when exporting from one package or graph to another package or graph
PortFlagsProperty port flags
Returns
A string representing the export path of an object, usually in the form of /ClassPackage.ClassName'/Package/Path.Object'

◆ GetExportPath() [2/2]

FString FObjectPropertyBase::GetExportPath ( FTopLevelAssetPath  ClassPathName,
const FString &  ObjectPathName 
)
static

Returns the qualified export path given a class path name and object path name

Parameters
ClassPathNameClass path name
ObjectPathNameof the Object used as a root object for generating the Objects path name
Returns
A string representing the export path of an object in the form of /ClassPackage.ClassName'/Package/Path.Object'

◆ GetID()

FName FObjectPropertyBase::GetID ( ) const
overridevirtual

Reimplemented from FProperty.

◆ GetObjectPropertyValue()

UObject * FObjectPropertyBase::GetObjectPropertyValue ( const void PropertyValueAddress) const
virtual

◆ GetObjectPropertyValue_InContainer()

UObject * FObjectPropertyBase::GetObjectPropertyValue_InContainer ( const void ContainerAddress,
int32  ArrayIndex = 0 
) const
virtual

◆ GetObjectPtrPropertyValue()

TObjectPtr< UObject > FObjectPropertyBase::GetObjectPtrPropertyValue ( const void PropertyValueAddress) const
virtual

◆ GetObjectPtrPropertyValue_InContainer()

TObjectPtr< UObject > FObjectPropertyBase::GetObjectPtrPropertyValue_InContainer ( const void ContainerAddress,
int32  ArrayIndex = 0 
) const
virtual

◆ GetWrappedUObjectPtrValues()

template<typename T , typename OutType >
PGO_LINK_DISABLE_WARNINGS void FObjectPropertyBase::GetWrappedUObjectPtrValues ( OutType OutObjects,
const void SrcAddress,
EPropertyMemoryAccess  SrcAccess,
int32  ArrayIndex,
int32  ArrayCount 
) const
inlineprotected

◆ Identical()

bool FObjectPropertyBase::Identical ( const void A,
const void B,
uint32  PortFlags 
) const
overridevirtual

◆ ImportText_Internal()

const TCHAR * FObjectPropertyBase::ImportText_Internal ( const TCHAR Buffer,
void ContainerOrPropertyPtr,
EPropertyPointerType  PropertyPointerType,
UObject OwnerObject,
int32  PortFlags,
FOutputDevice ErrorText 
) const
overrideprotectedvirtual

◆ InstanceSubobjects()

void FObjectPropertyBase::InstanceSubobjects ( void Data,
void const *  DefaultData,
TNotNull< UObject * >  Owner,
struct FObjectInstancingGraph InstanceGraph 
)
overridevirtual

Creates new copies of components

Parameters
Datapointer to the address of the instanced object referenced by this UComponentProperty
DefaultDatapointer to the address of the default value of the instanced object referenced by this UComponentProperty
Ownerthe object that contains this property's data
InstanceGraphcontains the mappings of instanced objects and components to their templates

Reimplemented from FProperty.

◆ LoadObjectPropertyValue()

virtual UObject * FObjectPropertyBase::LoadObjectPropertyValue ( const void PropertyValueAddress) const
inlinevirtual

◆ LoadObjectPropertyValue_InContainer()

UE_FORCEINLINE_HINT UObject * FObjectPropertyBase::LoadObjectPropertyValue_InContainer ( const void PropertyValueAddress,
int32  ArrayIndex = 0 
) const
inline

◆ NetSerializeItem()

bool FObjectPropertyBase::NetSerializeItem ( FArchive Ar,
UPackageMap Map,
void Data,
TArray< uint8 > *  MetaData = NULL 
) const
overridevirtual

◆ ParseObjectPropertyValue()

bool FObjectPropertyBase::ParseObjectPropertyValue ( const FProperty Property,
UObject OwnerObject,
UClass RequiredMetaClass,
uint32  PortFlags,
const TCHAR *&  Buffer,
TObjectPtr< UObject > &  out_ResolvedValue,
FUObjectSerializeContext InSerializeContext = nullptr,
bool  bAllowAnyPackage = true 
)
static

Parses a text buffer into an object reference.

Parameters
Propertythe property that the value is being importing to
OwnerObjectthe object that is importing the value; used for determining search scope.
RequiredMetaClassthe meta-class for the object to find; if the object that is resolved is not of this class type, the result is NULL.
PortFlagsbitmask of EPropertyPortFlags that can modify the behavior of the search
Bufferthe text to parse; should point to a textual representation of an object reference. Can be just the object name (either fully fully qualified or not), or can be formatted as a const object reference (i.e. SomeClass'SomePackage.TheObject') When the function returns, Buffer will be pointing to the first character after the object value text in the input stream.
ResolvedValuereceives the object that is resolved from the input text.
InSerializeContextAdditional context when called during serialization
bAllowAnyPackageallows ignoring package name to find any object that happens to be loaded with the same name
Returns
true if the text is successfully resolved into a valid object reference of the correct type, false otherwise.

Parses a text buffer into an object reference.

Parameters
Propertythe property that the value is being importing to
OwnerObjectthe object that is importing the value; used for determining search scope.
RequiredMetaClassthe meta-class for the object to find; if the object that is resolved is not of this class type, the result is nullptr.
PortFlagsbitmask of EPropertyPortFlags that can modify the behavior of the search
Bufferthe text to parse; should point to a textual representation of an object reference. Can be just the object name (either fully fully qualified or not), or can be formatted as a const object reference (i.e. SomeClass'SomePackage.TheObject') When the function returns, Buffer will be pointing to the first character after the object value text in the input stream.
ResolvedValuereceives the object that is resolved from the input text.
Returns
true if the text is successfully resolved into a valid object reference of the correct type, false otherwise.

◆ PostDuplicate()

void FObjectPropertyBase::PostDuplicate ( const FField InField)
overridevirtual

Fixups after duplicating a Field

Reimplemented from FProperty.

◆ ResolveVisitedPathInfo()

void * FObjectPropertyBase::ResolveVisitedPathInfo ( void Data,
const FPropertyVisitorInfo Info 
) const
overridevirtual

Attempt to resolve the given inner path info against this outer property to get the inner property value.

Returns
The inner property value, or null if the path info is incompatible/missing on this property.

Reimplemented from FProperty.

◆ SameType()

bool FObjectPropertyBase::SameType ( const FProperty Other) const
overridevirtual

returns true, if Other is property of exactly the same type

Reimplemented from FProperty.

◆ Serialize()

void FObjectPropertyBase::Serialize ( FArchive Ar)
overridevirtual

Reimplemented from FProperty.

◆ SetObjectPropertyValue()

void FObjectPropertyBase::SetObjectPropertyValue ( void PropertyValueAddress,
UObject Value 
) const

◆ SetObjectPropertyValue_InContainer()

void FObjectPropertyBase::SetObjectPropertyValue_InContainer ( void ContainerAddress,
UObject Value,
int32  ArrayIndex = 0 
) const

◆ SetObjectPropertyValueUnchecked()

void FObjectPropertyBase::SetObjectPropertyValueUnchecked ( void PropertyValueAddress,
UObject Value 
) const
protectedvirtual

◆ SetObjectPropertyValueUnchecked_InContainer()

void FObjectPropertyBase::SetObjectPropertyValueUnchecked_InContainer ( void ContainerAddress,
UObject Value,
int32  ArrayIndex = 0 
) const
protectedvirtual

◆ SetObjectPtrPropertyValue()

void FObjectPropertyBase::SetObjectPtrPropertyValue ( void PropertyValueAddress,
TObjectPtr< UObject Ptr 
) const

◆ SetObjectPtrPropertyValue_InContainer()

void FObjectPropertyBase::SetObjectPtrPropertyValue_InContainer ( void ContainerAddress,
TObjectPtr< UObject Ptr,
int32  ArrayIndex = 0 
) const

◆ SetObjectPtrPropertyValueUnchecked()

void FObjectPropertyBase::SetObjectPtrPropertyValueUnchecked ( void PropertyValueAddress,
TObjectPtr< UObject Ptr 
) const
protectedvirtual

◆ SetObjectPtrPropertyValueUnchecked_InContainer()

void FObjectPropertyBase::SetObjectPtrPropertyValueUnchecked_InContainer ( void ContainerAddress,
TObjectPtr< UObject Ptr,
int32  ArrayIndex = 0 
) const
protectedvirtual

◆ SetPropertyClass()

UE_FORCEINLINE_HINT void FObjectPropertyBase::SetPropertyClass ( UClass NewPropertyClass)
inline

Setter function for this property's PropertyClass member. Favor this function whilst loading (since, to handle circular dependencies, we defer some class loads and use a placeholder class instead). It properly handles deferred loading placeholder classes (so they can properly be replaced later).

Parameters
NewPropertyClassThe PropertyClass you want this property set with.

◆ SetWrappedUObjectPtrValues()

template<typename T , typename ValueType >
PGO_LINK_ENABLE_WARNINGS void FObjectPropertyBase::SetWrappedUObjectPtrValues ( void DestAddress,
EPropertyMemoryAccess  DestAccess,
ValueType *  InValues,
int32  ArrayIndex,
int32  ArrayCount 
) const
inlineprotected

◆ StaticIdentical()

bool FObjectPropertyBase::StaticIdentical ( UObject A,
UObject B,
uint32  PortFlags 
)
static

◆ SupportsNetSharedSerialization()

virtual bool FObjectPropertyBase::SupportsNetSharedSerialization ( ) const
inlineoverridevirtual

Reimplemented from FProperty.

◆ Visit()

EPropertyVisitorControlFlow FObjectPropertyBase::Visit ( FPropertyVisitorContext Context,
const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorContext &)>  InFunc 
) const
overridevirtual

Visits this property and allows recursion into the inner properties This method allows callers to visit inner properties without knowing about its container type as opposed to TPropertyIterator. This visit property pattern facilitates the recursion into user defined properties and allows users to add specific visit logic on UStruct via traits.

Parameters
Contextwhich containes the path that was computed until we reached this property and the sata to the property to visit
InFuncto call on each visited property, the return value controls what is the next behavior once this property has been visited
Returns
the new action to take one visited this property

Reimplemented from FProperty.

Member Data Documentation

◆ PropertyClass

TObjectPtr<class UClass> FObjectPropertyBase::PropertyClass

The documentation for this class was generated from the following files: