26 void addDigisToTs(
const ADigis& digis,
const fles::Subsystem subsystem)
28 L_(trace) << fmt::format(
"[TimeslicedDigiBuilder::addDigisToTs] Adding {} digis for subsystem {} to timeslice {}",
29 digis.size(), to_string(subsystem),
fTs->index());
32 throw std::runtime_error(
"[TimeslicedDigiBuilder::addDigisToTs] Underlying timeslice not initialized");
37 boost::iostreams::stream stream{boost::iostreams::back_inserter(
fBuffer)};
38 boost::archive::binary_oarchive{stream} << digis;
41 fles::MicrosliceDescriptor msDesc{.hdr_id = 0xDD,
45 .sys_id =
static_cast<uint8_t
>(subsystem),
47 .idx =
fTs->start_time(),
49 .size =
static_cast<uint32_t
>(
fBuffer.size()),
52 fTs->append_microslice(
fTs->append_component(1), 0, msDesc, (uint8_t*) (
fBuffer.data()));