![]() |
Open Lighting Architecture
0.9.1
|
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 *) |
Public Member Functions inherited from ola::messaging::FieldDescriptorVisitor | |
| 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. |
1.8.1.2