@@ -35,7 +35,7 @@ namespace database {
3535// / Readers and writers are always prepositioned at data, and are limited to
3636// / the extent the record/slab size is known (limit can always be removed).
3737// / Streams are always initialized from first element byte up to file limit.
38- template <typename Link, size_t Size , bool Align>
38+ template <class Link , size_t RowSize , bool Align>
3939class arraymap
4040{
4141public:
@@ -95,29 +95,28 @@ class arraymap
9595 inline Link at (size_t key) const NOEXCEPT;
9696
9797 // / Get first element matching key, false if not found/error (unverified).
98- template <typename Element, if_equal<Element::size, Size > = true >
98+ template <typename Element, if_equal<Element::size, RowSize > = true >
9999 inline bool at (size_t key, Element& element) const NOEXCEPT;
100100
101101 // / Get element at link, false if deserialize error.
102- template <typename Element, if_equal<Element::size, Size > = true >
102+ template <typename Element, if_equal<Element::size, RowSize > = true >
103103 inline bool get (const Link& link, Element& element) const NOEXCEPT;
104104
105105 // / Allocate, set, commit element to key.
106106 // / Expands table AND HEADER as necessary.
107- template <typename Element, if_equal<Element::size, Size > = true >
107+ template <typename Element, if_equal<Element::size, RowSize > = true >
108108 bool put (size_t key, const Element& element) NOEXCEPT;
109109
110110protected:
111111 // / Get element at link using memory object, false if deserialize error.
112- template <typename Element, if_equal<Element::size, Size > = true >
112+ template <typename Element, if_equal<Element::size, RowSize > = true >
113113 static bool read (const memory_ptr& ptr, const Link& link,
114114 Element& element) NOEXCEPT;
115115
116116private:
117- static constexpr auto is_slab = (Size == max_size_t );
118-
117+ static constexpr auto is_slab = (RowSize == max_size_t );
119118 using head = database::arrayhead<Link, Align>;
120- using body = database::manager<Link, system::data_array<0 >, Size >;
119+ using body = database::manager<Link, system::data_array<0 >, RowSize >;
121120
122121 // Thread safe (index/top/push).
123122 // Not thread safe (create/open/close/backup/restore).
@@ -133,8 +132,10 @@ using array_map = arraymap<linkage<Element::pk>, Element::size, Element::align>;
133132} // namespace database
134133} // namespace libbitcoin
135134
136- #define TEMPLATE template <typename Link, size_t Size, bool Align>
137- #define CLASS arraymap<Link, Size, Align>
135+ #define TEMPLATE template <class Link , size_t RowSize, bool Align>
136+ #define CLASS arraymap<Link, RowSize, Align>
137+ #define ELEMENT_CONSTRAINT template <class Element , \
138+ if_equal<Element::size, RowSize>>
138139
139140#include < bitcoin/database/impl/primitives/arraymap.ipp>
140141
0 commit comments