UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CompactBinarySerialization.h File Reference

Go to the source code of this file.

Namespaces

namespace  UE
 
namespace  UE::Serialization
 
namespace  UE::Serialization::Private
 

Functions

void UE::Serialization::Private::LogFieldTooLargeForArrayWarning (uint64 FieldLength)
 
CORE_API uint64 MeasureCompactBinary (FMemoryView View, ECbFieldType Type=ECbFieldType::HasFieldType)
 
CORE_API bool TryMeasureCompactBinary (FMemoryView InView, ECbFieldType &OutType, uint64 &OutSize, ECbFieldType InType=ECbFieldType::HasFieldType)
 
CORE_API FCbField LoadCompactBinary (FArchive &Ar, FCbBufferAllocator Allocator=FUniqueBuffer::Alloc)
 
CORE_API void SaveCompactBinary (FArchive &Ar, const FCbFieldView &Field)
 
CORE_API void SaveCompactBinary (FArchive &Ar, const FCbArrayView &Array)
 
CORE_API void SaveCompactBinary (FArchive &Ar, const FCbObjectView &Object)
 
CORE_API FArchiveoperator<< (FArchive &Ar, FCbField &Field)
 
CORE_API FArchiveoperator<< (FArchive &Ar, FCbArray &Array)
 
CORE_API FArchiveoperator<< (FArchive &Ar, FCbObject &Object)
 
CORE_API bool LoadFromCompactBinary (FCbFieldView Field, FUtf8StringBuilderBase &OutValue)
 
CORE_API bool LoadFromCompactBinary (FCbFieldView Field, FWideStringBuilderBase &OutValue)
 
CORE_API bool LoadFromCompactBinary (FCbFieldView Field, UE::FUtf8SharedString &OutString)
 
CORE_API bool LoadFromCompactBinary (FCbFieldView Field, UE::FWideSharedString &OutString)
 
CORE_API bool LoadFromCompactBinary (FCbFieldView Field, FUtf8String &OutValue)
 
CORE_API bool LoadFromCompactBinary (FCbFieldView Field, FWideString &OutValue)
 
CORE_API bool LoadFromCompactBinary (FCbFieldView Field, FName &OutValue)
 
bool LoadFromCompactBinary (FCbFieldView Field, int8 &OutValue, const int8 Default=0)
 
bool LoadFromCompactBinary (FCbFieldView Field, int16 &OutValue, const int16 Default=0)
 
bool LoadFromCompactBinary (FCbFieldView Field, int32 &OutValue, const int32 Default=0)
 
bool LoadFromCompactBinary (FCbFieldView Field, int64 &OutValue, const int64 Default=0)
 
bool LoadFromCompactBinary (FCbFieldView Field, uint8 &OutValue, const uint8 Default=0)
 
bool LoadFromCompactBinary (FCbFieldView Field, uint16 &OutValue, const uint16 Default=0)
 
bool LoadFromCompactBinary (FCbFieldView Field, uint32 &OutValue, const uint32 Default=0)
 
bool LoadFromCompactBinary (FCbFieldView Field, uint64 &OutValue, const uint64 Default=0)
 
bool LoadFromCompactBinary (FCbFieldView Field, float &OutValue, const float Default=0.0f)
 
bool LoadFromCompactBinary (FCbFieldView Field, double &OutValue, const double Default=0.0)
 
bool LoadFromCompactBinary (FCbFieldView Field, bool &OutValue, const bool Default=false)
 
bool LoadFromCompactBinary (FCbFieldView Field, FIoHash &OutValue, const FIoHash &Default=FIoHash())
 
CORE_API bool LoadFromCompactBinary (FCbFieldView Field, FGuid &OutValue)
 
CORE_API bool LoadFromCompactBinary (FCbFieldView Field, FGuid &OutValue, const FGuid &Default)
 
CORE_API bool LoadFromCompactBinary (FCbFieldView Field, FDateTime &OutValue)
 
CORE_API bool LoadFromCompactBinary (FCbFieldView Field, FDateTime &OutValue, FDateTime Default)
 
bool LoadFromCompactBinary (FCbFieldView Field, FCbObjectId &OutValue, const FCbObjectId &Default=FCbObjectId())
 
template<typename T , typename Allocator >
bool LoadFromCompactBinary (FCbFieldView Field, TArray< T, Allocator > &OutValue)
 
CORE_API void CompactBinaryToJson (const FCbFieldView &Field, FUtf8StringBuilderBase &Builder)
 
CORE_API void CompactBinaryToJson (const FCbFieldView &Field, FWideStringBuilderBase &Builder)
 
CORE_API void CompactBinaryToJson (const FCbArrayView &Array, FUtf8StringBuilderBase &Builder)
 
CORE_API void CompactBinaryToJson (const FCbArrayView &Array, FWideStringBuilderBase &Builder)
 
CORE_API void CompactBinaryToJson (const FCbObjectView &Object, FUtf8StringBuilderBase &Builder)
 
CORE_API void CompactBinaryToJson (const FCbObjectView &Object, FWideStringBuilderBase &Builder)
 
CORE_API void CompactBinaryToCompactJson (const FCbFieldView &Field, FUtf8StringBuilderBase &Builder)
 
CORE_API void CompactBinaryToCompactJson (const FCbFieldView &Field, FWideStringBuilderBase &Builder)
 
CORE_API void CompactBinaryToCompactJson (const FCbArrayView &Array, FUtf8StringBuilderBase &Builder)
 
CORE_API void CompactBinaryToCompactJson (const FCbArrayView &Array, FWideStringBuilderBase &Builder)
 
CORE_API void CompactBinaryToCompactJson (const FCbObjectView &Object, FUtf8StringBuilderBase &Builder)
 
CORE_API void CompactBinaryToCompactJson (const FCbObjectView &Object, FWideStringBuilderBase &Builder)
 

Function Documentation

◆ CompactBinaryToCompactJson() [1/6]

CORE_API void CompactBinaryToCompactJson ( const FCbArrayView Array,
FUtf8StringBuilderBase Builder 
)

◆ CompactBinaryToCompactJson() [2/6]

CORE_API void CompactBinaryToCompactJson ( const FCbArrayView Array,
FWideStringBuilderBase Builder 
)

◆ CompactBinaryToCompactJson() [3/6]

CORE_API void CompactBinaryToCompactJson ( const FCbFieldView Field,
FUtf8StringBuilderBase Builder 
)

Convert the compact binary to JSON in a compact format with no added whitespace.

◆ CompactBinaryToCompactJson() [4/6]

CORE_API void CompactBinaryToCompactJson ( const FCbFieldView Field,
FWideStringBuilderBase Builder 
)

◆ CompactBinaryToCompactJson() [5/6]

CORE_API void CompactBinaryToCompactJson ( const FCbObjectView Object,
FUtf8StringBuilderBase Builder 
)

◆ CompactBinaryToCompactJson() [6/6]

CORE_API void CompactBinaryToCompactJson ( const FCbObjectView Object,
FWideStringBuilderBase Builder 
)

◆ CompactBinaryToJson() [1/6]

CORE_API void CompactBinaryToJson ( const FCbArrayView Array,
FUtf8StringBuilderBase Builder 
)

◆ CompactBinaryToJson() [2/6]

CORE_API void CompactBinaryToJson ( const FCbArrayView Array,
FWideStringBuilderBase Builder 
)

◆ CompactBinaryToJson() [3/6]

CORE_API void CompactBinaryToJson ( const FCbFieldView Field,
FUtf8StringBuilderBase Builder 
)

Convert the compact binary to JSON in a multi-line format with indentation.

◆ CompactBinaryToJson() [4/6]

CORE_API void CompactBinaryToJson ( const FCbFieldView Field,
FWideStringBuilderBase Builder 
)

◆ CompactBinaryToJson() [5/6]

CORE_API void CompactBinaryToJson ( const FCbObjectView Object,
FUtf8StringBuilderBase Builder 
)

◆ CompactBinaryToJson() [6/6]

CORE_API void CompactBinaryToJson ( const FCbObjectView Object,
FWideStringBuilderBase Builder 
)

◆ LoadCompactBinary()

CORE_API FCbField LoadCompactBinary ( FArchive Ar,
FCbBufferAllocator  Allocator = FUniqueBuffer::Alloc 
)

Load a compact binary field from an archive.

The field may be an array or an object, which the caller can convert to by using AsArray or AsObject as appropriate. The buffer allocator is called to provide the buffer for the field to load into once its size has been determined.

Parameters
ArArchive to read the field from. An error state is set on failure.
AllocatorAllocator for the buffer that the field is loaded into.
Returns
A field with a reference to the allocated buffer, or a default field on failure.

◆ LoadFromCompactBinary() [1/25]

bool LoadFromCompactBinary ( FCbFieldView  Field,
bool OutValue,
const bool  Default = false 
)
inline

◆ LoadFromCompactBinary() [2/25]

bool LoadFromCompactBinary ( FCbFieldView  Field,
double OutValue,
const double  Default = 0.0 
)
inline

◆ LoadFromCompactBinary() [3/25]

bool LoadFromCompactBinary ( FCbFieldView  Field,
FCbObjectId OutValue,
const FCbObjectId Default = FCbObjectId() 
)
inline

◆ LoadFromCompactBinary() [4/25]

CORE_API bool LoadFromCompactBinary ( FCbFieldView  Field,
FDateTime OutValue 
)

◆ LoadFromCompactBinary() [5/25]

CORE_API bool LoadFromCompactBinary ( FCbFieldView  Field,
FDateTime OutValue,
FDateTime  Default 
)

◆ LoadFromCompactBinary() [6/25]

CORE_API bool LoadFromCompactBinary ( FCbFieldView  Field,
FGuid OutValue 
)

◆ LoadFromCompactBinary() [7/25]

CORE_API bool LoadFromCompactBinary ( FCbFieldView  Field,
FGuid OutValue,
const FGuid Default 
)

◆ LoadFromCompactBinary() [8/25]

bool LoadFromCompactBinary ( FCbFieldView  Field,
FIoHash OutValue,
const FIoHash Default = FIoHash() 
)
inline

◆ LoadFromCompactBinary() [9/25]

bool LoadFromCompactBinary ( FCbFieldView  Field,
float OutValue,
const float  Default = 0.0f 
)
inline

◆ LoadFromCompactBinary() [10/25]

CORE_API bool LoadFromCompactBinary ( FCbFieldView  Field,
FName OutValue 
)

◆ LoadFromCompactBinary() [11/25]

CORE_API bool LoadFromCompactBinary ( FCbFieldView  Field,
FUtf8String OutValue 
)

◆ LoadFromCompactBinary() [12/25]

CORE_API bool LoadFromCompactBinary ( FCbFieldView  Field,
FUtf8StringBuilderBase OutValue 
)

LoadFromCompactBinary attempts to load the output value from compact binary.

Implementations of LoadCompactBinary are expected to assign the output even on failure. Implementations may accept an optional default value to assign in case of load failure.

Returns
true if required fields had the values with the correct type and range, otherwise false.

◆ LoadFromCompactBinary() [13/25]

CORE_API bool LoadFromCompactBinary ( FCbFieldView  Field,
FWideString OutValue 
)

◆ LoadFromCompactBinary() [14/25]

CORE_API bool LoadFromCompactBinary ( FCbFieldView  Field,
FWideStringBuilderBase OutValue 
)

◆ LoadFromCompactBinary() [15/25]

bool LoadFromCompactBinary ( FCbFieldView  Field,
int16 OutValue,
const int16  Default = 0 
)
inline

◆ LoadFromCompactBinary() [16/25]

bool LoadFromCompactBinary ( FCbFieldView  Field,
int32 OutValue,
const int32  Default = 0 
)
inline

◆ LoadFromCompactBinary() [17/25]

bool LoadFromCompactBinary ( FCbFieldView  Field,
int64 OutValue,
const int64  Default = 0 
)
inline

◆ LoadFromCompactBinary() [18/25]

bool LoadFromCompactBinary ( FCbFieldView  Field,
int8 OutValue,
const int8  Default = 0 
)
inline

◆ LoadFromCompactBinary() [19/25]

template<typename T , typename Allocator >
bool LoadFromCompactBinary ( FCbFieldView  Field,
TArray< T, Allocator > &  OutValue 
)
inline

◆ LoadFromCompactBinary() [20/25]

CORE_API bool LoadFromCompactBinary ( FCbFieldView  Field,
UE::FUtf8SharedString OutString 
)

◆ LoadFromCompactBinary() [21/25]

CORE_API bool LoadFromCompactBinary ( FCbFieldView  Field,
UE::FWideSharedString OutString 
)

◆ LoadFromCompactBinary() [22/25]

bool LoadFromCompactBinary ( FCbFieldView  Field,
uint16 OutValue,
const uint16  Default = 0 
)
inline

◆ LoadFromCompactBinary() [23/25]

bool LoadFromCompactBinary ( FCbFieldView  Field,
uint32 OutValue,
const uint32  Default = 0 
)
inline

◆ LoadFromCompactBinary() [24/25]

bool LoadFromCompactBinary ( FCbFieldView  Field,
uint64 OutValue,
const uint64  Default = 0 
)
inline

◆ LoadFromCompactBinary() [25/25]

bool LoadFromCompactBinary ( FCbFieldView  Field,
uint8 OutValue,
const uint8  Default = 0 
)
inline

◆ MeasureCompactBinary()

CORE_API uint64 MeasureCompactBinary ( FMemoryView  View,
ECbFieldType  Type = ECbFieldType::HasFieldType 
)

Determine the size in bytes of the compact binary field at the start of the view.

This may be called on an incomplete or invalid field, in which case the returned size is zero. A size can always be extracted from a valid field with no name if a view of at least the first 10 bytes is provided, regardless of field size. For fields with names, the size of view needed to calculate a size is at most 10 + MaxNameLen + MeasureVarUInt(MaxNameLen).

This function can be used when streaming a field, for example, to determine the size of buffer to fill before attempting to construct a field from it.

Parameters
ViewA memory view that may contain the start of a field.
TypeHasFieldType means that View contains the type. Otherwise, use the given type.

◆ operator<<() [1/3]

CORE_API FArchive & operator<< ( FArchive Ar,
FCbArray Array 
)

◆ operator<<() [2/3]

CORE_API FArchive & operator<< ( FArchive Ar,
FCbField Field 
)

Serialize a compact binary value to/from an archive.

◆ operator<<() [3/3]

CORE_API FArchive & operator<< ( FArchive Ar,
FCbObject Object 
)

◆ SaveCompactBinary() [1/3]

CORE_API void SaveCompactBinary ( FArchive Ar,
const FCbArrayView Array 
)

◆ SaveCompactBinary() [2/3]

CORE_API void SaveCompactBinary ( FArchive Ar,
const FCbFieldView Field 
)

Save a compact binary value to an archive.

◆ SaveCompactBinary() [3/3]

CORE_API void SaveCompactBinary ( FArchive Ar,
const FCbObjectView Object 
)

◆ TryMeasureCompactBinary()

CORE_API bool TryMeasureCompactBinary ( FMemoryView  InView,
ECbFieldType OutType,
uint64 OutSize,
ECbFieldType  InType = ECbFieldType::HasFieldType 
)

Try to determine the type and size of the compact binary field at the start of the view.

This may be called on an incomplete or invalid field, in which case it will return false, with OutSize being 0 for invalid fields, otherwise the minimum view size necessary to make progress in measuring the field on the next call to this function.

Note
A return of true from this function does not indicate that the entire field is valid.
Parameters
InViewA memory view that may contain the start of a field.
OutTypeThe type (with flags) of the field. None is written until a value is available.
OutSizeThe total field size for a return of true, 0 for invalid fields, or the size to make progress in measuring the field on the next call to this function.
InTypeHasFieldType means that InView contains the type. Otherwise, use the given type.
Returns
true if the size of the field was determined, otherwise false.