21#ifndef COMMON_RDM_GROUPSIZECALCULATOR_H_
22#define COMMON_RDM_GROUPSIZECALCULATOR_H_
24#include <ola/messaging/DescriptorVisitor.h>
41class StaticGroupTokenCalculator
44 StaticGroupTokenCalculator()
45 : m_variable_sized_group_encountered(
false) {
47 ~StaticGroupTokenCalculator() {}
49 bool Descend()
const {
return true; }
52 unsigned int *token_count);
59 void Visit(
const ola::messaging::UInt8FieldDescriptor*);
60 void Visit(
const ola::messaging::UInt16FieldDescriptor*);
61 void Visit(
const ola::messaging::UInt32FieldDescriptor*);
62 void Visit(
const ola::messaging::Int8FieldDescriptor*);
63 void Visit(
const ola::messaging::Int16FieldDescriptor*);
64 void Visit(
const ola::messaging::Int32FieldDescriptor*);
69 std::stack<unsigned int> m_token_count;
70 bool m_variable_sized_group_encountered;
84 SINGLE_VARIABLE_GROUP,
85 MULTIPLE_VARIABLE_GROUPS,
86 NESTED_VARIABLE_GROUPS,
90 GroupSizeCalculator() {}
91 ~GroupSizeCalculator() {}
93 bool Descend()
const {
return false; }
95 unsigned int token_count,
97 unsigned int *group_repeat_count);
104 void Visit(
const ola::messaging::UInt8FieldDescriptor*);
105 void Visit(
const ola::messaging::UInt16FieldDescriptor*);
106 void Visit(
const ola::messaging::UInt32FieldDescriptor*);
107 void Visit(
const ola::messaging::Int8FieldDescriptor*);
108 void Visit(
const ola::messaging::Int16FieldDescriptor*);
109 void Visit(
const ola::messaging::Int32FieldDescriptor*);
114 std::vector<const ola::messaging::FieldDescriptorGroup*> m_groups;
115 std::vector<const ola::messaging::FieldDescriptorInterface*> m_non_groups;
118 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 CalculateGroupSize(unsigned int token_count, const class ola::messaging::Descriptor *descriptor, unsigned int *group_repeat_count)
Definition GroupSizeCalculator.cpp:44
Definition GroupSizeCalculator.h:42
bool CalculateTokensRequired(const class ola::messaging::FieldDescriptorGroup *, unsigned int *token_count)
Definition GroupSizeCalculator.cpp:213
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