vitrio 0.1.4
High-throughput image I/O for Cryo-Electron Microscopy (CryoEM)
Loading...
Searching...
No Matches
caching_image_reader_provider.hpp
1// SPDX-License-Identifier: LGPL-2.1-or-later
2
3#pragma once
4
5#include <vitrio/export.hpp>
6#include <vitrio/image_reader_provider.hpp>
7#include <vitrio/platform.hpp>
8
9#include <cstddef>
10#include <memory>
11#include <string>
12
13namespace vitrio
14{
15
40class VITRIO_API caching_image_reader_provider final
42{
43public:
54 std::shared_ptr<image_reader_provider> backing,
55 std::size_t capacity
56 );
57
59
65 std::size_t get_capacity() const noexcept;
66
73 std::size_t get_reader_count() const noexcept;
74
75 std::shared_ptr<const image_reader>
76 acquire(const std::string &key) override;
77
78private:
79 class implementation;
80 VITRIO_STD_MEMBER_INTERFACE
81 std::unique_ptr<implementation> m_implementation;
82};
83
84} // namespace vitrio
A provider that keeps the readers it was last asked for.
Definition caching_image_reader_provider.hpp:42
std::size_t get_capacity() const noexcept
Get the number of readers this may keep open at once.
caching_image_reader_provider(std::shared_ptr< image_reader_provider > backing, std::size_t capacity)
Construct a cache in front of another provider.
Interface to serve image_reader given a key.
Definition image_reader_provider.hpp:26
Abstract read-only view of one image file.
Definition image_reader.hpp:37