2#ifndef EVENTBUILDER_FRAGMENT_H
3#define EVENTBUILDER_FRAGMENT_H
8namespace eventbuilder {
11inline uint32_t crc32(
const std::vector<uint8_t>& data) {
12 uint32_t crc = 0xFFFFFFFF;
13 for (uint8_t c : data) {
14 crc ^=
static_cast<uint8_t
>(c);
15 for (
int i = 0; i < 8; ++i) {
17 crc = (crc >> 1) ^ 0xEDB88320;
26enum class ContributorId { Channel, Module };
34 uint64_t magic_number_ : 8;
35 uint64_t contributor_id_ : 8;
36 uint64_t subsystem_id_ : 8;
37 uint64_t version_ : 8;
38 uint64_t padding_ : 32;
47 std::vector<uint8_t> payload_;