9 #ifndef _dcfa5213_ad7e_4194_8b4b_e630aa0df2e8
10 #define _dcfa5213_ad7e_4194_8b4b_e630aa0df2e8
23 #define ODIL_MESSAGE_MANDATORY_FIELD_MACRO(name, tag, TValueType, function) \
25 TValueType const & get_##name() const \
27 auto const & data = this->_command_set->function(tag); \
30 throw Exception("Empty element"); \
35 void set_##name(TValueType const & value) \
37 if(!this->_command_set->has(tag)) \
39 this->_command_set->add(tag); \
41 this->_command_set->function(tag) = { value }; \
44 #define ODIL_MESSAGE_OPTIONAL_FIELD_MACRO(name, tag, TValueType, function) \
45 ODIL_MESSAGE_MANDATORY_FIELD_MACRO(name, tag, TValueType, function) \
46 bool has_##name() const \
48 return this->_command_set->has(tag);; \
50 void delete_##name() \
52 this->_command_set->remove(tag); \
55 #define ODIL_MESSAGE_SET_OPTIONAL_FIELD_MACRO(dataset, name, tag, function) \
56 if(dataset->has(tag)) \
58 this->set_##name(dataset->function(tag, 0)); \
61 #define ODIL_MESSAGE_MANDATORY_FIELD_INTEGER_MACRO(name, tag) \
62 ODIL_MESSAGE_MANDATORY_FIELD_MACRO(name, tag, Value::Integer, as_int)
64 #define ODIL_MESSAGE_MANDATORY_FIELD_STRING_MACRO(name, tag) \
65 ODIL_MESSAGE_MANDATORY_FIELD_MACRO(name, tag, Value::String, as_string)
67 #define ODIL_MESSAGE_OPTIONAL_FIELD_INTEGER_MACRO(name, tag) \
68 ODIL_MESSAGE_OPTIONAL_FIELD_MACRO(name, tag, Value::Integer, as_int)
70 #define ODIL_MESSAGE_OPTIONAL_FIELD_STRING_MACRO(name, tag) \
71 ODIL_MESSAGE_OPTIONAL_FIELD_MACRO(name, tag, Value::String, as_string)
98 N_EVENT_REPORT_RQ = 0x0100,
99 N_EVENT_REPORT_RSP = 0x8100,
107 N_ACTION_RQ = 0x0130,
108 N_ACTION_RSP = 0x8130,
110 N_CREATE_RQ = 0x0140,
111 N_CREATE_RSP = 0x8140,
113 N_DELETE_RQ = 0x0150,
114 N_DELETE_RSP = 0x8150,
132 std::shared_ptr<DataSet> command_set=std::make_shared<DataSet>(),
133 std::shared_ptr<DataSet> data_set={});
142 std::shared_ptr<DataSet const> get_command_set()
const;
145 bool has_data_set()
const;
151 std::shared_ptr<DataSet const> get_data_set()
const;
157 std::shared_ptr<DataSet> get_data_set();
160 void set_data_set(std::shared_ptr<DataSet> data_set);
163 void delete_data_set();
170 std::shared_ptr<DataSet> _command_set;
173 std::shared_ptr<DataSet> _data_set;
180 #endif // _dcfa5213_ad7e_4194_8b4b_e630aa0df2e8