tetengo 1.8.2
A multipurpose library set
Loading...
Searching...
No Matches
mmap_storage.hpp
Go to the documentation of this file.
1
7#if !defined(TETENGO_TRIE_MMAPSTORAGE_HPP)
8#define TETENGO_TRIE_MMAPSTORAGE_HPP
9
10#include <any>
11#include <cstddef> // IWYU pragma: keep
12#include <cstdint>
13#include <istream>
14#include <memory>
15
16#include <boost/interprocess/file_mapping.hpp> // IWYU pragma: keep
17
19#include <tetengo/trie/value_serializer.hpp> // IWYU pragma: keep
20
21
22namespace tetengo::trie
23{
27 class mmap_storage : public storage
28 {
29 public:
30 // functions
31
37 static std::size_t default_value_cache_capacity();
38
39
40 // constructors and destructor
41
54 const boost::interprocess::file_mapping& file_mapping_,
55 std::size_t content_offset,
56 std::size_t file_size,
57 value_deserializer value_deserializer_,
58 std::size_t value_cache_capacity = default_value_cache_capacity());
59
63 virtual ~mmap_storage();
64
65
66 private:
67 // types
68
69 class impl;
70
71
72 // variables
73
74 const std::shared_ptr<impl> m_p_impl;
75
76
77 // constructors
78
79 mmap_storage(const mmap_storage& another);
80
81
82 // virtual functions
83
84 virtual std::size_t base_check_size_impl() const override;
85
86 virtual std::int32_t base_at_impl(std::size_t base_check_index) const override;
87
88 virtual void set_base_at_impl(std::size_t base_check_index, std::int32_t base) override;
89
90 virtual std::uint8_t check_at_impl(std::size_t base_check_index) const override;
91
92 virtual void set_check_at_impl(std::size_t base_check_index, std::uint8_t check) override;
93
94 virtual std::size_t value_count_impl() const override;
95
96 virtual const std::any* value_at_impl(std::size_t value_index) const override;
97
98 virtual void add_value_at_impl(std::size_t value_index, std::any value) override;
99
100 virtual double filling_rate_impl() const override;
101
102 virtual void
103 serialize_impl(std::ostream& output_stream, const value_serializer& value_serializer_) const override;
104
105 virtual std::unique_ptr<storage> clone_impl() const override;
106 };
107
108
109}
110
111
112#endif
An mmap storage.
Definition mmap_storage.hpp:28
static std::size_t default_value_cache_capacity()
Returns the default value cache capacity.
mmap_storage(const boost::interprocess::file_mapping &file_mapping_, std::size_t content_offset, std::size_t file_size, value_deserializer value_deserializer_, std::size_t value_cache_capacity=default_value_cache_capacity())
Creates an mmap storage.
virtual ~mmap_storage()
Destroys the mmap storage.
A storage.
Definition storage.hpp:28
A value deserializer.
Definition value_serializer.hpp:68
A value serializer.
Definition value_serializer.hpp:22
A trie library.
A storage.
A value serializer.