tetengo 1.8.2
A multipurpose library set
Loading...
Searching...
No Matches
memory_storage.hpp
Go to the documentation of this file.
1
7#if !defined(TETENGO_TRIE_MEMORYSTORAGE_HPP)
8#define TETENGO_TRIE_MEMORYSTORAGE_HPP
9
10#include <any>
11#include <cstddef> // IWYU pragma: keep
12#include <cstdint>
13#include <istream>
14#include <memory>
15
17
18
19namespace tetengo::trie
20{
21 class value_deserializer;
22 class value_serializer;
23
24
28 class memory_storage : public storage
29 {
30 public:
31 // constructors and destructor
32
37
44 memory_storage(std::istream& input_stream, const value_deserializer& value_deserializer_);
45
49 virtual ~memory_storage();
50
51
52 private:
53 // types
54
55 class impl;
56
57
58 // variables
59
60 const std::unique_ptr<impl> m_p_impl;
61
62
63 // virtual functions
64
65 virtual std::size_t base_check_size_impl() const override;
66
67 virtual std::int32_t base_at_impl(std::size_t base_check_index) const override;
68
69 virtual void set_base_at_impl(std::size_t base_check_index, std::int32_t base) override;
70
71 virtual std::uint8_t check_at_impl(std::size_t base_check_index) const override;
72
73 virtual void set_check_at_impl(std::size_t base_check_index, std::uint8_t check) override;
74
75 virtual std::size_t value_count_impl() const override;
76
77 virtual const std::any* value_at_impl(std::size_t value_index) const override;
78
79 virtual void add_value_at_impl(std::size_t value_index, std::any value) override;
80
81 virtual double filling_rate_impl() const override;
82
83 virtual void
84 serialize_impl(std::ostream& output_stream, const value_serializer& value_serializer_) const override;
85
86 virtual std::unique_ptr<storage> clone_impl() const override;
87 };
88
89
90}
91
92
93#endif
A memory storage.
Definition memory_storage.hpp:29
memory_storage()
Creates a memory storage.
virtual ~memory_storage()
Destroys the memory storage.
memory_storage(std::istream &input_stream, const value_deserializer &value_deserializer_)
Creates a memory 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.