UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
StructuredArchive.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"
7#include "CoreTypes.h"
9#include "Misc/Build.h"
18#include "Templates/UniqueObj.h"
19
20#if !WITH_TEXT_ARCHIVE_SUPPORT
21 #define UE_API FORCEINLINE
22#else
23 #define UE_API CORE_API
24#endif
25
27
49
57{
63
64public:
70
77
82
87
91 UE_API void Close();
92
97 {
98 return Formatter.GetUnderlyingArchive();
99 }
100
108
111
112private:
116
120 FArchiveFormatterType& Formatter;
121
122#if WITH_TEXT_ARCHIVE_SUPPORT
127
128 struct FElement
129 {
132
134 : Id(InId)
135 , Type(InType)
136 {
137 }
138 };
139
140 struct FIdGenerator
141 {
143 {
145 }
146
147 private:
148 uint32 NextId = 1;
149 };
150
155
160
165
171
172#if DO_STRUCTURED_ARCHIVE_CONTAINER_CHECKS
173 struct FContainer;
174
179#endif
180
185
190
197
201 CORE_API void LeaveSlot();
202
207#endif
208};
209
210#if !WITH_TEXT_ARCHIVE_SUPPORT
211
216
220
225
229
230#endif
231
233{
234 UE_FORCEINLINE_HINT FArchive& GetUnderlyingArchiveImpl(FStructuredArchive& StructuredArchive)
235 {
236 return StructuredArchive.GetUnderlyingArchive();
237 }
238
239 UE_FORCEINLINE_HINT FArchiveState& GetUnderlyingArchiveStateImpl(FStructuredArchive& StructuredArchive)
240 {
241 return StructuredArchive.GetUnderlyingArchive().GetArchiveState();
242 }
243
244#if WITH_TEXT_ARCHIVE_SUPPORT
246 {
247 return StructuredArchive.CurrentSlotElementId;
248 }
249#endif
250
252 {
253 return StructuredArchive.Formatter;
254 }
255}
256
257#undef UE_API
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
std::conditional_t< WITH_TEXT_ARCHIVE_SUPPORT, FStructuredArchiveFormatter, FBinaryArchiveFormatter > FArchiveFormatterType
Definition StructuredArchiveFwd.h:26
#define UE_API
Definition StructuredArchive.h:21
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
FArchiveState & GetArchiveState()
Definition Archive.h:1730
Definition StructuredArchiveSlots.h:172
Definition StructuredArchiveChildReader.h:30
Definition StructuredArchiveSlots.h:215
Definition StructuredArchiveSlots.h:144
Definition StructuredArchiveSlots.h:52
Definition StructuredArchiveSlots.h:193
Definition StructuredArchive.h:57
UE_API FStructuredArchive(FArchiveFormatterType &InFormatter)
Definition StructuredArchive.h:212
UE_API ~FStructuredArchive()
Definition StructuredArchive.h:217
FStructuredArchive(const FStructuredArchive &)=delete
UE_API void Close()
Definition StructuredArchive.h:226
UE_FORCEINLINE_HINT const FArchiveState & GetArchiveState() const
Definition StructuredArchive.h:104
FStructuredArchive & operator=(const FStructuredArchive &)=delete
UE_FORCEINLINE_HINT FArchive & GetUnderlyingArchive() const
Definition StructuredArchive.h:96
UE_API FStructuredArchiveSlot Open()
Definition StructuredArchive.h:221
Definition Array.h:670
EPrivateToken
Definition StructuredArchiveSlotBase.h:73
Definition StructuredArchiveSlotBase.h:48
Definition StructuredArchive.h:29
EElementType
Definition StructuredArchive.h:31
FArchiveFormatterType & GetFormatterImpl(FStructuredArchive &Ar)
Definition StructuredArchive.h:251
EEnteringAttributeState
Definition StructuredArchive.h:41
FElementId GetCurrentSlotElementIdImpl(FStructuredArchive &Ar)
Definition Archive.h:70
Definition StructuredArchiveSlotBase.h:14