#ifndef DATAQUEUE_FRAMEFACTORY_FRAME_HH #define DATAQUEUE_FRAMEFACTORY_FRAME_HH #include #include #include /** * \author cpellegrino */ class Frame : public std::vector, public benchmark::chronometrable { unsigned int m_seqnumber; public: const DAQCommonHeader* const getHeader() const { return static_cast( static_cast(&front())); } const char* const getPayload() const { return &front() + sizeof(DAQCommonHeader); } unsigned int getSeqNumber() const { return m_seqnumber; } unsigned int getFrameLength() const { return size() ? getHeader()->FrameLength : 0; } unsigned int getNItems() const { return size() ? getHeader()->NumberOfItems : 0; } friend class PuzzledFrame; }; #endif // DATAQUEUE_FRAMEFACTORY_FRAME_HH