UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BinaryArchiveFormatter.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#include "HAL/Platform.h"
10
11class FName;
12class FString;
13class FText;
14class UObject;
15struct FLazyObjectPtr;
16struct FObjectPtr;
17struct FSoftObjectPath;
18struct FSoftObjectPtr;
19struct FWeakObjectPtr;
20
22{
23public:
26
27 CORE_API virtual bool HasDocumentTree() const override;
28 virtual FArchive& GetUnderlyingArchive() override;
29
30 virtual void EnterRecord() override;
31 virtual void LeaveRecord() override;
32 virtual void EnterField(FArchiveFieldName Name) override;
33 virtual void LeaveField() override;
34 CORE_API virtual bool TryEnterField(FArchiveFieldName Name, bool bEnterIfWriting) override;
35
36 virtual void EnterArray(int32& NumElements) override;
37 virtual void LeaveArray() override;
38 virtual void EnterArrayElement() override;
39 virtual void LeaveArrayElement() override;
40
41 virtual void EnterStream() override;
42 virtual void LeaveStream() override;
43 virtual void EnterStreamElement() override;
44 virtual void LeaveStreamElement() override;
45
46 virtual void EnterMap(int32& NumElements) override;
47 virtual void LeaveMap() override;
48 virtual void EnterMapElement(FString& Name) override;
49 virtual void LeaveMapElement() override;
50
51 virtual void EnterAttributedValue() override;
52 virtual void EnterAttribute(FArchiveFieldName AttributeName) override;
53 virtual void EnterAttributedValueValue() override;
54 virtual void LeaveAttribute() override;
55 virtual void LeaveAttributedValue() override;
56 virtual bool TryEnterAttribute(FArchiveFieldName AttributeName, bool bEnterWhenWriting) override;
57 virtual bool TryEnterAttributedValueValue() override;
58
59 virtual void Serialize(uint8& Value) override;
60 virtual void Serialize(uint16& Value) override;
61 virtual void Serialize(uint32& Value) override;
62 virtual void Serialize(uint64& Value) override;
63 virtual void Serialize(int8& Value) override;
64 virtual void Serialize(int16& Value) override;
65 virtual void Serialize(int32& Value) override;
66 virtual void Serialize(int64& Value) override;
67 virtual void Serialize(float& Value) override;
68 virtual void Serialize(double& Value) override;
69 virtual void Serialize(bool& Value) override;
70 virtual void Serialize(UTF32CHAR& Value) override;
71 virtual void Serialize(FString& Value) override;
72 virtual void Serialize(FName& Value) override;
73 virtual void Serialize(UObject*& Value) override;
74#if WITH_VERSE_VM || defined(__INTELLISENSE__)
75 virtual void Serialize(Verse::VCell*& Value) override;
76#endif
77 virtual void Serialize(FText& Value) override;
78 virtual void Serialize(FWeakObjectPtr& Value) override;
79 virtual void Serialize(FSoftObjectPtr& Value) override;
80 virtual void Serialize(FSoftObjectPath& Value) override;
81 virtual void Serialize(FLazyObjectPtr& Value) override;
82 virtual void Serialize(FObjectPtr& Value) override;
83 CORE_API virtual void Serialize(TArray<uint8>& Value) override;
84 virtual void Serialize(void* Data, uint64 DataSize) override;
85
86private:
87
88 FArchive& Inner;
89};
90
95
99
103
107
111
113{
114 bool bValue = bEnterWhenWriting;
115 Inner << bValue;
116 if (bValue)
117 {
119 }
120 return bValue;
121}
122
124{
125 Inner << NumElements;
126}
127
131
135
139
143
147
151
155
157{
158 Inner << NumElements;
159}
160
162{
163}
164
166{
167 Inner << Name;
168}
169
173
177
181
185
187{
188 return false;
189}
190
194
198
200{
201 bool bValue = bEnterWhenWriting;
202 Inner << bValue;
203 if (bValue)
204 {
205 EnterAttribute(AttributeName);
206 }
207 return bValue;
208}
209
211{
212 Inner << Value;
213}
214
216{
217 Inner << Value;
218}
219
221{
222 Inner << Value;
223}
224
226{
227 Inner << Value;
228}
229
231{
232 Inner << Value;
233}
234
236{
237 Inner << Value;
238}
239
241{
242 Inner << Value;
243}
244
246{
247 Inner << Value;
248}
249
251{
252 Inner << Value;
253}
254
256{
257 Inner << Value;
258}
259
261{
262 Inner << Value;
263}
264
266{
267 Inner << Value;
268}
269
271{
272 Inner << Value;
273}
274
276{
277 Inner << Value;
278}
279
281{
282 Inner << Value;
283}
284
285#if WITH_VERSE_VM || defined(__INTELLISENSE__)
286inline void FBinaryArchiveFormatter::Serialize(Verse::VCell*& Value)
287{
288 Inner << Value;
289}
290#endif
291
293{
294 Inner << Value;
295}
296
298{
299 Inner << Value;
300}
301
303{
304 Inner << Value;
305}
306
308{
309 Inner << Value;
310}
311
313{
314 Inner << Value;
315}
316
318{
319 Inner << Value;
320}
321
323{
324 Inner << Data;
325}
326
328{
329 Inner.Serialize(Data, DataSize);
330}
FPlatformTypes::int16 int16
A 16-bit signed integer.
Definition Platform.h:1123
FPlatformTypes::int8 int8
An 8-bit signed integer.
Definition Platform.h:1121
FPlatformTypes::UTF32CHAR UTF32CHAR
A 32-bit character containing a UTF32 (Unicode, 32-bit, fixed-width) code unit.
Definition Platform.h:1143
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
virtual void Serialize(void *V, int64 Length)
Definition Archive.h:1689
Definition BinaryArchiveFormatter.h:22
virtual bool TryEnterAttribute(FArchiveFieldName AttributeName, bool bEnterWhenWriting) override
Definition BinaryArchiveFormatter.h:199
virtual void LeaveArrayElement() override
Definition BinaryArchiveFormatter.h:136
virtual CORE_API ~FBinaryArchiveFormatter()
Definition BinaryArchiveFormatter.cpp:10
virtual void LeaveMapElement() override
Definition BinaryArchiveFormatter.h:170
virtual void EnterAttribute(FArchiveFieldName AttributeName) override
Definition BinaryArchiveFormatter.h:178
virtual void LeaveAttribute() override
Definition BinaryArchiveFormatter.h:191
virtual void EnterRecord() override
Definition BinaryArchiveFormatter.h:96
virtual void EnterArrayElement() override
Definition BinaryArchiveFormatter.h:132
virtual void Serialize(uint8 &Value) override
Definition BinaryArchiveFormatter.h:210
virtual void EnterArray(int32 &NumElements) override
Definition BinaryArchiveFormatter.h:123
virtual void EnterStreamElement() override
Definition BinaryArchiveFormatter.h:148
virtual void LeaveStream() override
Definition BinaryArchiveFormatter.h:144
virtual void LeaveRecord() override
Definition BinaryArchiveFormatter.h:100
virtual FArchive & GetUnderlyingArchive() override
Definition BinaryArchiveFormatter.h:91
virtual void EnterField(FArchiveFieldName Name) override
Definition BinaryArchiveFormatter.h:104
virtual void EnterMapElement(FString &Name) override
Definition BinaryArchiveFormatter.h:165
virtual void LeaveAttributedValue() override
Definition BinaryArchiveFormatter.h:195
virtual CORE_API bool HasDocumentTree() const override
Definition BinaryArchiveFormatter.cpp:14
virtual void LeaveField() override
Definition BinaryArchiveFormatter.h:108
virtual void EnterMap(int32 &NumElements) override
Definition BinaryArchiveFormatter.h:156
virtual void LeaveMap() override
Definition BinaryArchiveFormatter.h:161
virtual void EnterAttributedValueValue() override
Definition BinaryArchiveFormatter.h:182
virtual bool TryEnterAttributedValueValue() override
Definition BinaryArchiveFormatter.h:186
virtual CORE_API bool TryEnterField(FArchiveFieldName Name, bool bEnterIfWriting) override
Definition BinaryArchiveFormatter.h:112
virtual void EnterAttributedValue() override
Definition BinaryArchiveFormatter.h:174
virtual void EnterStream() override
Definition BinaryArchiveFormatter.h:140
virtual void LeaveStreamElement() override
Definition BinaryArchiveFormatter.h:152
virtual void LeaveArray() override
Definition BinaryArchiveFormatter.h:128
Definition NameTypes.h:617
Definition StructuredArchiveFormatter.h:60
Definition Text.h:385
Definition Array.h:670
Definition Object.h:95
Definition StructuredArchiveNameHelpers.h:10
Definition LazyObjectPtr.h:151
Definition ObjectPtr.h:55
Definition SoftObjectPath.h:56
Definition SoftObjectPtr.h:45
Definition WeakObjectPtr.h:49