MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ finalize()

void MayaFlux::Kakshya::CompositeLayout::finalize ( )
private

Definition at line 63 of file Composite.cpp.

64{
65 if (m_finalized)
66 return;
67
68 if (m_fields.empty()) {
69 Journal::error<std::invalid_argument>(
72 std::source_location::current(),
73 "CompositeLayout requires at least one field");
74 }
75
76 m_presence_bytes = m_fields.size() / 8 + (m_fields.size() % 8 != 0);
77 size_t offset = m_presence_bytes;
78
79 for (auto& field : m_fields) {
80 if (field.size_bytes > std::numeric_limits<size_t>::max() - offset) {
81 Journal::error<std::length_error>(
84 std::source_location::current(),
85 "CompositeLayout exceeds addressable size at field '{}'", field.name);
86 }
87 field.offset_bytes = offset;
88 offset += field.size_bytes;
89 }
90
92 m_finalized = true;
93}
uint64_t offset
Definition Composite.cpp:10
std::vector< CompositeField > m_fields
Definition Composite.hpp:93
@ Runtime
General runtime operations (default fallback)
@ Kakshya
Containers[Signalsource, Stream, File], Regions, DataProcessors.

References MayaFlux::Journal::Kakshya, m_fields, m_finalized, m_presence_bytes, m_stride_bytes, offset, and MayaFlux::Journal::Runtime.

Referenced by MayaFlux::Kakshya::CompositeArray::CompositeArray().

+ Here is the caller graph for this function: