24{
25 namespace adaptor {
26
27 template<>
28 struct pack<
dunedaq::daqdataformats::Fragment>
29 {
30 template<typename Stream>
32 {
35 return o;
36 }
37 };
38
39
40
41
42 template<>
43 struct as<
dunedaq::daqdataformats::Fragment>
44 {
46 {
47
48
49
50
51
54 }
55 };
56
57 template<>
58 struct pack<
std::unique_ptr<dunedaq::daqdataformats::Fragment>>
59 {
60 template<typename Stream>
61 packer<Stream>& operator()(msgpack::packer<Stream>& o,
62 std::unique_ptr<dunedaq::daqdataformats::Fragment> const& frag) const
63 {
64 o.pack_bin(frag->get_size());
65 o.pack_bin_body(static_cast<const char*>(frag->get_storage_location()), frag->get_size());
66 return o;
67 }
68 };
69
70
71
72
73 template<>
74 struct as<
std::unique_ptr<dunedaq::daqdataformats::Fragment>>
75 {
76 std::unique_ptr<dunedaq::daqdataformats::Fragment> operator()(msgpack::object const& o) const
77 {
78
79
80
81
82
83 return std::make_unique<dunedaq::daqdataformats::Fragment>(
85 }
86 };
87 }
88}