Jpp
JDAQTimesliceIO.hh
Go to the documentation of this file.
1 #ifndef __JDAQTIMESLICE_IO__
2 #define __JDAQTIMESLICE_IO__
3 
5 
6 #include "JIO/JSerialisable.hh"
7 #include "JIO/JSTDIO.hh"
8 
9 #include "JDAQ/JDAQSizeof.hh"
10 #include "JDAQ/JDAQPreambleIO.hh"
12 #include "JDAQ/JDAQSuperFrameIO.hh"
13 
14 /**
15  * \author mdejong
16  */
17 namespace 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 
29  len += getSizeof<JDAQPreamble>();
31 
32  len += sizeof(int);
33 
34  for (JDAQTimeslice::const_iterator frame = object.begin(); frame != object.end(); ++frame) {
35  len += getSizeof(*frame);
36  }
37 
38  return len;
39  }
40 
41 
42  /**
43  * Read DAQ time slice from input.
44  *
45  * \param in reader
46  * \param object DAQ time slice
47  * \return reader
48  */
49  inline JReader& operator>>(JReader& in, JDAQTimeslice& object)
50  {
51  object.clear();
52 
53  in >> static_cast<JDAQPreamble&> (object);
54  in >> static_cast<JDAQTimesliceHeader&> (object);
55  in >> static_cast<std::vector<JDAQSuperFrame>&>(object);
56 
57  return in;
58  }
59 
60 
61  /**
62  * Write DAQ time slice to output.
63  *
64  * \param out writer
65  * \param object DAQ time slice
66  * \return writer
67  */
68  inline JWriter& operator<<(JWriter& out, const JDAQTimeslice& object)
69  {
70  out << JDAQPreamble::getDAQPreamble(object);
71  out << static_cast<const JDAQTimesliceHeader&> (object);
72  out << static_cast<const std::vector<JDAQSuperFrame>&>(object);
73 
74  return out;
75  }
76 
77 
78  /**
79  * Write DAQ time slice to output.
80  *
81  * \param out writer
82  * \param object DAQ time slice
83  * \return writer
84  */
85  inline JWriter& operator<<(JWriter& out, const JDAQTimesliceL0& object)
86  {
87  out << JDAQPreamble::getDAQPreamble(object);
88  out << static_cast<const JDAQTimesliceHeader&> (object);
89  out << static_cast<const std::vector<JDAQSuperFrame>&>(object);
90 
91  return out;
92  }
93 
94 
95  /**
96  * Write DAQ time slice to output.
97  *
98  * \param out writer
99  * \param object DAQ time slice
100  * \return writer
101  */
102  inline JWriter& operator<<(JWriter& out, const JDAQTimesliceL1& object)
103  {
104  out << JDAQPreamble::getDAQPreamble(object);
105  out << static_cast<const JDAQTimesliceHeader&> (object);
106  out << static_cast<const std::vector<JDAQSuperFrame>&>(object);
107 
108  return out;
109  }
110 
111 
112  /**
113  * Write DAQ time slice to output.
114  *
115  * \param out writer
116  * \param object DAQ time slice
117  * \return writer
118  */
119  inline JWriter& operator<<(JWriter& out, const JDAQTimesliceL2& object)
120  {
121  out << JDAQPreamble::getDAQPreamble(object);
122  out << static_cast<const JDAQTimesliceHeader&> (object);
123  out << static_cast<const std::vector<JDAQSuperFrame>&>(object);
124 
125  return out;
126  }
127 
128 
129  /**
130  * Write DAQ time slice to output.
131  *
132  * \param out writer
133  * \param object DAQ time slice
134  * \return writer
135  */
136  inline JWriter& operator<<(JWriter& out, const JDAQTimesliceSN& object)
137  {
138  out << JDAQPreamble::getDAQPreamble(object);
139  out << static_cast<const JDAQTimesliceHeader&> (object);
140  out << static_cast<const std::vector<JDAQSuperFrame>&>(object);
141 
142  return out;
143  }
144 }
145 
146 #endif
JIO::JReader::clear
virtual void clear()
Clear status of reader.
Definition: JSerialisable.hh:70
JIO::JReader
Interface for binary input.
Definition: JSerialisable.hh:62
KM3NETDAQ::JDAQTimesliceL2
Timeslice data structure for L2 data.
Definition: JDAQTimeslice.hh:267
JDAQTimesliceHeaderIO.hh
KM3NETDAQ::JDAQTimesliceSN
Timeslice data structure for SN data.
Definition: JDAQTimeslice.hh:273
JDAQSizeof.hh
std::vector< JDAQSuperFrame >
KM3NETDAQ::JDAQTimeslice
Data time slice.
Definition: JDAQTimeslice.hh:30
JDAQTimeslice.hh
JDAQPreambleIO.hh
KM3NETDAQ::operator>>
JReader & operator>>(JReader &in, JDAQChronometer &chronometer)
Read DAQ chronometer from input.
Definition: JDAQChronometerIO.hh:37
KM3NETDAQ::getSizeof< JDAQTimesliceHeader >
size_t getSizeof< JDAQTimesliceHeader >()
Get size of type.
Definition: JDAQTimesliceHeaderIO.hh:21
KM3NETDAQ::getSizeof
size_t getSizeof(const JDAQEvent &object)
Get size of object.
Definition: JDAQEventIO.hh:26
JSerialisable.hh
JSTDIO.hh
JDAQSuperFrameIO.hh
JIO::JWriter
Interface for binary output.
Definition: JSerialisable.hh:131
KM3NETDAQ::JDAQTimesliceL0
Timeslice data structure for L0 data.
Definition: JDAQTimeslice.hh:255
KM3NETDAQ
KM3NeT DAQ data structures and auxiliaries.
Definition: DataQueue.cc:39
KM3NETDAQ::getSizeof< JDAQPreamble >
size_t getSizeof< JDAQPreamble >()
Get size of type.
Definition: JDAQPreambleIO.hh:19
KM3NETDAQ::JDAQPreamble::getDAQPreamble
static JDAQPreamble getDAQPreamble(const T &object)
Get DAQ preamble.
Definition: JDAQPreamble.hh:76
KM3NETDAQ::JDAQTimesliceL1
Timeslice data structure for L1 data.
Definition: JDAQTimeslice.hh:261
KM3NETDAQ::operator<<
JWriter & operator<<(JWriter &out, const JDAQChronometer &chronometer)
Write DAQ chronometer to output.
Definition: JDAQChronometerIO.hh:55