#ifndef __JDAQSUPERFRAMEHEADER__ #define __JDAQSUPERFRAMEHEADER__ #include "JIO/JSerialisable.hh" #include "JDAQ/JDAQHeader.hh" #include "JDAQ/JDAQModuleIdentifier.hh" #include "JDAQ/JDAQRoot.hh" namespace KM3NETDAQ { namespace { using JIO::JReader; using JIO::JWriter; } /** * Super frame header. */ class JDAQSuperFrameHeader : public JDAQHeader, public JDAQModuleIdentifier { public: /** * Default constructor. */ JDAQSuperFrameHeader() : JDAQHeader (), JDAQModuleIdentifier(0), status (0) {} /** * Constructor. * * \param chronometer chronometer * \param moduleID module identifier */ JDAQSuperFrameHeader(const JDAQChronometer& chronometer, const int moduleID) : JDAQHeader (chronometer), JDAQModuleIdentifier(moduleID), status (0) {} /** * Get DAQ super frame header. * * \return DAQ super frame header */ const JDAQSuperFrameHeader& getDAQSuperFrameHeader() const { return *this; } /** * Get DAQ super frame header. * * \return DAQ super frame header */ JDAQSuperFrameHeader& getDAQSuperFrameHeader() { return *this; } /** * Set DAQ super frame header. * * \param header DAQ super frame header */ void setDAQSuperFrameHeader(const JDAQSuperFrameHeader& header) { *this = header; } /** * Get status. * * \return status */ int getStatus() const { return status; } /** * Set status. * * \param __status status */ void setStatus(const int __status) { status = __status; } /** * Read DAQ super frame header from input. * * \param in JReader * \param header JDAQSuperFrameHeader * \return JReader */ friend inline JReader& operator>>(JReader& in, JDAQSuperFrameHeader& header) { in >> static_cast (header); in >> static_cast(header); in >> header.status; return in; } /** * Write DAQ super frame header to output. * * \param out JWriter * \param header DAQHeader * \return JWriter */ friend inline JWriter& operator<<(JWriter& out, const JDAQSuperFrameHeader& header) { out << static_cast (header); out << static_cast(header); out << header.status; return out; } /** * Get size of object. * * \return number of bytes */ static int sizeOf() { return (JDAQHeader ::sizeOf() + JDAQModuleIdentifier::sizeOf() + sizeof(int)); } ClassDef(JDAQSuperFrameHeader,1); protected: int status; }; } #endif