#include #define START_OF_HEADER_MARKER 0xee1234ee typedef struct Header { uint32_t startOfHeaderMarker = START_OF_HEADER_MARKER; uint32_t headerSize; uint32_t fragmentSize; uint32_t runNumber; uint32_t detectorEventNumber; uint32_t numberOfStatusElements; uint32_t *statusElementsArray; /*friend std::ostream& operator <<(std::ostream& os, Header const& header) { return os << std::setw(8) << std::setfill('0') << header.startOfHeaderMarker << '\n' << std::setw(8) << std::setfill('0') << header.headerSize << '\n' << std::setw(8) << std::setfill('0') << header.fragmentSize << '\n' << std::setw(8) << std::setfill('0') << header.runNumber << '\n' << std::setw(8) << std::setfill('0') << header.detectorEventNumber << '\n' << std::setw(8) << std::setfill('0') << header.numberOfStatusElements << '\n'; }*/ } Header; typedef struct Fragment { Header header; uint32_t *payloadElements; } Fragment; enum ERROR_CODES { INCORRECT_ERROR = (1 << 0), CORRUPTED_ERROR = (1 << 1), MISSING_DATA_ERROR = (1 << 2), TIMEOUT_ERROR = (1 << 3) };