#ifndef __JDAQTIMESLICE_IO__ #define __JDAQTIMESLICE_IO__ #include "km3net-dataformat/online/JDAQTimeslice.hh" #include "JIO/JSerialisable.hh" #include "JIO/JSTDIO.hh" #include "JDAQ/JDAQSizeof.hh" #include "JDAQ/JDAQPreambleIO.hh" #include "JDAQ/JDAQTimesliceHeaderIO.hh" #include "JDAQ/JDAQSuperFrameIO.hh" /** * \author mdejong */ namespace KM3NETDAQ { /** * Get size of object. * * \param object DAQ event * \return number of bytes */ inline size_t getSizeof(const JDAQTimeslice& object) { int len = 0; len += getSizeof(); len += sizeof(Version_t); len += getSizeof(); len += sizeof(int); for (JDAQTimeslice::const_iterator frame = object.begin(); frame != object.end(); ++frame) { len += getSizeof(*frame); } return len; } /** * Read DAQ time slice from input. * * \param in reader * \param object DAQ time slice * \return reader */ inline JReader& operator>>(JReader& in, JDAQTimeslice& object) { Version_t version; object.clear(); in >> static_cast (object); in >> version; in >> static_cast (object); in >> static_cast&>(object); return in; } /** * Write DAQ time slice to output. * * \param out writer * \param object DAQ time slice * \return writer */ inline JWriter& operator<<(JWriter& out, const JDAQTimeslice& object) { out << JDAQPreamble::getDAQPreamble(object); out << JDAQTimeslice::Class_Version(); out << static_cast (object); out << static_cast&>(object); return out; } /** * Write DAQ time slice to output. * * \param out writer * \param object DAQ time slice * \return writer */ inline JWriter& operator<<(JWriter& out, const JDAQTimesliceL0& object) { out << JDAQPreamble::getDAQPreamble(object); out << JDAQTimesliceL0::Class_Version(); out << static_cast (object); out << static_cast&>(object); return out; } /** * Write DAQ time slice to output. * * \param out writer * \param object DAQ time slice * \return writer */ inline JWriter& operator<<(JWriter& out, const JDAQTimesliceL1& object) { out << JDAQPreamble::getDAQPreamble(object); out << JDAQTimesliceL1::Class_Version(); out << static_cast (object); out << static_cast&>(object); return out; } /** * Write DAQ time slice to output. * * \param out writer * \param object DAQ time slice * \return writer */ inline JWriter& operator<<(JWriter& out, const JDAQTimesliceL2& object) { out << JDAQPreamble::getDAQPreamble(object); out << JDAQTimesliceL2::Class_Version(); out << static_cast (object); out << static_cast&>(object); return out; } /** * Write DAQ time slice to output. * * \param out writer * \param object DAQ time slice * \return writer */ inline JWriter& operator<<(JWriter& out, const JDAQTimesliceSN& object) { out << JDAQPreamble::getDAQPreamble(object); out << JDAQTimesliceSN::Class_Version(); out << static_cast (object); out << static_cast&>(object); return out; } } #endif