Jpp 19.3.0-rc.1
the software that should make you happy
Loading...
Searching...
No Matches
JDAQTimesliceIO.hh
Go to the documentation of this file.
1#ifndef __JDAQTIMESLICE_IO__
2#define __JDAQTIMESLICE_IO__
3
5
7#include "JIO/JSTDIO.hh"
8
9#include "JDAQ/JDAQSizeof.hh"
13
14/**
15 * \author mdejong
16 */
17namespace KM3NETDAQ {
18
19 /**
20 * Get size of object.
21 *
22 * \param object DAQ event
23 * \return number of bytes
24 */
25 inline size_t getSizeof(const JDAQTimeslice& object)
26 {
27 int len = 0;
28
30 len += sizeof(Version_t);
32
33 len += sizeof(int);
34
35 for (JDAQTimeslice::const_iterator frame = object.begin(); frame != object.end(); ++frame) {
36 len += getSizeof(*frame);
37 }
38
39 return len;
40 }
41
42
43 /**
44 * Read DAQ time slice from input.
45 *
46 * \param in reader
47 * \param object DAQ time slice
48 * \return reader
49 */
51 {
52 Version_t version;
53
54 object.clear();
55
56 in >> static_cast<JDAQPreamble&> (object);
57 in >> version;
58 in >> static_cast<JDAQTimesliceHeader&> (object);
59 in >> static_cast<std::vector<JDAQSuperFrame>&>(object);
60
61 return in;
62 }
63
64
65 /**
66 * Write DAQ time slice to output.
67 *
68 * \param out writer
69 * \param object DAQ time slice
70 * \return writer
71 */
72 inline JWriter& operator<<(JWriter& out, const JDAQTimeslice& object)
73 {
74 out << JDAQPreamble::getDAQPreamble(object);
75 out << JDAQTimeslice::Class_Version();
76 out << static_cast<const JDAQTimesliceHeader&> (object);
77 out << static_cast<const std::vector<JDAQSuperFrame>&>(object);
78
79 return out;
80 }
81
82
83 /**
84 * Write DAQ time slice to output.
85 *
86 * \param out writer
87 * \param object DAQ time slice
88 * \return writer
89 */
90 inline JWriter& operator<<(JWriter& out, const JDAQTimesliceL0& object)
91 {
92 out << JDAQPreamble::getDAQPreamble(object);
93 out << JDAQTimesliceL0::Class_Version();
94 out << static_cast<const JDAQTimesliceHeader&> (object);
95 out << static_cast<const std::vector<JDAQSuperFrame>&>(object);
96
97 return out;
98 }
99
100
101 /**
102 * Write DAQ time slice to output.
103 *
104 * \param out writer
105 * \param object DAQ time slice
106 * \return writer
107 */
108 inline JWriter& operator<<(JWriter& out, const JDAQTimesliceL1& object)
109 {
110 out << JDAQPreamble::getDAQPreamble(object);
111 out << JDAQTimesliceL1::Class_Version();
112 out << static_cast<const JDAQTimesliceHeader&> (object);
113 out << static_cast<const std::vector<JDAQSuperFrame>&>(object);
114
115 return out;
116 }
117
118
119 /**
120 * Write DAQ time slice to output.
121 *
122 * \param out writer
123 * \param object DAQ time slice
124 * \return writer
125 */
126 inline JWriter& operator<<(JWriter& out, const JDAQTimesliceL2& object)
127 {
128 out << JDAQPreamble::getDAQPreamble(object);
129 out << JDAQTimesliceL2::Class_Version();
130 out << static_cast<const JDAQTimesliceHeader&> (object);
131 out << static_cast<const std::vector<JDAQSuperFrame>&>(object);
132
133 return out;
134 }
135
136
137 /**
138 * Write DAQ time slice to output.
139 *
140 * \param out writer
141 * \param object DAQ time slice
142 * \return writer
143 */
144 inline JWriter& operator<<(JWriter& out, const JDAQTimesliceSN& object)
145 {
146 out << JDAQPreamble::getDAQPreamble(object);
147 out << JDAQTimesliceSN::Class_Version();
148 out << static_cast<const JDAQTimesliceHeader&> (object);
149 out << static_cast<const std::vector<JDAQSuperFrame>&>(object);
150
151 return out;
152 }
153}
154
155#endif
STD extensions for binary I/O.
Interface for binary input.
virtual void clear()
Clear status of reader.
Interface for binary output.
static JDAQPreamble getDAQPreamble(const T &object)
Get DAQ preamble.
KM3NeT DAQ data structures and auxiliaries.
Definition DataQueue.cc:39
size_t getSizeof< JDAQTimesliceHeader >()
Get size of type.
JWriter & operator<<(JWriter &out, const JDAQChronometer &chronometer)
Write DAQ chronometer to output.
size_t getSizeof< JDAQPreamble >()
Get size of type.
JReader & operator>>(JReader &in, JDAQChronometer &chronometer)
Read DAQ chronometer from input.
size_t getSizeof()
Definition of method to get size of data type.
Timeslice data structure for L0 data.
Timeslice data structure for L1 data.
Timeslice data structure for L2 data.
Timeslice data structure for SN data.