Navigation
API > API/Runtime > API/Runtime/Core
A writer for compact binary object, arrays, and fields.
The writer produces a sequence of fields that can be saved to a provided memory buffer or into a new owned buffer. The typical use case is to write a single object, which can be accessed by calling Save().AsObject() or Save(Buffer).AsObjectView().
The writer will assert on most incorrect usage and will always produce valid compact binary if provided with valid input. The writer does not check for invalid UTF-8 string encoding, object fields with duplicate names, or invalid compact binary being copied from another source.
It is most convenient to use the streaming API for the writer, as demonstrated in the example.
When writing a small amount of compact binary data, TCbWriter can be more efficient as it uses a fixed-size stack buffer for storage before spilling onto the heap.
Example:
FCbObject WriteObject() { TCbWriter<256> Writer; Writer.BeginObject();
Writer << "Resize" << true; Writer << "MaxWidth" << 1024; Writer << "MaxHeight" << 1024;
Writer.BeginArray(); Writer << "FormatA" << "FormatB" << "FormatC"; Writer.EndArray();
Writer.EndObject(); return Writer.Save().AsObject(); }
| Name | FCbWriter |
| Type | class |
| Header File | /Engine/Source/Runtime/Core/Public/Serialization/CompactBinaryWriter.h |
| Include Path | #include "Serialization/CompactBinaryWriter.h" |
Syntax
class FCbWriter
Derived Classes
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FCbWriter
(
int64 InitialSize |
Reserve the specified size up front until the format is optimized. | Serialization/CompactBinaryWriter.h | |
FCbWriter () |
Serialization/CompactBinaryWriter.h | ||
| Serialization/CompactBinaryWriter.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
~FCbWriter() |
Serialization/CompactBinaryWriter.h |
Structs
| Name | Remarks |
|---|---|
| FState | State of the object, array, or top-level field being written. |
Enums
Public
| Name | Remarks |
|---|---|
| EStateFlags |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| Data | TArray64< uint8 > | This is a prototype-quality format for the writer. | Serialization/CompactBinaryWriter.h | |
| States | TArray< FState > | Serialization/CompactBinaryWriter.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
| Copy the value (not the name) of an existing array. Holds a reference if owned. | Serialization/CompactBinaryWriter.h | ||
void AddArray
(
FUtf8StringView Name, |
Copy the value (not the name) of an existing array. | Serialization/CompactBinaryWriter.h | |
| Serialization/CompactBinaryWriter.h | |||
void AddArray
(
const FCbArrayView& Value |
Serialization/CompactBinaryWriter.h | ||
void AddAttachment
(
FUtf8StringView Name, |
Write a field referencing the attachment by its hash. | Serialization/CompactBinaryWriter.h | |
void AddAttachment
(
const FCbAttachment& Attachment |
Serialization/CompactBinaryWriter.h | ||
void AddBinary
(
const FCompositeBuffer& Value |
Serialization/CompactBinaryWriter.h | ||
void AddBinary
(
FUtf8StringView Name, |
Write a binary field by copying Size bytes from Value. | Serialization/CompactBinaryWriter.h | |
void AddBinary
(
FUtf8StringView Name, |
Serialization/CompactBinaryWriter.h | ||
void AddBinary
(
FUtf8StringView Name, |
Write a binary field by copying the buffer. Holds a reference if owned. | Serialization/CompactBinaryWriter.h | |
void AddBinary
(
FUtf8StringView Name, |
Write a binary field by copying the view. | Serialization/CompactBinaryWriter.h | |
void AddBinary
(
FMemoryView Value |
Serialization/CompactBinaryWriter.h | ||
void AddBinary
(
const FSharedBuffer& Value |
Serialization/CompactBinaryWriter.h | ||
void AddBinary
(
const void* Value, |
Serialization/CompactBinaryWriter.h | ||
void AddBinaryAttachment
(
FUtf8StringView Name, |
Write a field referencing a binary attachment by its hash. | Serialization/CompactBinaryWriter.h | |
void AddBinaryAttachment
(
const FIoHash& Value |
Serialization/CompactBinaryWriter.h | ||
void AddBool
(
FUtf8StringView Name, |
Write a bool field. | Serialization/CompactBinaryWriter.h | |
void AddBool
(
bool bValue |
Serialization/CompactBinaryWriter.h | ||
void AddCustom
(
FUtf8StringView TypeName, |
Serialization/CompactBinaryWriter.h | ||
void AddCustom
(
uint64 TypeId, |
Serialization/CompactBinaryWriter.h | ||
void AddCustom
(
FUtf8StringView FieldName, |
Write a custom field with a string sub-type identifier. | Serialization/CompactBinaryWriter.h | |
void AddCustom
(
FUtf8StringView FieldName, |
Write a custom field with an integer sub-type identifier. | Serialization/CompactBinaryWriter.h | |
void AddDateTime
(
FDateTime Value |
Serialization/CompactBinaryWriter.h | ||
void AddDateTime
(
FUtf8StringView Name, |
Write a date/time field. | Serialization/CompactBinaryWriter.h | |
void AddDateTimeTicks
(
int64 Ticks |
Serialization/CompactBinaryWriter.h | ||
void AddDateTimeTicks
(
FUtf8StringView Name, |
Write a date/time field with the specified count of 100ns ticks since the epoch. | Serialization/CompactBinaryWriter.h | |
| Copy the value (not the name) of an existing field. Holds a reference if owned. | Serialization/CompactBinaryWriter.h | ||
void AddField
(
FUtf8StringView Name, |
Copy the value (not the name) of an existing field. | Serialization/CompactBinaryWriter.h | |
| Serialization/CompactBinaryWriter.h | |||
void AddField
(
const FCbFieldView& Value |
Serialization/CompactBinaryWriter.h | ||
void AddFloat
(
FUtf8StringView Name, |
Write a float field from a 64-bit float value. | Serialization/CompactBinaryWriter.h | |
void AddFloat
(
FUtf8StringView Name, |
Write a float field from a 32-bit float value. | Serialization/CompactBinaryWriter.h | |
void AddFloat
(
double Value |
Serialization/CompactBinaryWriter.h | ||
void AddFloat
(
float Value |
Serialization/CompactBinaryWriter.h | ||
| Serialization/CompactBinaryWriter.h | |||
| Write a hash field. | Serialization/CompactBinaryWriter.h | ||
void AddInteger
(
FUtf8StringView Name, |
Write an integer field. | Serialization/CompactBinaryWriter.h | |
void AddInteger
(
FUtf8StringView Name, |
Write an integer field. | Serialization/CompactBinaryWriter.h | |
void AddInteger
(
FUtf8StringView Name, |
Write an integer field. | Serialization/CompactBinaryWriter.h | |
void AddInteger
(
FUtf8StringView Name, |
Write an integer field. | Serialization/CompactBinaryWriter.h | |
void AddInteger
(
uint64 Value |
Serialization/CompactBinaryWriter.h | ||
void AddInteger
(
uint32 Value |
Serialization/CompactBinaryWriter.h | ||
void AddInteger
(
int32 Value |
Serialization/CompactBinaryWriter.h | ||
void AddInteger
(
int64 Value |
Serialization/CompactBinaryWriter.h | ||
void AddNull
(
FUtf8StringView Name |
Write a null field. | Serialization/CompactBinaryWriter.h | |
void AddNull () |
Serialization/CompactBinaryWriter.h | ||
void AddObject
(
FUtf8StringView Name, |
Copy the value (not the name) of an existing object. | Serialization/CompactBinaryWriter.h | |
| Copy the value (not the name) of an existing object. Holds a reference if owned. | Serialization/CompactBinaryWriter.h | ||
| Serialization/CompactBinaryWriter.h | |||
void AddObject
(
const FCbObjectView& Value |
Serialization/CompactBinaryWriter.h | ||
void AddObjectAttachment
(
FUtf8StringView Name, |
Write a field referencing an object attachment by its hash. | Serialization/CompactBinaryWriter.h | |
void AddObjectAttachment
(
const FIoHash& Value |
Serialization/CompactBinaryWriter.h | ||
void AddObjectId
(
FUtf8StringView Name, |
Write an ObjectId field. | Serialization/CompactBinaryWriter.h | |
void AddObjectId
(
const FCbObjectId& Value |
Serialization/CompactBinaryWriter.h | ||
void AddString
(
FUtf8StringView Value |
Serialization/CompactBinaryWriter.h | ||
void AddString
(
FWideStringView Value |
Serialization/CompactBinaryWriter.h | ||
void AddString
(
FUtf8StringView Name, |
Write a string field by copying the UTF-8 value. | Serialization/CompactBinaryWriter.h | |
void AddString
(
FUtf8StringView Name, |
Write a string field by converting the UTF-16 value to UTF-8. | Serialization/CompactBinaryWriter.h | |
void AddTimeSpan
(
FTimespan Value |
Serialization/CompactBinaryWriter.h | ||
void AddTimeSpan
(
FUtf8StringView Name, |
Write a time span field. | Serialization/CompactBinaryWriter.h | |
void AddTimeSpanTicks
(
int64 Ticks |
Serialization/CompactBinaryWriter.h | ||
void AddTimeSpanTicks
(
FUtf8StringView Name, |
Write a time span field with the specified count of 100ns ticks. | Serialization/CompactBinaryWriter.h | |
| Serialization/CompactBinaryWriter.h | |||
| Write a UUID field. | Serialization/CompactBinaryWriter.h | ||
void BeginArray () |
Serialization/CompactBinaryWriter.h | ||
void BeginArray
(
FUtf8StringView Name |
Begin a new array. Must have a matching call to EndArray. | Serialization/CompactBinaryWriter.h | |
void BeginObject () |
Serialization/CompactBinaryWriter.h | ||
void BeginObject
(
FUtf8StringView Name |
Begin a new object. Must have a matching call to EndObject. | Serialization/CompactBinaryWriter.h | |
void EndArray() |
End an array after its fields have been written. | Serialization/CompactBinaryWriter.h | |
void EndObject() |
End an object after its fields have been written. | Serialization/CompactBinaryWriter.h | |
uint64 GetSaveSize () |
The size of buffer (in bytes) required to serialize the fields that have been written. | Serialization/CompactBinaryWriter.h | |
void Reset() |
Empty the writer without releasing any allocated memory. | Serialization/CompactBinaryWriter.h | |
| Serialize the field(s) to an owned buffer and return it as an iterator. | Serialization/CompactBinaryWriter.h | ||
| Serialize the field(s) to an archive. | Serialization/CompactBinaryWriter.h | ||
FCbFieldViewIterator Save
(
FMutableMemoryView Buffer |
Serialize the field(s) to memory. | Serialization/CompactBinaryWriter.h | |
| Sets the name of the next field to be written. | Serialization/CompactBinaryWriter.h |
Protected
Operators
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
| Serialization/CompactBinaryWriter.h |