#ifndef __JDAQFRAME_IO__ #define __JDAQFRAME_IO__ #include "km3net-dataformat/online/JDAQFrame.hh" #include "JIO/JSerialisable.hh" #include "JDAQ/JDAQHitIO.hh" /** * \author mdejong */ namespace KM3NETDAQ { /** * Get size of object. * * \param object DAQ frame * \return number of bytes */ inline size_t getSizeof(const JDAQFrame& object) { return sizeof(JDAQFrame::numberOfHits) + object.numberOfHits * sizeof(JDAQHit); } /** * Read DAQ frame from input. * * \param in reader * \param frame DAQ frame * \return reader */ inline JReader& operator>>(JReader& in, JDAQFrame& frame) { frame.clear(); int number_of_hits; in >> number_of_hits; frame.resize(number_of_hits); in.read((char*) frame.buffer, frame.numberOfHits * sizeof(JDAQHit)); return in; } /** * Write DAQ frame to output. * * \param out writer * \param frame DAQ frame * \return writer */ inline JWriter& operator<<(JWriter& out, const JDAQFrame& frame) { out << frame.numberOfHits; out.write((char*) frame.buffer, frame.numberOfHits * sizeof(JDAQHit)); return out; } } #endif