#ifndef __JDAQEVENT_IO__ #define __JDAQEVENT_IO__ #include "km3net-dataformat/online/JDAQEvent.hh" #include "JIO/JSerialisable.hh" #include "JIO/JSTDIO.hh" #include "JDAQ/JDAQSizeof.hh" #include "JDAQ/JDAQPreambleIO.hh" #include "JDAQ/JDAQEventHeaderIO.hh" #include "JDAQ/JDAQKeyHitIO.hh" #include "JDAQ/JDAQTriggeredHitIO.hh" /** * \author mdejong */ namespace KM3NETDAQ { /** * Get size of object. * * \param object DAQ event * \return number of bytes */ inline size_t getSizeof(const JDAQEvent& object) { return (getSizeof() + sizeof(Version_t) + getSizeof() + getSizeof(static_cast(object).triggeredHits) + getSizeof(static_cast(object).snapshotHits)); } /** * Read DAQ event from input. * * \param in reader * \param object DAQ event * \return reader */ inline JReader& operator>>(JReader& in, JDAQEvent& object) { Version_t version; in >> static_cast (object); in >> version; in >> static_cast(object); in >> object.triggeredHits; in >> object.snapshotHits; return in; } /** * Write DAQ event to output. * * \param out writer * \param object DAQ event * \return writer */ inline JWriter& operator<<(JWriter& out, const JDAQEvent& object) { out << JDAQPreamble::getDAQPreamble(object); out << JDAQEvent::Class_Version(); out << static_cast(object); out << object.triggeredHits; out << object.snapshotHits; return out; } } #endif