UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ArchiveSerializedPropertyChain.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
6
9{
10public:
13 : SerializedPropertyChainUpdateCount(0)
16#endif
17 {
18 }
19
27 {
29 SerializedPropertyChain.Push(InProperty);
30
31 IncrementUpdateCount();
32
33#if WITH_EDITORONLY_DATA
35 {
37 }
38#endif
39 }
40
48 {
50 check(SerializedPropertyChain.Num() > 0 && SerializedPropertyChain.Last() == InProperty);
51 SerializedPropertyChain.Pop(EAllowShrinking::No);
52
53 IncrementUpdateCount();
54
55#if WITH_EDITORONLY_DATA
57 {
60 }
61#endif
62 }
63
69 {
70 return SerializedPropertyChain.Last(InStackIndex);
71 }
72
78 {
79 return SerializedPropertyChain[InRootIndex];
80 }
81
86 {
87 return SerializedPropertyChain.Num();
88 }
89
94 {
95 return SerializedPropertyChainUpdateCount;
96 }
97
102 {
103#if WITH_EDITORONLY_DATA
104 return EditorOnlyPropertyStack > 0;
105#else
106 return false;
107#endif
108 }
109
111 {
112 return SerializedPropertyChain.CreateConstIterator();
113 }
114private:
115 void IncrementUpdateCount()
116 {
117 while (++SerializedPropertyChainUpdateCount == 0) {} // Zero is special, don't allow an overflow to stay at zero
118 }
119
121 TArray<class FProperty*, TInlineAllocator<8>> SerializedPropertyChain;
122
124 uint32 SerializedPropertyChainUpdateCount;
125
126#if WITH_EDITORONLY_DATA
129#endif
130};
#define check(expr)
Definition AssertionMacros.h:314
#define WITH_EDITORONLY_DATA
Definition CoreMiscDefines.h:24
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
#define UE_FORCEINLINE_HINT
Definition Platform.h:723
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
if(Failed) console_printf("Failed.\n")
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition UnrealType.h:174
Definition Array.h:670
Definition Array.h:64
Definition ArchiveSerializedPropertyChain.h:9
FArchiveSerializedPropertyChain()
Definition ArchiveSerializedPropertyChain.h:12
class FProperty * GetPropertyFromStack(const int32 InStackIndex) const
Definition ArchiveSerializedPropertyChain.h:68
UE_FORCEINLINE_HINT TArray< classFProperty *, TInlineAllocator< 8 > >::TConstIterator GetRootIterator() const
Definition ArchiveSerializedPropertyChain.h:110
uint32 GetUpdateCount() const
Definition ArchiveSerializedPropertyChain.h:93
void PushProperty(class FProperty *InProperty, const bool bIsEditorOnlyProperty)
Definition ArchiveSerializedPropertyChain.h:26
int32 GetNumProperties() const
Definition ArchiveSerializedPropertyChain.h:85
void PopProperty(class FProperty *InProperty, const bool bIsEditorOnlyProperty)
Definition ArchiveSerializedPropertyChain.h:47
bool HasEditorOnlyProperty() const
Definition ArchiveSerializedPropertyChain.h:101
class FProperty * GetPropertyFromRoot(const int32 InRootIndex) const
Definition ArchiveSerializedPropertyChain.h:77