21#ifndef COMMON_RDM_VARIABLEFIELDSIZECALCULATOR_H_
22#define COMMON_RDM_VARIABLEFIELDSIZECALCULATOR_H_
24#include <ola/messaging/DescriptorVisitor.h>
41class VariableFieldSizeCalculator
50 MULTIPLE_VARIABLE_FIELDS,
51 NESTED_VARIABLE_GROUPS,
55 VariableFieldSizeCalculator() : m_fixed_size_sum(0) {}
56 ~VariableFieldSizeCalculator() {}
58 bool Descend()
const {
return false; }
60 unsigned int data_size,
62 unsigned int *variable_field_repeat_count);
69 void Visit(
const ola::messaging::UInt8FieldDescriptor*);
70 void Visit(
const ola::messaging::UInt16FieldDescriptor*);
71 void Visit(
const ola::messaging::UInt32FieldDescriptor*);
72 void Visit(
const ola::messaging::Int8FieldDescriptor*);
73 void Visit(
const ola::messaging::Int16FieldDescriptor*);
74 void Visit(
const ola::messaging::Int32FieldDescriptor*);
79 unsigned int m_fixed_size_sum;
80 std::vector<const ola::messaging::StringFieldDescriptor*>
81 m_variable_string_fields;
82 std::vector<const ola::messaging::FieldDescriptorGroup*>
83 m_variable_group_fields;
85 unsigned int DetermineGroupSize(
const
Definition Descriptor.h:84
Definition Descriptor.h:399
Definition Descriptor.h:320
Definition DescriptorVisitor.h:43
Definition Descriptor.h:103
Definition Descriptor.h:122
Definition Descriptor.h:160
Definition Descriptor.h:141
calculator_state CalculateFieldSize(unsigned int data_size, const class ola::messaging::Descriptor *, unsigned int *variable_field_repeat_count)
Definition VariableFieldSizeCalculator.cpp:47
A framework for serializing simple message structures.
Definition Descriptor.cpp:25
PLASA E1.20 Remote Device Management.
Definition AckTimerResponder.cpp:38
The namespace containing all OLA symbols.
Definition Credentials.cpp:44