![]() |
Open Lighting Architecture
0.9.5
|
Calculate the size of a variable field when unpacking a Message from a raw data stream.
Public Types | |
enum | calculator_state { TOO_SMALL, TOO_LARGE, FIXED_SIZE, VARIABLE_STRING, VARIABLE_GROUP, MULTIPLE_VARIABLE_FIELDS, NESTED_VARIABLE_GROUPS, MISMATCHED_SIZE } |
Public Member Functions | |
bool | Descend () const |
calculator_state | CalculateFieldSize (unsigned int data_size, const class ola::messaging::Descriptor *, unsigned int *variable_field_repeat_count) |
void | Visit (const ola::messaging::BoolFieldDescriptor *) |
void | Visit (const ola::messaging::IPV4FieldDescriptor *) |
void | Visit (const ola::messaging::MACFieldDescriptor *) |
void | Visit (const ola::messaging::UIDFieldDescriptor *) |
void | Visit (const ola::messaging::StringFieldDescriptor *) |
void | Visit (const ola::messaging::UInt8FieldDescriptor *) |
void | Visit (const ola::messaging::UInt16FieldDescriptor *) |
void | Visit (const ola::messaging::UInt32FieldDescriptor *) |
void | Visit (const ola::messaging::Int8FieldDescriptor *) |
void | Visit (const ola::messaging::Int16FieldDescriptor *) |
void | Visit (const ola::messaging::Int32FieldDescriptor *) |
void | Visit (const ola::messaging::FieldDescriptorGroup *) |
void | PostVisit (const ola::messaging::FieldDescriptorGroup *) |
![]() | |
virtual void | Visit (const IntegerFieldDescriptor< uint8_t > *)=0 |
virtual void | Visit (const IntegerFieldDescriptor< uint16_t > *)=0 |
virtual void | Visit (const IntegerFieldDescriptor< uint32_t > *)=0 |
virtual void | Visit (const IntegerFieldDescriptor< int8_t > *)=0 |
virtual void | Visit (const IntegerFieldDescriptor< int16_t > *)=0 |
virtual void | Visit (const IntegerFieldDescriptor< int32_t > *)=0 |
VariableFieldSizeCalculator::calculator_state ola::rdm::VariableFieldSizeCalculator::CalculateFieldSize | ( | unsigned int | data_size, |
const class ola::messaging::Descriptor * | descriptor, | ||
unsigned int * | variable_field_size | ||
) |
Figure out the size of a variable-length field in a descriptor. The variable field may be a string or a repeated group of fields. Multiple-variable length fields are not supported as this doesn't allow us to determine the boundary of the individual fields within a message.
This method is not re-entrant.
data_size | the size in bytes of the data in this message |
descriptor | The descriptor to use to build the Message |
variable_field_size | a pointer to a int which is set to the length of the variable field within this mesage. |