5#include <vitrio/export.hpp>
6#include <vitrio/image_transfer_shape.hpp>
7#include <vitrio/index_table.hpp>
8#include <vitrio/interned_key_list.hpp>
9#include <vitrio/span.hpp>
List of regions to transfer between many files and one array.
Definition image_transaction_plan.hpp:33
std::size_t get_file_count() const noexcept
Get how many distinct files the regions may address.
const std::string & get_file(std::size_t file_index) const noexcept
Get the key of one of the files.
const image_transfer_shape & get_shape() const noexcept
Get the shape every region shares.
std::size_t get_region_count() const noexcept
Get how many regions are held.
std::size_t add_file(std::string key)
Name a file the regions may address.
std::size_t get_region_file(std::size_t region_index) const noexcept
Get which file one region addresses.
void add(std::size_t file_index, span< const std::size_t > file_offset, span< const std::size_t > array_offset)
Append one region.
image_transaction_plan(image_transfer_shape shape)
Construct an empty plan of a given shape.
span< const std::size_t > get_array_offset(std::size_t region_index) const noexcept
Get where a region starts in the array.
void clear() noexcept
Drop the files and the regions, keeping the shape and the capacity.
void reserve(std::size_t files, std::size_t regions)
Make room without allocating later.
span< const std::size_t > get_file_offset(std::size_t region_index) const noexcept
Get where a region starts in its file.
The shape every region of a transfer shares: the extents of one region and the ranks of the file and ...
Definition image_transfer_shape.hpp:32
A sequence of indices of one and the same rank.
Definition index_table.hpp:29
A list of keys in which equal keys are held once.
Definition interned_key_list.hpp:32
A view of a contiguous sequence of elements.
Definition span.hpp:29