Jpp  18.2.1-ARCA-DF-PATCH
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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>();
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
Interface for binary output.
version
Definition: JEditTuneHV.sh:5
Timeslice data structure for L1 data.
JWriter & operator<<(JWriter &out, const JDAQChronometer &chronometer)
Write DAQ chronometer to output.
static JDAQPreamble getDAQPreamble(const T &object)
Get DAQ preamble.
Definition: JDAQPreamble.hh:76
Timeslice data structure for L2 data.
Data time slice.
Timeslice data structure for SN data.
Interface for binary input.
JReader & operator>>(JReader &in, JDAQChronometer &chronometer)
Read DAQ chronometer from input.
size_t getSizeof< JDAQTimesliceHeader >()
Get size of type.
size_t getSizeof< JDAQPreamble >()
Get size of type.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Definition: JCanberra.sh:46
size_t getSizeof(const JDAQEvent &object)
Get size of object.
Definition: JDAQEventIO.hh:26
Timeslice data structure for L0 data.
STD extensions for binary I/O.