7std::optional<Kakshya::CompositeArray>
14 m_last_error =
"Composite region requires valid one-dimensional inclusive bounds";
21 if (start > std::numeric_limits<size_t>::max()
22 ||
count > std::numeric_limits<size_t>::max()
23 || !
seek({ start })) {
29 if (!data || data->size() !=
count) {
31 m_last_error =
"Composite region extends past the end of the file";
38std::shared_ptr<Kakshya::CompositeContainer>
45 return std::make_shared<Kakshya::CompositeContainer>(
46 std::move(*data), batch_size);
51 m_last_error =
"Composite data requires read_composite()";
55std::vector<Kakshya::DataVariant>
58 m_last_error =
"Composite data requires read_composite_region()";
62std::shared_ptr<Kakshya::SignalSourceContainer>
65 m_last_error =
"Composite data requires create_composite_container()";
70 std::shared_ptr<Kakshya::SignalSourceContainer>)
72 m_last_error =
"Composite data cannot load into SignalSourceContainer";
std::shared_ptr< Kakshya::SignalSourceContainer > create_container() override
CompositeContainer is not a SignalSourceContainer.
std::shared_ptr< Kakshya::CompositeContainer > create_composite_container(size_t batch_size=1)
Read remaining elements into a new CompositeContainer.
std::optional< Kakshya::CompositeArray > read_composite_region(const FileRegion ®ion)
Read an inclusive one-dimensional file region.
std::vector< Kakshya::DataVariant > read_all() override
Composite data is not a DataVariant channel vector.
virtual std::optional< Kakshya::CompositeArray > read_next(size_t max_elements)=0
Read at most max_elements from the current file position.
virtual std::optional< Kakshya::CompositeArray > read_composite()=0
Read all remaining elements into one owning array.
std::vector< Kakshya::DataVariant > read_region(const FileRegion &) override
Use read_composite_region() for a schema-bearing result.
bool load_into_container(std::shared_ptr< Kakshya::SignalSourceContainer >) override
CompositeContainer is not a SignalSourceContainer.
std::type_index get_data_type() const override
Get the data type this reader produces.
std::type_index get_container_type() const override
Get the container type this reader creates.
virtual bool seek(const std::vector< uint64_t > &position)=0
Seek to a specific position in the file.
Owns a sequence of values that share a CompositeLayout.
Owns composite data and a bounded, independently owned window.
std::vector< uint64_t > start_coordinates
N-dimensional start position (e.g., frame, x, y)
std::vector< uint64_t > end_coordinates
N-dimensional end position (inclusive)
Generic region descriptor for any file type.