UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FCbObjectView Class Reference

#include <CompactBinary.h>

+ Inheritance diagram for FCbObjectView:

Public Member Functions

CORE_API FCbObjectView ()
 
CORE_API FCbFieldView FindView (FUtf8StringView Name) const
 
CORE_API FCbFieldView FindViewIgnoreCase (FUtf8StringView Name) const
 
FCbFieldView operator[] (FUtf8StringView Name) const
 
FCbFieldView AsFieldView () const
 
CORE_API operator bool () const
 
CORE_API uint64 GetSize () const
 
CORE_API FIoHash GetHash () const
 
CORE_API void AppendHash (FIoHashBuilder &Builder) const
 
CORE_API bool Equals (const FCbObjectView &Other) const
 
CORE_API void CopyTo (FMutableMemoryView Buffer) const
 
CORE_API void CopyTo (FArchive &Ar) const
 
void IterateAttachments (FCbFieldVisitor Visitor) const
 
bool TryGetView (FMemoryView &OutView) const
 
constexpr FCbFieldView ()=default
 
CORE_API FCbFieldView (const void *Data, ECbFieldType Type=ECbFieldType::HasFieldType)
 
 FCbFieldView (const FCbValue &Value)
 
CORE_API FCbFieldViewIterator CreateViewIterator () const
 
FCbFieldViewIterator begin () const
 
constexpr FCbIteratorSentinel end () const
 

Static Public Member Functions

static FCbObjectView FromFieldNoCheck (const FCbFieldView &Field)
 

Additional Inherited Members

- Protected Member Functions inherited from FCbFieldView
CORE_API FMemoryView GetView () const
 
CORE_API FMemoryView GetViewNoType () const
 
FMemoryView GetValueView () const
 
constexpr ECbFieldType GetType () const
 
constexpr ECbFieldType GetTypeWithFlags () const
 
constexpr const voidGetValueData () const
 
const voidGetValueEnd () const
 
CORE_API uint64 GetValueSize () const
 
void Assign (const void *InData, const ECbFieldType InType)
 
constexpr FCbFieldView ()=default
 
CORE_API FCbFieldView (const void *Data, ECbFieldType Type=ECbFieldType::HasFieldType)
 
 FCbFieldView (const FCbValue &Value)
 
constexpr FCbFieldView RemoveName () const
 
constexpr FUtf8StringView GetName () const
 
FCbValue GetValue () const
 
CORE_API FCbObjectView AsObjectView ()
 
CORE_API FCbArrayView AsArrayView ()
 
CORE_API FMemoryView AsBinaryView (FMemoryView Default=FMemoryView())
 
CORE_API FUtf8StringView AsString (FUtf8StringView Default=FUtf8StringView())
 
int8 AsInt8 (int8 Default=0)
 
int16 AsInt16 (int16 Default=0)
 
int32 AsInt32 (int32 Default=0)
 
int64 AsInt64 (int64 Default=0)
 
uint8 AsUInt8 (uint8 Default=0)
 
uint16 AsUInt16 (uint16 Default=0)
 
uint32 AsUInt32 (uint32 Default=0)
 
uint64 AsUInt64 (uint64 Default=0)
 
CORE_API float AsFloat (float Default=0.0f)
 
CORE_API double AsDouble (double Default=0.0)
 
CORE_API bool AsBool (bool bDefault=false)
 
CORE_API FIoHash AsObjectAttachment (const FIoHash &Default=FIoHash())
 
CORE_API FIoHash AsBinaryAttachment (const FIoHash &Default=FIoHash())
 
CORE_API FIoHash AsAttachment (const FIoHash &Default=FIoHash())
 
CORE_API FIoHash AsHash (const FIoHash &Default=FIoHash())
 
CORE_API FGuid AsUuid ()
 
CORE_API FGuid AsUuid (const FGuid &Default)
 
CORE_API int64 AsDateTimeTicks (int64 Default=0)
 
CORE_API FDateTime AsDateTime ()
 
CORE_API FDateTime AsDateTime (FDateTime Default)
 
CORE_API int64 AsTimeSpanTicks (int64 Default=0)
 
CORE_API FTimespan AsTimeSpan ()
 
CORE_API FTimespan AsTimeSpan (FTimespan Default)
 
CORE_API FCbObjectId AsObjectId (const FCbObjectId &Default=FCbObjectId())
 
CORE_API FCbCustomById AsCustomById (FCbCustomById Default=FCbCustomById())
 
CORE_API FCbCustomByName AsCustomByName (FCbCustomByName Default=FCbCustomByName())
 
CORE_API FMemoryView AsCustom (uint64 Id, FMemoryView Default=FMemoryView())
 
CORE_API FMemoryView AsCustom (FUtf8StringView Name, FMemoryView Default=FMemoryView())
 
constexpr bool HasName () const
 
constexpr bool IsNull () const
 
constexpr bool IsObject () const
 
constexpr bool IsArray () const
 
constexpr bool IsBinary () const
 
constexpr bool IsString () const
 
constexpr bool IsInteger () const
 
constexpr bool IsFloat () const
 
constexpr bool IsBool () const
 
constexpr bool IsObjectAttachment () const
 
constexpr bool IsBinaryAttachment () const
 
constexpr bool IsAttachment () const
 
constexpr bool IsHash () const
 
constexpr bool IsUuid () const
 
constexpr bool IsDateTime () const
 
constexpr bool IsTimeSpan () const
 
constexpr bool IsObjectId () const
 
constexpr bool IsCustomById () const
 
constexpr bool IsCustomByName () const
 
constexpr operator bool () const
 
constexpr bool HasValue () const
 
constexpr bool HasError () const
 
constexpr ECbFieldError GetError () const
 
CORE_API uint64 GetSize () const
 
CORE_API FIoHash GetHash () const
 
CORE_API void AppendHash (FIoHashBuilder &Builder) const
 
CORE_API bool Equals (const FCbFieldView &Other) const
 
CORE_API void CopyTo (FMutableMemoryView Buffer) const
 
CORE_API void CopyTo (FArchive &Ar) const
 
CORE_API void IterateAttachments (FCbFieldVisitor Visitor) const
 
bool TryGetView (FMemoryView &OutView) const
 
CORE_API FCbFieldView operator[] (FUtf8StringView Name) const
 
CORE_API FCbFieldViewIterator CreateViewIterator () const
 
FCbFieldViewIterator begin () const
 
constexpr FCbIteratorSentinel end () const
 

Detailed Description

Array of FCbField[View] that have unique names.

Accessing the fields of an object is always a safe operation, even if the requested field does not exist. Fields may be accessed by name or through iteration. When a field is requested that is not found in the object, the field that it returns has no value (evaluates to false) though attempting to access the empty field is also safe, as described by FCbFieldView.

This type only provides a view into memory and does not perform any memory management itself. Use FCbObject to hold a reference to the underlying memory when necessary.

Constructor & Destructor Documentation

◆ FCbObjectView()

FCbObjectView::FCbObjectView ( )

Construct an object with no fields.

Member Function Documentation

◆ AppendHash()

void FCbObjectView::AppendHash ( FIoHashBuilder Builder) const

Append the hash of the object if serialized by itself with no name.

◆ AsFieldView()

FCbFieldView FCbObjectView::AsFieldView ( ) const
inline

Access the object as an object field.

◆ begin()

FCbFieldViewIterator FCbFieldView::begin ( ) const
inline

DO NOT USE DIRECTLY. These functions enable range-based for loop support.

◆ CopyTo() [1/2]

void FCbObjectView::CopyTo ( FArchive Ar) const

Copy the object into an archive. This will write GetSize() bytes, with no name.

◆ CopyTo() [2/2]

void FCbObjectView::CopyTo ( FMutableMemoryView  Buffer) const

Copy the object into a buffer of exactly GetSize() bytes, with no name.

◆ CreateViewIterator()

FCbFieldViewIterator FCbFieldView::CreateViewIterator ( ) const

◆ end()

constexpr FCbIteratorSentinel FCbFieldView::end ( ) const
inlineconstexpr

◆ Equals()

bool FCbObjectView::Equals ( const FCbObjectView Other) const

Whether this object is identical to the other object.

Performs a deep comparison of any contained arrays or objects and their fields. Comparison assumes that both fields are valid and are written in the canonical format. Fields must be written in the same order in arrays and objects, and name comparison is case sensitive. If these assumptions do not hold, this may return false for equivalent inputs. Validation can be done with the All mode to check these assumptions about the format of the inputs.

◆ FCbFieldView() [1/3]

constexpr FCbFieldView::FCbFieldView ( )
constexprdefault

◆ FCbFieldView() [2/3]

FORCEINLINE FCbFieldView::FCbFieldView ( const FCbValue Value)
inlineexplicit

◆ FCbFieldView() [3/3]

FCbFieldView::FCbFieldView ( const void Data,
ECbFieldType  Type = ECbFieldType::HasFieldType 
)
explicit

◆ FindView()

FCbFieldView FCbObjectView::FindView ( FUtf8StringView  Name) const

Find a field by case-sensitive name comparison.

The cost of this operation scales linearly with the number of fields in the object. Prefer to iterate over the fields only once when consuming an object.

Parameters
NameThe name of the field.
Returns
The matching field if found, otherwise a field with no value.

◆ FindViewIgnoreCase()

FCbFieldView FCbObjectView::FindViewIgnoreCase ( FUtf8StringView  Name) const

Find a field by case-insensitive name comparison.

◆ FromFieldNoCheck()

static FCbObjectView FCbObjectView::FromFieldNoCheck ( const FCbFieldView Field)
inlinestatic

Construct an object from an object field. No type check is performed!

◆ GetHash()

FIoHash FCbObjectView::GetHash ( ) const

Calculate the hash of the object if serialized by itself with no name.

◆ GetSize()

uint64 FCbObjectView::GetSize ( ) const

Returns the size of the object in bytes if serialized by itself with no name.

◆ IterateAttachments()

void FCbObjectView::IterateAttachments ( FCbFieldVisitor  Visitor) const
inline

Invoke the visitor for every attachment in the object.

◆ operator bool()

FCbObjectView::operator bool ( ) const
explicit

Whether the object has any fields.

◆ operator[]()

FCbFieldView FCbObjectView::operator[] ( FUtf8StringView  Name) const
inline

Find a field by case-sensitive name comparison.

◆ TryGetView()

bool FCbObjectView::TryGetView ( FMemoryView OutView) const
inline

Try to get a view of the object as it would be serialized, such as by CopyTo.

A view is available if the object contains its type and has no name. Access the equivalent for other objects through FCbObject::GetBuffer, FCbObject::Clone, or CopyTo.


The documentation for this class was generated from the following files: