DataDescriptionInterface Class Reference

#include <datadescription.h>

Detailed Description

Interface to store descriptions of objects. The DataDescription object is a cow object. It stores a compiled version of the DataDescriptionDefinitionRef for each datatype.

Public Member Functions

MAXON_METHOD DataDictionary GetInfo () const
 
MAXON_METHOD Result< void > SetInfo (const DataDictionary &info)
 
MAXON_METHOD Int GetEntryCount () const
 
MAXON_METHOD Result< BaseArray< DataDictionary > > GetEntries () const
 
MAXON_METHOD Result< DataDictionary > GetEntry (const InternedId &id) const
 
MAXON_METHOD Result< DataDictionary > FindEntry (const InternedId &id) const
 
MAXON_METHOD Result< BoolSetEntry (const DataDictionary &props, Bool merge=false)
 
MAXON_METHOD Result< void > EraseEntry (const InternedId &id)
 
MAXON_METHOD void Reset ()
 
MAXON_METHOD Bool IsEqual (const DataDescriptionInterface *other, EQUALITY equality) const
 
MAXON_METHOD COMPARERESULT Compare (const DataDescriptionInterface *other) const
 
MAXON_METHOD HashInt GetHashCode () const
 
MAXON_METHOD UniqueHash GetUniqueHashCode () const
 
MAXON_METHOD String ToString (const FormatStatement *formatStatement=nullptr) const
 

Static Public Member Functions

static MAXON_METHOD Result< void > DescribeIO (const DataSerializeInterface &stream)
 

Private Member Functions

 MAXON_INTERFACE_NONVIRTUAL (DataDescriptionInterface, MAXON_REFERENCE_COPY_ON_WRITE, "net.maxon.interface.datadescription")
 

Member Function Documentation

◆ MAXON_INTERFACE_NONVIRTUAL()

MAXON_INTERFACE_NONVIRTUAL ( DataDescriptionInterface  ,
MAXON_REFERENCE_COPY_ON_WRITE  ,
"net.maxon.interface.datadescription"   
)
private

◆ GetInfo()

MAXON_METHOD DataDictionary GetInfo ( ) const

Returns the info dictionary.

◆ SetInfo()

MAXON_METHOD Result<void> SetInfo ( const DataDictionary &  info)

SetInfo the info dictionary of the description.

Parameters
[in]infoDictionary with infos.
Returns
OK on success.

◆ GetEntryCount()

MAXON_METHOD Int GetEntryCount ( ) const

Returns the number of entries in the description.

◆ GetEntries()

MAXON_METHOD Result<BaseArray<DataDictionary> > GetEntries ( ) const

Returns a array with all entries.

◆ GetEntry()

MAXON_METHOD Result<DataDictionary> GetEntry ( const InternedId id) const

Returns a specific entry with the given id. Deprecated. Will be deprecated, use FindEntry instead.

Parameters
[in]idId to return.
Returns
DataDictionary on success. Error if the requested attribute was not in the description.

◆ FindEntry()

MAXON_METHOD Result<DataDictionary> FindEntry ( const InternedId id) const

Searches for the occurrence of the entry.

Parameters
[in]idId to search.
Returns
Entry on success. Error if entry is not found.

◆ SetEntry()

MAXON_METHOD Result<Bool> SetEntry ( const DataDictionary &  props,
Bool  merge = false 
)

SetEntry description.

Parameters
[in]propsProperties to set. The DESCRIPTION::BASE::IDENTIFIER will be used as key for the hashmap.
[in]mergeTrue if the container should be merged with the existing props im the description. The given props will have priority over the existing.
Returns
true if properties has been changed.

◆ EraseEntry()

MAXON_METHOD Result<void> EraseEntry ( const InternedId id)

Deletes a attribute from the description.

Parameters
[in]idId of the attribute to delete.
Returns
OK on success.

◆ Reset()

MAXON_METHOD void Reset ( )

Resets the description and clear all attributes.

◆ IsEqual()

MAXON_METHOD Bool IsEqual ( const DataDescriptionInterface other,
EQUALITY  equality 
) const

Compares two descriptions.

Parameters
[in]otherOther description to compare.
[in]equalitySee @EQUALITY.
Returns
True in equality.

◆ Compare()

MAXON_METHOD COMPARERESULT Compare ( const DataDescriptionInterface other) const

Compares the 2 values.

◆ GetHashCode()

MAXON_METHOD HashInt GetHashCode ( ) const

Returns the hash code of this @CLASS.

Returns
Hash code of this @CLASS.

◆ GetUniqueHashCode()

MAXON_METHOD UniqueHash GetUniqueHashCode ( ) const

Returns the 128-bit hash value of this @CLASS. The implementation ensures uniform distribution, so for practical purposes you can safely assume that two objects are equal if their hash values are equal.

Returns
Hash value of this @CLASS.

◆ ToString()

MAXON_METHOD String ToString ( const FormatStatement formatStatement = nullptr) const

Returns a readable string of the content.

Parameters
[in]formatStatementNullptr or additional formatting instruction. Use "{N}" for nive formatting of the name only. Otherwise the unique id is printed together with the name.
Returns
The converted result.

◆ DescribeIO()

static MAXON_METHOD Result<void> DescribeIO ( const DataSerializeInterface stream)
static

Describe all elements of this class for I/O operations.

Parameters
[in]streamThe stream that is used to register the class members.
Returns
OK on success.