Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JDAQHeader.hh
Go to the documentation of this file.
1 #ifndef __JDAQHEADER__
2 #define __JDAQHEADER__
3 
4 #include <ostream>
5 
6 #include "JIO/JSerialisable.hh"
7 #include "JDAQ/JDAQRoot.hh"
9 
10 
11 /**
12  * \author mdejong
13  */
14 
15 namespace KM3NETDAQ {
16 
17  using JIO::JReader;
18  using JIO::JWriter;
19 
20 
21  /**
22  * DAQ header.
23  */
24  class JDAQHeader :
25  public JDAQChronometer
26  {
27  public:
28  /**
29  * Default constructor.
30  */
33  {}
34 
35 
36  /**
37  * Constructor.
38  *
39  * \param chronometer chronometer
40  */
41  JDAQHeader(const JDAQChronometer& chronometer) :
42  JDAQChronometer(chronometer)
43  {}
44 
45 
46  /**
47  * Get DAQ header.
48  *
49  * \return DAQ header
50  */
51  const JDAQHeader& getDAQHeader() const
52  {
53  return static_cast<const JDAQHeader&>(*this);
54  }
55 
56 
57  /**
58  * Set DAQ header.
59  *
60  * \param header DAQ header
61  */
62  void setDAQHeader(const JDAQHeader& header)
63  {
64  static_cast<JDAQHeader&>(*this) = header;
65  }
66 
67 
68  /**
69  * Read DAQ header from input.
70  *
71  * \param in JReader
72  * \param header JDAQHeader
73  * \return JReader
74  */
75  friend inline JReader& operator>>(JReader& in, JDAQHeader& header)
76  {
77  in >> static_cast<JDAQChronometer&>(header);
78 
79  return in;
80  }
81 
82 
83  /**
84  * Write DAQ header to output.
85  *
86  * \param out JWriter
87  * \param header JDAQHeader
88  * \return JWriter
89  */
90  friend inline JWriter& operator<<(JWriter& out, const JDAQHeader& header)
91  {
92  out << static_cast<const JDAQChronometer&>(header);
93 
94  return out;
95  }
96 
97 
98  /**
99  * Get size of object.
100  *
101  * \return number of bytes
102  */
103  static int sizeOf()
104  {
105  return (JDAQChronometer::sizeOf());
106  }
107 
108 
109  ClassDef(JDAQHeader,2);
110  };
111 
112 
113  /**
114  * Equal operator for DAQ headers.
115  *
116  * \param first header
117  * \param second header
118  * \result true if first header equal to second; else false
119  */
120  inline bool operator==(const JDAQHeader& first,
121  const JDAQHeader& second)
122  {
123  return (first.getDAQChronometer() == second.getDAQChronometer());
124  }
125 
126 
127  /**
128  * Not-equal operator for DAQ headers.
129  *
130  * \param first header
131  * \param second header
132  * \result true if first header not equal to second; else false
133  */
134  inline bool operator!=(const JDAQHeader& first,
135  const JDAQHeader& second)
136  {
137  return !(first == second);
138  }
139 }
140 
141 #endif
bool operator==(const JDAQChronometer &first, const JDAQChronometer &second)
Equal operator for DAQ chronometers.
Interface for binary output.
JDAQHeader()
Default constructor.
Definition: JDAQHeader.hh:31
friend JWriter & operator<<(JWriter &out, const JDAQHeader &header)
Write DAQ header to output.
Definition: JDAQHeader.hh:90
friend JReader & operator>>(JReader &in, JDAQHeader &header)
Read DAQ header from input.
Definition: JDAQHeader.hh:75
static int sizeOf()
Get size of object.
void setDAQHeader(const JDAQHeader &header)
Set DAQ header.
Definition: JDAQHeader.hh:62
ClassDef(JDAQHeader, 2)
const JDAQChronometer & getDAQChronometer() const
Get DAQ chronometer.
Interface for binary input.
static int sizeOf()
Get size of object.
Definition: JDAQHeader.hh:103
const JDAQHeader & getDAQHeader() const
Get DAQ header.
Definition: JDAQHeader.hh:51
JDAQHeader(const JDAQChronometer &chronometer)
Constructor.
Definition: JDAQHeader.hh:41
bool operator!=(const JDAQChronometer &first, const JDAQChronometer &second)
Not-equal operator for DAQ chronometers.