vitrio 0.1.4
High-throughput image I/O for Cryo-Electron Microscopy (CryoEM)
Loading...
Searching...
No Matches
executor_image_loader.hpp
1// SPDX-License-Identifier: LGPL-2.1-or-later
2
3#pragma once
4
5#include <vitrio/export.hpp>
6#include <vitrio/image_loader.hpp>
7#include <vitrio/platform.hpp>
8
9#include <memory>
10
11namespace vitrio
12{
13
14class array;
15class completion;
16class executor;
17
18class image_reader_provider;
19class image_transaction_plan;
20class image_transfer_sanitizer;
21
34class VITRIO_API executor_image_loader final
35 : public image_loader
36{
37public:
47 std::shared_ptr<image_reader_provider> readers,
48 std::shared_ptr<vitrio::executor> executor
49 );
50
51 ~executor_image_loader() override;
52
53 std::shared_ptr<completion> load(
54 array destination,
55 const image_transaction_plan &plan,
56 std::shared_ptr<const image_transfer_sanitizer> sanitizer
57 ) const override;
58
59private:
60 VITRIO_STD_MEMBER_INTERFACE
61 std::shared_ptr<image_reader_provider> m_readers;
62 VITRIO_STD_MEMBER_INTERFACE
63 std::shared_ptr<vitrio::executor> m_executor;
64};
65
66} // namespace vitrio
A multidimensional array of numbers in host memory.
Definition array.hpp:37
Performs reads described by a transaction plan on an executor.
Definition executor_image_loader.hpp:36
executor_image_loader(std::shared_ptr< image_reader_provider > readers, std::shared_ptr< vitrio::executor > executor)
Construct a loader over a provider and an executor.
std::shared_ptr< completion > load(array destination, const image_transaction_plan &plan, std::shared_ptr< const image_transfer_sanitizer > sanitizer) const override
Load every region a transaction plan names.
Where a task is handed off to run, now or later.
Definition executor.hpp:26
Loads the regions of a transaction plan into one array.
Definition image_loader.hpp:31
List of regions to transfer between many files and one array.
Definition image_transaction_plan.hpp:33