Kanzi Framework  3.9.0
Kanzi Engine API
kanzi::KzbMemoryParser Class Reference

Parser for kzb files. More...

#include <kanzi/core.ui/kzb/kzb_memory_parser.hpp>

Public Types

enum  ArgumentType { ArgumentType::Value, ArgumentType::MessageArgument, ArgumentType::ObjectProperty, ArgumentType::ValueReference }
 Enum used in kzb file to mark the type of the arguments of ForwardingAction and ExpressionCondition instances. More...
 
typedef vector< BindingLoadInfoBindingContainer
 
typedef vector< PropertyPairPropertyContainer
 
typedef pair< AbstractPropertyType, VariantPropertyPair
 

Public Member Functions

void alignToOffset (ptrdiff_t alignBytes)
 Skip to next alignment of given bytes, relative to the beginning of the parsed data. More...
 
 KzbMemoryParser (KzbFile *kzbFile, const byte *data, uint64_t dataSize)
 Constructor. More...
 
 KzbMemoryParser (KzbFile *kzbFile, ConstByteSpan data)
 Constructor. More...
 
const MetaclassloadMetaclass ()
 Load metaclass from current location in the file. More...
 
ObjectSharedPtr loadObject ()
 Load object from current location in the file. More...
 
void loadProperties (Object &object)
 Load properties from current location in the file and store them in an object. More...
 
void loadProperties (PropertyContainer &properties, bool resolveResources)
 Load properties from current location in the file and store them in a property container. More...
 
void loadProperties (PropertyContainer &properties, BindingContainer &referenceBindings, bool resolveResources)
 Load properties from current location in the file and store them in a property container. More...
 
AbstractPropertyType loadPropertyType ()
 Load property type from current location in the file. More...
 
void loadPropertyValue (Object &object)
 Load single property value from current location in the file and store it in an object. More...
 
Variant loadVariant (bool resolveResources)
 Load variant from current location in the file. More...
 
Variant loadVariantValue (PropertyDataType dataType, bool resolveResources)
 Load variant value from current location in the file. More...
 
ArgumentType parseArgumentType ()
 Parse a value of Argument Type from current position in the file. More...
 
bool parseBool ()
 Parse value from current position in the file. More...
 
ColorRGBA parseColorRGBA ()
 Parse value from current position in the file. More...
 
ConstByteSpan parseData (size_t size)
 Parse value from current position in the file. More...
 
float parseFloat ()
 Parse value from current position in the file. More...
 
int32_t parseInt32 ()
 Parse value from current position in the file. More...
 
Matrix3x3 parseMatrix3x3 ()
 Parse value from current position in the file. More...
 
Matrix4x4 parseMatrix4x4 ()
 Parse value from current position in the file. More...
 
string_view parseNullTerminatedString ()
 Parse value from current position in the file. More...
 
AbstractRangeSharedPtr parseRange ()
 Parse a range value from current position in the file. More...
 
ConstByteSpan parseSizedData ()
 Parse value from current position in the file. More...
 
string_view parseSizedString ()
 Parse value from current position in the file. More...
 
KzbMemoryParser parseSlice ()
 Parse a slice from current position in the file. More...
 
SRTValue2D parseSRT2D ()
 Parse value from current position in the file. More...
 
SRTValue3D parseSRT3D ()
 Parse value from current position in the file. More...
 
string_view parseStringReference ()
 Load string index from the current location in the file, and look it up in the dictionary. More...
 
uint16_t parseUint16 ()
 Parse value from current position in the file. More...
 
uint32_t parseUint32 ()
 Parse value from current position in the file. More...
 
uint64_t parseUint64 ()
 Parse value from current position in the file. More...
 
uint8_t parseUint8 ()
 Parse value from current position in the file. More...
 
Vector2 parseVector2 ()
 Parse value from current position in the file. More...
 
Vector3 parseVector3 ()
 Parse value from current position in the file. More...
 
Vector4 parseVector4 ()
 Parse value from current position in the file. More...
 
void skip (size_t sizeBytes)
 Skip bytes from current location in the file. More...
 

Detailed Description

Parser for kzb files.

Used for parsing the binary data from a kzb file into raw values and Kanzi Engine constructs. As opposed to KzbFile, KzbMemoryParser only reads and parses values.

Member Typedef Documentation

◆ PropertyPair

◆ PropertyContainer

◆ BindingContainer

Member Enumeration Documentation

◆ ArgumentType

Enum used in kzb file to mark the type of the arguments of ForwardingAction and ExpressionCondition instances.

Enumerator
Value 
MessageArgument 
ObjectProperty 
ValueReference 

Constructor & Destructor Documentation

◆ KzbMemoryParser() [1/2]

kanzi::KzbMemoryParser::KzbMemoryParser ( KzbFile kzbFile,
const byte data,
uint64_t  dataSize 
)
inlineexplicit

Constructor.

Parameters
kzbFileThe kzb file construct holding file information.
dataThe data block.
dataSizeThe data size.

◆ KzbMemoryParser() [2/2]

kanzi::KzbMemoryParser::KzbMemoryParser ( KzbFile kzbFile,
ConstByteSpan  data 
)
inlineexplicit

Constructor.

Parameters
kzbFileThe kzb file construct holding file information.
dataThe span representing the data.

Member Function Documentation

◆ parseUint32()

uint32_t kanzi::KzbMemoryParser::parseUint32 ( )
inline

Parse value from current position in the file.

Returns
32-bit unsigned integer value.

◆ parseUint64()

uint64_t kanzi::KzbMemoryParser::parseUint64 ( )
inline

Parse value from current position in the file.

Returns
64-bit unsigned integer value.

◆ parseInt32()

int32_t kanzi::KzbMemoryParser::parseInt32 ( )
inline

Parse value from current position in the file.

Returns
32-bit signed integer value.

◆ parseUint16()

uint16_t kanzi::KzbMemoryParser::parseUint16 ( )
inline

Parse value from current position in the file.

Returns
16-bit unsigned integer value.

◆ parseUint8()

uint8_t kanzi::KzbMemoryParser::parseUint8 ( )
inline

Parse value from current position in the file.

Returns
8-bit unsigned integer value.

◆ parseFloat()

float kanzi::KzbMemoryParser::parseFloat ( )
inline

Parse value from current position in the file.

Returns
32-bit floating point value.

◆ parseBool()

bool kanzi::KzbMemoryParser::parseBool ( )
inline

Parse value from current position in the file.

Returns
Boolean value.

◆ parseColorRGBA()

ColorRGBA kanzi::KzbMemoryParser::parseColorRGBA ( )
inline

Parse value from current position in the file.

Returns
Boolean value.

◆ parseVector2()

Vector2 kanzi::KzbMemoryParser::parseVector2 ( )
inline

Parse value from current position in the file.

Returns
2-component floating point vector value.

◆ parseVector3()

Vector3 kanzi::KzbMemoryParser::parseVector3 ( )
inline

Parse value from current position in the file.

Returns
3-component floating point vector value.

◆ parseVector4()

Vector4 kanzi::KzbMemoryParser::parseVector4 ( )
inline

Parse value from current position in the file.

Returns
4-component floating point vector value.

◆ parseMatrix3x3()

Matrix3x3 kanzi::KzbMemoryParser::parseMatrix3x3 ( )
inline

Parse value from current position in the file.

Returns
3x3 floating point matrix value.

◆ parseMatrix4x4()

Matrix4x4 kanzi::KzbMemoryParser::parseMatrix4x4 ( )
inline

Parse value from current position in the file.

Returns
4x4 floating point matrix value.

◆ parseNullTerminatedString()

string_view kanzi::KzbMemoryParser::parseNullTerminatedString ( )
inline

Parse value from current position in the file.

Returns
View into string value.

◆ parseSizedString()

string_view kanzi::KzbMemoryParser::parseSizedString ( )
inline

Parse value from current position in the file.

Returns
View into string value.

◆ parseData()

ConstByteSpan kanzi::KzbMemoryParser::parseData ( size_t  size)
inline

Parse value from current position in the file.

Returns
Byte span.

◆ parseSizedData()

ConstByteSpan kanzi::KzbMemoryParser::parseSizedData ( )
inline

Parse value from current position in the file.

Returns
Byte span.

◆ parseSRT2D()

SRTValue2D kanzi::KzbMemoryParser::parseSRT2D ( )
inline

Parse value from current position in the file.

Returns
2D SRT value.

◆ parseSRT3D()

SRTValue3D kanzi::KzbMemoryParser::parseSRT3D ( )
inline

Parse value from current position in the file.

Returns
3D SRT value.

◆ parseRange()

AbstractRangeSharedPtr kanzi::KzbMemoryParser::parseRange ( )

Parse a range value from current position in the file.

Returns
Range value.

◆ parseArgumentType()

ArgumentType kanzi::KzbMemoryParser::parseArgumentType ( )
inline

Parse a value of Argument Type from current position in the file.

Returns
Argument Type.

◆ parseSlice()

KzbMemoryParser kanzi::KzbMemoryParser::parseSlice ( )
inline

Parse a slice from current position in the file.

Returns
KzbMemoryParser mapped to the slice.

◆ loadPropertyValue()

void kanzi::KzbMemoryParser::loadPropertyValue ( Object object)

Load single property value from current location in the file and store it in an object.

Parameters
objectObject to store the property value to.

◆ loadProperties() [1/3]

void kanzi::KzbMemoryParser::loadProperties ( Object object)

Load properties from current location in the file and store them in an object.

Parameters
objectObject to store property collection to.

◆ loadProperties() [2/3]

void kanzi::KzbMemoryParser::loadProperties ( PropertyContainer properties,
bool  resolveResources 
)

Load properties from current location in the file and store them in a property container.

Parameters
propertiesProperty container to store properties to.
resolveResourcesTrue to resolve resource immediately.

◆ loadProperties() [3/3]

void kanzi::KzbMemoryParser::loadProperties ( PropertyContainer properties,
BindingContainer referenceBindings,
bool  resolveResources 
)

Load properties from current location in the file and store them in a property container.

Parameters
propertiesProperty container to store properties to.
referenceBindingsBinding container to store reference bindings in.
resolveResourcesTrue to resolve resource immediately.

◆ loadVariantValue()

Variant kanzi::KzbMemoryParser::loadVariantValue ( PropertyDataType  dataType,
bool  resolveResources 
)

Load variant value from current location in the file.

Parameters
dataTypeData type of the variant.
resolveResourcesTrue to resolve resource immediately.
Returns
Variant read.

◆ loadVariant()

Variant kanzi::KzbMemoryParser::loadVariant ( bool  resolveResources)

Load variant from current location in the file.

Parameters
resolveResourcesTrue to resolve resource immediately.
Returns
Variant read.

◆ loadMetaclass()

const Metaclass* kanzi::KzbMemoryParser::loadMetaclass ( )

Load metaclass from current location in the file.

Returns
Metaclass read.

◆ loadPropertyType()

AbstractPropertyType kanzi::KzbMemoryParser::loadPropertyType ( )

Load property type from current location in the file.

Returns
Property type read.

◆ parseStringReference()

string_view kanzi::KzbMemoryParser::parseStringReference ( )

Load string index from the current location in the file, and look it up in the dictionary.

Returns
If the index is found, a view pointing to the string in dictionary, otherwise an empty view.

◆ loadObject()

ObjectSharedPtr kanzi::KzbMemoryParser::loadObject ( )

Load object from current location in the file.

Returns
Object loaded.

◆ skip()

void kanzi::KzbMemoryParser::skip ( size_t  sizeBytes)
inline

Skip bytes from current location in the file.

Parameters
sizeBytesBytes to skip.

◆ alignToOffset()

void kanzi::KzbMemoryParser::alignToOffset ( ptrdiff_t  alignBytes)
inline

Skip to next alignment of given bytes, relative to the beginning of the parsed data.

If alignment is already correct, the position is not moved.

Parameters
alignBytesAlignment to skip to.

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