Jpp
JDAQEventIO.hh
Go to the documentation of this file.
1 #ifndef __JDAQEVENT_IO__
2 #define __JDAQEVENT_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/JDAQKeyHitIO.hh"
14 
15 /**
16  * \author mdejong
17  */
18 namespace KM3NETDAQ {
19 
20  /**
21  * Get size of object.
22  *
23  * \param object DAQ event
24  * \return number of bytes
25  */
26  inline size_t getSizeof(const JDAQEvent& object)
27  {
28  return (getSizeof<JDAQPreamble>() +
30  getSizeof(static_cast<const JDAQEvent&>(object).triggeredHits) +
31  getSizeof(static_cast<const JDAQEvent&>(object).snapshotHits));
32  }
33 
34 
35  /**
36  * Read DAQ event from input.
37  *
38  * \param in reader
39  * \param object DAQ event
40  * \return reader
41  */
42  inline JReader& operator>>(JReader& in, JDAQEvent& object)
43  {
44  in >> static_cast<JDAQPreamble&> (object);
45  in >> static_cast<JDAQEventHeader&>(object);
46  in >> object.triggeredHits;
47  in >> object.snapshotHits;
48 
49  return in;
50  }
51 
52 
53  /**
54  * Write DAQ event to output.
55  *
56  * \param out writer
57  * \param object DAQ event
58  * \return writer
59  */
60  inline JWriter& operator<<(JWriter& out, const JDAQEvent& object)
61  {
62  out << JDAQPreamble::getDAQPreamble(object);
63  out << static_cast<const JDAQEventHeader&>(object);
64  out << object.triggeredHits;
65  out << object.snapshotHits;
66 
67  return out;
68  }
69 }
70 
71 #endif
JIO::JReader
Interface for binary input.
Definition: JSerialisable.hh:62
KM3NETDAQ::JDAQEvent
DAQ Event.
Definition: JDAQEvent.hh:30
JDAQSizeof.hh
JDAQPreambleIO.hh
KM3NETDAQ::operator>>
JReader & operator>>(JReader &in, JDAQChronometer &chronometer)
Read DAQ chronometer from input.
Definition: JDAQChronometerIO.hh:37
KM3NETDAQ::getSizeof
size_t getSizeof(const JDAQEvent &object)
Get size of object.
Definition: JDAQEventIO.hh:26
JSerialisable.hh
JSTDIO.hh
JIO::JWriter
Interface for binary output.
Definition: JSerialisable.hh:131
KM3NETDAQ
KM3NeT DAQ data structures and auxiliaries.
Definition: DataQueue.cc:39
JDAQEvent.hh
KM3NETDAQ::getSizeof< JDAQEventHeader >
size_t getSizeof< JDAQEventHeader >()
Get size of type.
Definition: JDAQEventHeaderIO.hh:24
KM3NETDAQ::getSizeof< JDAQPreamble >
size_t getSizeof< JDAQPreamble >()
Get size of type.
Definition: JDAQPreambleIO.hh:19
JDAQTriggeredHitIO.hh
KM3NETDAQ::JDAQPreamble::getDAQPreamble
static JDAQPreamble getDAQPreamble(const T &object)
Get DAQ preamble.
Definition: JDAQPreamble.hh:76
JDAQEventHeaderIO.hh
KM3NETDAQ::operator<<
JWriter & operator<<(JWriter &out, const JDAQChronometer &chronometer)
Write DAQ chronometer to output.
Definition: JDAQChronometerIO.hh:55
JDAQKeyHitIO.hh