Jpp
JDAQSuperFrameHeader.hh
Go to the documentation of this file.
1 #ifndef __JDAQSUPERFRAMEHEADER__
2 #define __JDAQSUPERFRAMEHEADER__
3 
4 #include "JIO/JSerialisable.hh"
5 #include "JDAQ/JDAQ.hh"
6 #include "JDAQ/JDAQHeader.hh"
9 #include "JDAQ/JDAQRoot.hh"
10 
11 
12 /**
13  * \author mdejong
14  */
15 
16 namespace KM3NETDAQ {
17 
18  using JIO::JReader;
19  using JIO::JWriter;
20 
21 
22  /**
23  * DAQ super frame header.
24  */
26  public JDAQHeader,
27  public JDAQModuleIdentifier,
28  public JDAQFrameStatus
29  {
30  public:
31  /**
32  * Default constructor.
33  */
35  JDAQHeader (),
38  {}
39 
40 
41  /**
42  * Constructor.
43  *
44  * \param chronometer chronometer
45  * \param id module identifier
46  */
48  const int id) :
49  JDAQHeader (chronometer),
52  {}
53 
54 
55  /**
56  * Constructor.
57  *
58  * \param chronometer chronometer
59  * \param id module identifier
60  * \param status frame status
61  */
63  const int id,
64  const JDAQFrameStatus& status) :
65  JDAQHeader (chronometer),
68  {}
69 
70 
71  /**
72  * Get DAQ super frame header.
73  *
74  * \return DAQ super frame header
75  */
77  {
78  return static_cast<const JDAQSuperFrameHeader&>(*this);
79  }
80 
81 
82  /**
83  * Set DAQ super frame header.
84  *
85  * \param header DAQ super frame header
86  */
88  {
89  static_cast<JDAQSuperFrameHeader&>(*this) = header;
90  }
91 
92 
93  /**
94  * Read DAQ super frame header from input.
95  *
96  * \param in JReader
97  * \param header JDAQSuperFrameHeader
98  * \return JReader
99  */
100  friend inline JReader& operator>>(JReader& in, JDAQSuperFrameHeader& header)
101  {
102  in >> static_cast<JDAQHeader&> (header);
103  in >> static_cast<JDAQModuleIdentifier&>(header);
104  in >> static_cast<JDAQFrameStatus&> (header);
105 
106  return in;
107  }
108 
109 
110  /**
111  * Write DAQ super frame header to output.
112  *
113  * \param out JWriter
114  * \param header JDAQSuperFrameHeader
115  * \return JWriter
116  */
117  friend inline JWriter& operator<<(JWriter& out, const JDAQSuperFrameHeader& header)
118  {
119  out << static_cast<const JDAQHeader&> (header);
120  out << static_cast<const JDAQModuleIdentifier&>(header);
121  out << static_cast<const JDAQFrameStatus&> (header);
122 
123  return out;
124  }
125 
126 
127  /**
128  * Get size of object.
129  *
130  * \return number of bytes
131  */
132  static int sizeOf()
133  {
134  return (JDAQHeader ::sizeOf() +
137  }
138 
139 
141  };
142 
143 
144  /**
145  * Equal operator for DAQ super frame headers.
146  *
147  * \param first super frame header
148  * \param second super frame header
149  * \result true if first super frame header equal to second; else false
150  */
151  inline bool operator==(const JDAQSuperFrameHeader& first,
152  const JDAQSuperFrameHeader& second)
153  {
154  return (first.getDAQHeader() == second.getDAQHeader() &&
155  first.getModuleIdentifier() == second.getModuleIdentifier() &&
156  first.getDAQFrameStatus() == second.getDAQFrameStatus());
157  }
158 
159 
160  /**
161  * Not-equal operator for DAQ super frame headers.
162  *
163  * \param first super frame header
164  * \param second super frame header
165  * \result true if first super frame header not equal to second; else false
166  */
167  inline bool operator!=(const JDAQSuperFrameHeader& first,
168  const JDAQSuperFrameHeader& second)
169  {
170  return !(first == second);
171  }
172 }
173 
174 #endif
JDAQ.hh
KM3NETDAQ::JDAQHeader::getDAQHeader
const JDAQHeader & getDAQHeader() const
Get DAQ header.
Definition: JDAQHeader.hh:51
JIO::JReader
Interface for binary input.
Definition: JSerialisable.hh:62
KM3NETDAQ::JDAQSuperFrameHeader::JDAQSuperFrameHeader
JDAQSuperFrameHeader(const JDAQChronometer &chronometer, const int id)
Constructor.
Definition: JDAQSuperFrameHeader.hh:47
KM3NETDAQ::JDAQModuleIdentifier::sizeOf
static int sizeOf()
Get size of object.
Definition: JDAQModuleIdentifier.hh:143
KM3NETDAQ::JDAQSuperFrameHeader::sizeOf
static int sizeOf()
Get size of object.
Definition: JDAQSuperFrameHeader.hh:132
KM3NETDAQ::JDAQHeader
DAQ header.
Definition: JDAQHeader.hh:24
KM3NETDAQ::JDAQFrameStatus
DAQ frame status.
Definition: JDAQFrameStatus.hh:23
KM3NETDAQ::JDAQSuperFrameHeader::getDAQSuperFrameHeader
const JDAQSuperFrameHeader & getDAQSuperFrameHeader() const
Get DAQ super frame header.
Definition: JDAQSuperFrameHeader.hh:76
KM3NETDAQ::JDAQModuleIdentifier::id
int id
Definition: JDAQModuleIdentifier.hh:153
KM3NETDAQ::JDAQModuleIdentifier::getModuleIdentifier
const JDAQModuleIdentifier & getModuleIdentifier() const
Get Module identifier.
Definition: JDAQModuleIdentifier.hh:50
JSerialisable.hh
KM3NETDAQ::operator!=
bool operator!=(const JDAQChronometer &first, const JDAQChronometer &second)
Not-equal operator for DAQ chronometers.
Definition: JDAQChronometer.hh:303
JIO::JWriter
Interface for binary output.
Definition: JSerialisable.hh:130
JDAQHeader.hh
KM3NETDAQ::JDAQModuleIdentifier
Module identifier.
Definition: JDAQModuleIdentifier.hh:24
KM3NETDAQ::JDAQSuperFrameHeader
DAQ super frame header.
Definition: JDAQSuperFrameHeader.hh:25
KM3NETDAQ::JDAQSuperFrameHeader::operator<<
friend JWriter & operator<<(JWriter &out, const JDAQSuperFrameHeader &header)
Write DAQ super frame header to output.
Definition: JDAQSuperFrameHeader.hh:117
JDAQRoot.hh
KM3NETDAQ::JDAQFrameStatus::getInstance
static const JDAQFrameStatus & getInstance()
Get reference to unique instance of this class object.
Definition: JDAQFrameStatus.hh:66
KM3NETDAQ::operator==
bool operator==(const JDAQChronometer &first, const JDAQChronometer &second)
Equal operator for DAQ chronometers.
Definition: JDAQChronometer.hh:286
JDAQFrameStatus.hh
KM3NETDAQ::JDAQSuperFrameHeader::JDAQSuperFrameHeader
JDAQSuperFrameHeader()
Default constructor.
Definition: JDAQSuperFrameHeader.hh:34
KM3NETDAQ::JDAQHeader::sizeOf
static int sizeOf()
Get size of object.
Definition: JDAQHeader.hh:103
KM3NETDAQ::JDAQSuperFrameHeader::ClassDef
ClassDef(JDAQSuperFrameHeader, 2)
KM3NETDAQ::JDAQFrameStatus::status
int status
Definition: JDAQFrameStatus.hh:385
KM3NETDAQ
KM3NeT DAQ data structures and auxiliaries.
Definition: DataQueue.cc:39
KM3NETDAQ::JDAQFrameStatus::sizeOf
static int sizeOf()
Get size of object.
Definition: JDAQFrameStatus.hh:371
KM3NETDAQ::JDAQSuperFrameHeader::JDAQSuperFrameHeader
JDAQSuperFrameHeader(const JDAQChronometer &chronometer, const int id, const JDAQFrameStatus &status)
Constructor.
Definition: JDAQSuperFrameHeader.hh:62
JDAQModuleIdentifier.hh
KM3NETDAQ::JDAQFrameStatus::getDAQFrameStatus
const JDAQFrameStatus & getDAQFrameStatus() const
Get DAQ frame status.
Definition: JDAQFrameStatus.hh:81
KM3NETDAQ::JDAQSuperFrameHeader::operator>>
friend JReader & operator>>(JReader &in, JDAQSuperFrameHeader &header)
Read DAQ super frame header from input.
Definition: JDAQSuperFrameHeader.hh:100
KM3NETDAQ::JDAQChronometer
DAQ chronometer.
Definition: JDAQChronometer.hh:26
KM3NETDAQ::JDAQSuperFrameHeader::setDAQSuperFrameHeader
void setDAQSuperFrameHeader(const JDAQSuperFrameHeader &header)
Set DAQ super frame header.
Definition: JDAQSuperFrameHeader.hh:87