9#include "OverriddenPropertySet.generated.h"
11#define UE_API COREUOBJECT_API
47 checkf(!bUseOverridableSerialization,
TEXT(
"Nobody should use this method if overridable serialization is already enabled"));
48 bUseOverridableSerialization =
true;
57 checkf(bUseOverridableSerialization,
TEXT(
"Expecting overridable serialization to be already enabled"));
58 OverriddenProperties =
nullptr;
59 bUseOverridableSerialization =
false;
67 return bUseOverridableSerialization;
84 return OverriddenProperties;
134 static thread_local bool bUseOverridableSerialization;
234 return CachedHash ==
Other.CachedHash;
239 return Path.IsEmpty();
242 FString ToString()
const;
292 return !Path.IsEmpty();
300 return GetTypeHash(NodeID.Path);
364 return SubPropertyNodes;
369 return SubPropertyNodes;
378 return NodeID ==
Other.NodeID;
559 bool bWasAdded =
false;
567 bool bNeedsSubobjectTemplateInstantiation =
false;
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define FRIEND_ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:17
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
T TNotNull
Definition NotNull.h:307
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
EPropertyObjectReferenceType
Definition ObjectMacros.h:533
TOptional< EOverriddenPropertyOperation > GetOverriddenOperationFromString(const FString &OverriddenOperationString)
Definition OverriddenPropertySet.h:188
EPropertyNotificationType
Definition OverriddenPropertySet.h:408
#define UE_API
Definition OverriddenPropertySet.h:11
EOverriddenPropertyOperation
Definition OverriddenPropertySet.h:179
FString GetOverriddenOperationString(EOverriddenPropertyOperation Operation)
Definition OverriddenPropertySet.h:204
TOptional< EOverriddenPropertyOperation > GetOverriddenOperationFromName(const FName OverriddenOperationName)
Definition OverriddenPropertySet.h:199
EPropertyVisitorInfoType
Definition PropertyVisitor.h:23
FStringBuilderBase & operator+=(FStringBuilderBase &Builder, ANSICHAR Char)
Definition StringBuilder.h:582
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition Archive.h:1208
Definition NameTypes.h:617
Definition UnrealType.h:2725
Definition UnrealType.h:174
Definition UnrealType.h:4678
Definition ArrayView.h:139
Definition UnrealString.h.inl:34
static FString GetValueAsString(const TCHAR *EnumPath, const T EnumeratorValue)
Definition Class.h:3161
uint32 Type
Definition UnrealType.h:6835
@ false
Definition radaudio_common.h:23
Definition ArchiveSerializedPropertyChain.h:9
CORE_API FString ToString() const
Definition Color.cpp:584
Definition OverriddenPropertySet.h:146
bool bOverridableSerializationEnabled
Definition OverriddenPropertySet.h:151
FOverriddenPropertySet * SavedOverriddenProperties
Definition OverriddenPropertySet.h:153
COREUOBJECT_API ~FEnableOverridableSerializationScope()
Definition OverriddenPropertySet.cpp:221
bool bWasOverridableSerializationEnabled
Definition OverriddenPropertySet.h:152
Definition OverriddenPropertySet.cpp:30
Definition OverriddenPropertySet.h:25
static COREUOBJECT_API bool HasCapabilities(ECapabilities InCapabilities)
Definition OverriddenPropertySet.cpp:159
static COREUOBJECT_API void SetOverriddenPortTextPropertyPath(FPropertyVisitorPath &Path)
Definition OverriddenPropertySet.cpp:192
static FOverriddenPropertySet * GetOverriddenProperties()
Definition OverriddenPropertySet.h:82
static COREUOBJECT_API FOverriddenPropertySet * GetOverriddenPropertiesSlow()
Definition OverriddenPropertySet.cpp:164
static COREUOBJECT_API EOverriddenPropertyOperation GetOverriddenPropertyOperation(const FArchive &Ar, FProperty *Property=nullptr, uint8 *DataPtr=nullptr, const uint8 *DefaultValue=nullptr)
Definition OverriddenPropertySet.cpp:169
static COREUOBJECT_API FPropertyVisitorPath * GetOverriddenPortTextPropertyPath()
Definition OverriddenPropertySet.cpp:187
static COREUOBJECT_API bool ShouldPropertyShadowSerializeSubObject(TNotNull< const FProperty * > Property)
Definition OverriddenPropertySet.cpp:129
static void Disable()
Definition OverriddenPropertySet.h:55
ECapabilities
Definition OverriddenPropertySet.h:29
@ SubObjectsShadowSerialization
static bool IsEnabled()
Definition OverriddenPropertySet.h:65
static COREUOBJECT_API EOverriddenPropertyOperation GetOverriddenPropertyOperationForPortText(const void *DataPtr, const void *DefaultValue, int32 PortFlags)
Definition OverriddenPropertySet.cpp:178
static COREUOBJECT_API void ResetOverriddenPortTextPropertyPath()
Definition OverriddenPropertySet.cpp:198
Definition OverriddenPropertySet.h:164
FPropertyVisitorPath DefaultPath
Definition OverriddenPropertySet.h:171
COREUOBJECT_API ~FOverridableTextPortPropertyPathScope()
Definition OverriddenPropertySet.cpp:258
const FProperty * Property
Definition OverriddenPropertySet.h:170
Definition OverriddenPropertySet.h:259
FOverriddenPropertyNodeID & operator=(FOverriddenPropertyNodeID &&)=default
FOverriddenPropertyNodeID & operator=(const FOverriddenPropertyNodeID &)=default
static COREUOBJECT_API FOverriddenPropertyNodeID RootNodeId()
Definition OverriddenPropertySet.cpp:368
friend uint32 GetTypeHash(const FOverriddenPropertyNodeID &NodeID)
Definition OverriddenPropertySet.h:298
FOverriddenPropertyNodeID(const FOverriddenPropertyNodeID &)=default
FString ToDebugString() const
Definition OverriddenPropertySet.h:285
FString ToString() const
Definition OverriddenPropertySet.h:280
bool IsValid() const
Definition OverriddenPropertySet.h:290
FOverriddenPropertyNodeID(FOverriddenPropertyNodeID &&)=default
FOverriddenPropertyNodeID()=default
Definition OverriddenPropertySet.h:320
TArrayView< FOverriddenPropertyNode > GetSubPropertyNodes()
Definition OverriddenPropertySet.h:362
EOverriddenPropertyOperation GetOperation() const
Definition OverriddenPropertySet.h:355
bool operator==(const FOverriddenPropertyNode &Other) const
Definition OverriddenPropertySet.h:376
FOverriddenPropertyNode(FOverriddenPropertyNodeID &&InNodeID)
Definition OverriddenPropertySet.h:332
friend FArchive & operator<<(FArchive &Ar, FOverriddenPropertyNode &P)
Definition OverriddenPropertySet.h:387
const TArray< FOverriddenPropertyNode > & GetSubPropertyNodes() const
Definition OverriddenPropertySet.h:367
Definition OverriddenPropertySet.h:211
bool IsEmpty() const
Definition OverriddenPropertySet.h:237
FOverriddenPropertyPath(const FOverriddenPropertyPath &)=default
bool operator==(const FOverriddenPropertyPath &Other) const
Definition OverriddenPropertySet.h:232
FOverriddenPropertyPath(FOverriddenPropertyPath &&)=default
void operator+=(const FOverriddenPropertyPath &Other)
Definition OverriddenPropertySet.h:227
FOverriddenPropertyPath()=default
FOverriddenPropertyPath & operator=(const FOverriddenPropertyPath &)=default
FOverriddenPropertyPath & operator=(FOverriddenPropertyPath &&)=default
Definition OverriddenPropertySet.h:421
bool WasAdded() const
Definition OverriddenPropertySet.h:525
TObjectPtr< UObject > GetOwner() const
Definition OverriddenPropertySet.h:530
FOverriddenPropertySet()=default
FOverriddenPropertySet(TNotNull< UObject * > InOwner)
Definition OverriddenPropertySet.h:427
Definition PropertyVisitor.h:97
TArray< FPropertyVisitorInfo >::TConstIterator Iterator
Definition PropertyVisitor.h:198
Definition ObjectPtr.h:488
Definition Optional.h:131
Definition StructOpsTypeTraits.h:11
@ WithSerializer
Definition StructOpsTypeTraits.h:23
static constexpr EPropertyObjectReferenceType WithSerializerObjectReferences
Definition StructOpsTypeTraits.h:41
Definition StructOpsTypeTraits.h:46
Definition WeakObjectPtrTemplates.h:25