#ifndef __JDAQHEADER__ #define __JDAQHEADER__ #include "JDAQRoot.hh" #include "JDAQChronometer.hh" /** * \author mdejong */ namespace KM3NETDAQ { /** * DAQ header. */ class JDAQHeader : public JDAQChronometer { public: friend size_t getSizeof(); friend JReader& operator>>(JReader&, JDAQHeader&); friend JWriter& operator<<(JWriter&, const JDAQHeader&); /** * Default constructor. */ JDAQHeader() : JDAQChronometer() {} /** * Constructor. * * \param chronometer chronometer */ JDAQHeader(const JDAQChronometer& chronometer) : JDAQChronometer(chronometer) {} /** * Get DAQ header. * * \return DAQ header */ const JDAQHeader& getDAQHeader() const { return static_cast(*this); } /** * Set DAQ header. * * \param header DAQ header */ void setDAQHeader(const JDAQHeader& header) { static_cast(*this) = header; } ClassDef(JDAQHeader,2); }; /** * Equal operator for DAQ headers. * * \param first header * \param second header * \result true if first header equal to second; else false */ inline bool operator==(const JDAQHeader& first, const JDAQHeader& second) { return (first.getDAQChronometer() == second.getDAQChronometer()); } /** * Not-equal operator for DAQ headers. * * \param first header * \param second header * \result true if first header not equal to second; else false */ inline bool operator!=(const JDAQHeader& first, const JDAQHeader& second) { return !(first == second); } } #endif