DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
msgp.hpp
Go to the documentation of this file.
1/*
2 * This file is 100% generated. Any manual edits will likely be lost.
3 *
4 * This contains functions struct and other type definitions for schema in
5 * namespace dunedaq::timinglibs::timingcmd to be serialized via MsgPack.
6 */
7#ifndef DUNEDAQ_TIMINGLIBS_TIMINGCMD_MSGPACK_HPP
8#define DUNEDAQ_TIMINGLIBS_TIMINGCMD_MSGPACK_HPP
9
10// My structs
12
13// We have ANY types so need to include NLJS serialization
15
16#include <msgpack.hpp>
17
18// MsgPack serialization/deserialization functions
19namespace msgpack {
20MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS)
21{
22 namespace adaptor {
23
24 // MsgPack serialization for ANY type:
25 // dunedaq::timinglibs::timingcmd::TimingHwCmdPayload
26 template<>
27 struct convert<dunedaq::timinglibs::timingcmd::TimingHwCmdPayload>
28 {
29 msgpack::object const& operator()(msgpack::object const& o,
31 {
32 if (o.type != msgpack::type::ARRAY)
33 throw msgpack::type_error();
34 if (o.via.array.size != 1)
35 throw msgpack::type_error();
36 v = dunedaq::timinglibs::timingcmd::TimingHwCmdPayload::parse(o.via.array.ptr[0].as<std::string>());
37 return o;
38 }
39 };
40 template<>
41 struct pack<dunedaq::timinglibs::timingcmd::TimingHwCmdPayload>
42 {
43 template<typename Stream>
44 packer<Stream>& operator()(msgpack::packer<Stream>& o,
46 {
47 // packing member variables as an array.
48 o.pack_array(1);
49 o.pack(v.dump());
50 return o;
51 }
52 };
53
54 // MsgPack serialization for RECORD type:
55 // dunedaq::timinglibs::timingcmd::EndpointLocation
56 template<>
57 struct convert<dunedaq::timinglibs::timingcmd::EndpointLocation>
58 {
59 msgpack::object const& operator()(msgpack::object const& o,
60 dunedaq::timinglibs::timingcmd::EndpointLocation& v) const
61 {
62 if (o.type != msgpack::type::ARRAY)
63 throw msgpack::type_error();
64 if (o.via.array.size != 3)
65 throw msgpack::type_error();
66 v.fanout_slot = o.via.array.ptr[0].as<dunedaq::timinglibs::timingcmd::IntData>();
67 v.sfp_slot = o.via.array.ptr[1].as<dunedaq::timinglibs::timingcmd::IntData>();
68 v.address = o.via.array.ptr[2].as<dunedaq::timinglibs::timingcmd::UintData>();
69 return o;
70 }
71 };
72 template<>
73 struct pack<dunedaq::timinglibs::timingcmd::EndpointLocation>
74 {
75 template<typename Stream>
76 packer<Stream>& operator()(msgpack::packer<Stream>& o,
77 dunedaq::timinglibs::timingcmd::EndpointLocation const& v) const
78 {
79 // packing member variables as an array.
80 o.pack_array(3);
81 o.pack(v.fanout_slot);
82 o.pack(v.sfp_slot);
83 o.pack(v.address);
84 return o;
85 }
86 };
87
88 // MsgPack serialization for RECORD type:
89 // dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload
90 template<>
91 struct convert<dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload>
92 {
93 msgpack::object const& operator()(msgpack::object const& o,
94 dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload& v) const
95 {
96 if (o.type != msgpack::type::ARRAY)
97 throw msgpack::type_error();
98 if (o.via.array.size != 5)
99 throw msgpack::type_error();
100 v.rising_edge_mask = o.via.array.ptr[0].as<dunedaq::timinglibs::timingcmd::UintData>();
101 v.falling_edge_mask = o.via.array.ptr[1].as<dunedaq::timinglibs::timingcmd::UintData>();
102 v.invert_edge_mask = o.via.array.ptr[2].as<dunedaq::timinglibs::timingcmd::UintData>();
103 v.data_source = o.via.array.ptr[3].as<dunedaq::timinglibs::timingcmd::UintData>();
104 v.random_rate = o.via.array.ptr[4].as<dunedaq::timinglibs::timingcmd::DoubleData>();
105 return o;
106 }
107 };
108 template<>
109 struct pack<dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload>
110 {
111 template<typename Stream>
112 packer<Stream>& operator()(msgpack::packer<Stream>& o,
113 dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload const& v) const
114 {
115 // packing member variables as an array.
116 o.pack_array(5);
117 o.pack(v.rising_edge_mask);
118 o.pack(v.falling_edge_mask);
119 o.pack(v.invert_edge_mask);
120 o.pack(v.data_source);
121 o.pack(v.random_rate);
122 return o;
123 }
124 };
125
126 // MsgPack serialization for RECORD type:
127 // dunedaq::timinglibs::timingcmd::IOResetCmdPayload
128 template<>
129 struct convert<dunedaq::timinglibs::timingcmd::IOResetCmdPayload>
130 {
131 msgpack::object const& operator()(msgpack::object const& o,
132 dunedaq::timinglibs::timingcmd::IOResetCmdPayload& v) const
133 {
134 if (o.type != msgpack::type::ARRAY)
135 throw msgpack::type_error();
136 if (o.via.array.size != 3)
137 throw msgpack::type_error();
138 v.clock_config = o.via.array.ptr[0].as<dunedaq::timinglibs::timingcmd::String>();
139 v.soft = o.via.array.ptr[1].as<dunedaq::timinglibs::timingcmd::BoolData>();
140 v.clock_source = o.via.array.ptr[2].as<dunedaq::timinglibs::timingcmd::UintData>();
141 return o;
142 }
143 };
144 template<>
145 struct pack<dunedaq::timinglibs::timingcmd::IOResetCmdPayload>
146 {
147 template<typename Stream>
148 packer<Stream>& operator()(msgpack::packer<Stream>& o,
149 dunedaq::timinglibs::timingcmd::IOResetCmdPayload const& v) const
150 {
151 // packing member variables as an array.
152 o.pack_array(3);
153 o.pack(v.clock_config);
154 o.pack(v.soft);
155 o.pack(v.clock_source);
156 return o;
157 }
158 };
159
160 // MsgPack serialization for RECORD type:
161 // dunedaq::timinglibs::timingcmd::SyncTimestampPayload
162 template<>
163 struct convert<dunedaq::timinglibs::timingcmd::SyncTimestampPayload>
164 {
165 msgpack::object const& operator()(msgpack::object const& o,
166 dunedaq::timinglibs::timingcmd::SyncTimestampPayload& v) const
167 {
168 if (o.type != msgpack::type::ARRAY)
169 throw msgpack::type_error();
170 if (o.via.array.size != 1)
171 throw msgpack::type_error();
172 v.timestamp_source = o.via.array.ptr[0].as<dunedaq::timinglibs::timingcmd::UintData>();
173 return o;
174 }
175 };
176 template<>
177 struct pack<dunedaq::timinglibs::timingcmd::SyncTimestampPayload>
178 {
179 template<typename Stream>
180 packer<Stream>& operator()(msgpack::packer<Stream>& o,
181 dunedaq::timinglibs::timingcmd::SyncTimestampPayload const& v) const
182 {
183 // packing member variables as an array.
184 o.pack_array(1);
185 o.pack(v.timestamp_source);
186 return o;
187 }
188 };
189
190 // MsgPack serialization for RECORD type:
191 // dunedaq::timinglibs::timingcmd::TimingEndpointCmdPayload
192 template<>
193 struct convert<dunedaq::timinglibs::timingcmd::TimingEndpointCmdPayload>
194 {
195 msgpack::object const& operator()(msgpack::object const& o,
196 dunedaq::timinglibs::timingcmd::TimingEndpointCmdPayload& v) const
197 {
198 if (o.type != msgpack::type::ARRAY)
199 throw msgpack::type_error();
200 if (o.via.array.size != 1)
201 throw msgpack::type_error();
202 v.endpoint_id = o.via.array.ptr[0].as<dunedaq::timinglibs::timingcmd::UintData>();
203 return o;
204 }
205 };
206 template<>
207 struct pack<dunedaq::timinglibs::timingcmd::TimingEndpointCmdPayload>
208 {
209 template<typename Stream>
210 packer<Stream>& operator()(msgpack::packer<Stream>& o,
211 dunedaq::timinglibs::timingcmd::TimingEndpointCmdPayload const& v) const
212 {
213 // packing member variables as an array.
214 o.pack_array(1);
215 o.pack(v.endpoint_id);
216 return o;
217 }
218 };
219
220 // MsgPack serialization for RECORD type:
221 // dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload
222 template<>
223 struct convert<dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload>
224 {
225 msgpack::object const& operator()(msgpack::object const& o,
226 dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload& v) const
227 {
228 if (o.type != msgpack::type::ARRAY)
229 throw msgpack::type_error();
230 if (o.via.array.size != 3)
231 throw msgpack::type_error();
232 v.endpoint_id = o.via.array.ptr[0].as<dunedaq::timinglibs::timingcmd::UintData>();
233 v.address = o.via.array.ptr[1].as<dunedaq::timinglibs::timingcmd::UintData>();
234 v.partition = o.via.array.ptr[2].as<dunedaq::timinglibs::timingcmd::UintData>();
235 return o;
236 }
237 };
238 template<>
239 struct pack<dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload>
240 {
241 template<typename Stream>
242 packer<Stream>& operator()(msgpack::packer<Stream>& o,
243 dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload const& v) const
244 {
245 // packing member variables as an array.
246 o.pack_array(3);
247 o.pack(v.endpoint_id);
248 o.pack(v.address);
249 o.pack(v.partition);
250 return o;
251 }
252 };
253
254 // MsgPack serialization for RECORD type:
255 // dunedaq::timinglibs::timingcmd::TimingHwCmd
256 template<>
257 struct convert<dunedaq::timinglibs::timingcmd::TimingHwCmd>
258 {
259 msgpack::object const& operator()(msgpack::object const& o, dunedaq::timinglibs::timingcmd::TimingHwCmd& v) const
260 {
261 if (o.type != msgpack::type::ARRAY)
262 throw msgpack::type_error();
263 if (o.via.array.size != 3)
264 throw msgpack::type_error();
265 v.id = o.via.array.ptr[0].as<dunedaq::timinglibs::timingcmd::TimingHwCmdId>();
266 v.device = o.via.array.ptr[1].as<dunedaq::timinglibs::timingcmd::String>();
267 v.payload = o.via.array.ptr[2].as<dunedaq::timinglibs::timingcmd::TimingHwCmdPayload>();
268 return o;
269 }
270 };
271 template<>
272 struct pack<dunedaq::timinglibs::timingcmd::TimingHwCmd>
273 {
274 template<typename Stream>
275 packer<Stream>& operator()(msgpack::packer<Stream>& o, dunedaq::timinglibs::timingcmd::TimingHwCmd const& v) const
276 {
277 // packing member variables as an array.
278 o.pack_array(3);
279 o.pack(v.id);
280 o.pack(v.device);
281 o.pack(v.payload);
282 return o;
283 }
284 };
285
286 // MsgPack serialization for RECORD type:
287 // dunedaq::timinglibs::timingcmd::TimingMasterEndpointScanPayload
288 template<>
289 struct convert<dunedaq::timinglibs::timingcmd::TimingMasterEndpointScanPayload>
290 {
291 msgpack::object const& operator()(msgpack::object const& o,
292 dunedaq::timinglibs::timingcmd::TimingMasterEndpointScanPayload& v) const
293 {
294 if (o.type != msgpack::type::ARRAY)
295 throw msgpack::type_error();
296 if (o.via.array.size != 1)
297 throw msgpack::type_error();
298 v.endpoints = o.via.array.ptr[0].as<dunedaq::timinglibs::timingcmd::TimingEndpointLocations>();
299 return o;
300 }
301 };
302 template<>
303 struct pack<dunedaq::timinglibs::timingcmd::TimingMasterEndpointScanPayload>
304 {
305 template<typename Stream>
306 packer<Stream>& operator()(msgpack::packer<Stream>& o,
307 dunedaq::timinglibs::timingcmd::TimingMasterEndpointScanPayload const& v) const
308 {
309 // packing member variables as an array.
310 o.pack_array(1);
311 o.pack(v.endpoints);
312 return o;
313 }
314 };
315
316 // MsgPack serialization for RECORD type:
317 // dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload
318 template<>
319 struct convert<dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload>
320 {
321 msgpack::object const& operator()(msgpack::object const& o,
322 dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload& v) const
323 {
324 if (o.type != msgpack::type::ARRAY)
325 throw msgpack::type_error();
326 if (o.via.array.size != 3)
327 throw msgpack::type_error();
328 v.fl_cmd_id = o.via.array.ptr[0].as<dunedaq::timinglibs::timingcmd::UintData>();
329 v.channel = o.via.array.ptr[1].as<dunedaq::timinglibs::timingcmd::UintData>();
330 v.number_of_commands_to_send = o.via.array.ptr[2].as<dunedaq::timinglibs::timingcmd::UintData>();
331 return o;
332 }
333 };
334 template<>
335 struct pack<dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload>
336 {
337 template<typename Stream>
338 packer<Stream>& operator()(msgpack::packer<Stream>& o,
339 dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload const& v) const
340 {
341 // packing member variables as an array.
342 o.pack_array(3);
343 o.pack(v.fl_cmd_id);
344 o.pack(v.channel);
345 o.pack(v.number_of_commands_to_send);
346 return o;
347 }
348 };
349
350 // MsgPack serialization for RECORD type:
351 // dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload
352 template<>
353 struct convert<dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload>
354 {
355 msgpack::object const& operator()(msgpack::object const& o,
356 dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload& v) const
357 {
358 if (o.type != msgpack::type::ARRAY)
359 throw msgpack::type_error();
360 if (o.via.array.size != 7)
361 throw msgpack::type_error();
362 v.address = o.via.array.ptr[0].as<dunedaq::timinglibs::timingcmd::UintData>();
363 v.coarse_delay = o.via.array.ptr[1].as<dunedaq::timinglibs::timingcmd::UintData>();
364 v.fine_delay = o.via.array.ptr[2].as<dunedaq::timinglibs::timingcmd::UintData>();
365 v.phase_delay = o.via.array.ptr[3].as<dunedaq::timinglibs::timingcmd::UintData>();
366 v.measure_rtt = o.via.array.ptr[4].as<dunedaq::timinglibs::timingcmd::BoolData>();
367 v.control_sfp = o.via.array.ptr[5].as<dunedaq::timinglibs::timingcmd::BoolData>();
368 v.sfp_mux = o.via.array.ptr[6].as<dunedaq::timinglibs::timingcmd::IntData>();
369 return o;
370 }
371 };
372 template<>
373 struct pack<dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload>
374 {
375 template<typename Stream>
376 packer<Stream>& operator()(msgpack::packer<Stream>& o,
377 dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload const& v) const
378 {
379 // packing member variables as an array.
380 o.pack_array(7);
381 o.pack(v.address);
382 o.pack(v.coarse_delay);
383 o.pack(v.fine_delay);
384 o.pack(v.phase_delay);
385 o.pack(v.measure_rtt);
386 o.pack(v.control_sfp);
387 o.pack(v.sfp_mux);
388 return o;
389 }
390 };
391
392 // MsgPack serialization for RECORD type:
393 // dunedaq::timinglibs::timingcmd::TimingPartitionCmdPayload
394 template<>
395 struct convert<dunedaq::timinglibs::timingcmd::TimingPartitionCmdPayload>
396 {
397 msgpack::object const& operator()(msgpack::object const& o,
398 dunedaq::timinglibs::timingcmd::TimingPartitionCmdPayload& v) const
399 {
400 if (o.type != msgpack::type::ARRAY)
401 throw msgpack::type_error();
402 if (o.via.array.size != 1)
403 throw msgpack::type_error();
404 v.partition_id = o.via.array.ptr[0].as<dunedaq::timinglibs::timingcmd::UintData>();
405 return o;
406 }
407 };
408 template<>
409 struct pack<dunedaq::timinglibs::timingcmd::TimingPartitionCmdPayload>
410 {
411 template<typename Stream>
412 packer<Stream>& operator()(msgpack::packer<Stream>& o,
413 dunedaq::timinglibs::timingcmd::TimingPartitionCmdPayload const& v) const
414 {
415 // packing member variables as an array.
416 o.pack_array(1);
417 o.pack(v.partition_id);
418 return o;
419 }
420 };
421
422 // MsgPack serialization for RECORD type:
423 // dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload
424 template<>
425 struct convert<dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload>
426 {
427 msgpack::object const& operator()(msgpack::object const& o,
428 dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload& v) const
429 {
430 if (o.type != msgpack::type::ARRAY)
431 throw msgpack::type_error();
432 if (o.via.array.size != 4)
433 throw msgpack::type_error();
434 v.partition_id = o.via.array.ptr[0].as<dunedaq::timinglibs::timingcmd::UintData>();
435 v.trigger_mask = o.via.array.ptr[1].as<dunedaq::timinglibs::timingcmd::UintData>();
436 v.spill_gate_enabled = o.via.array.ptr[2].as<dunedaq::timinglibs::timingcmd::BoolData>();
437 v.rate_control_enabled = o.via.array.ptr[3].as<dunedaq::timinglibs::timingcmd::BoolData>();
438 return o;
439 }
440 };
441 template<>
442 struct pack<dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload>
443 {
444 template<typename Stream>
445 packer<Stream>& operator()(msgpack::packer<Stream>& o,
446 dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload const& v) const
447 {
448 // packing member variables as an array.
449 o.pack_array(4);
450 o.pack(v.partition_id);
451 o.pack(v.trigger_mask);
452 o.pack(v.spill_gate_enabled);
453 o.pack(v.rate_control_enabled);
454 return o;
455 }
456 };
457
458 } // namespace adaptor
459} // MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS)
460} // namespace msgpack
461
462#endif // DUNEDAQ_TIMINGLIBS_TIMINGCMD_MSGPACK_HPP
std::vector< dunedaq::timinglibs::timingcmd::EndpointLocation > TimingEndpointLocations
Definition Structs.hpp:112
nlohmann::json TimingHwCmdPayload
Definition Structs.hpp:118
default char v[0]
MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS)