|
Monero
|
#include <key_stream.h>

Public Types | |
| using | value_type = std::pair<K, boost::iterator_range<value_iterator<V>>> |
| using | reference = value_type |
| using | pointer = void |
| using | difference_type = std::size_t |
| using | iterator_category = std::input_iterator_tag |
Public Member Functions | |
| key_iterator () noexcept | |
| Construct an "end" iterator. | |
| key_iterator (MDB_cursor *cur) | |
| bool | is_end () const noexcept |
| bool | equal (key_iterator const &rhs) const noexcept |
| key_iterator & | operator++ () |
| key_iterator | operator++ (int) |
| value_type | operator* () const |
| K | get_key () const noexcept |
| template<typename T = V, typename F = T, std::size_t offset = 0> | |
| value_iterator< T, F, offset > | make_value_iterator () const |
| template<typename T = V, typename F = T, std::size_t offset = 0> | |
| boost::iterator_range< value_iterator< T, F, offset > > | make_value_range () const |
Private Member Functions | |
| void | increment () |
Private Attributes | |
| MDB_cursor * | cur |
| epee::span< const std::uint8_t > | key |
An InputIterator for a fixed-sized LMDB key and value. operator++ iterates over keys.
| K | Key type in database records. |
| V | Value type in database records. |
| using lmdb::key_iterator< K, V >::difference_type = std::size_t |
| using lmdb::key_iterator< K, V >::iterator_category = std::input_iterator_tag |
| using lmdb::key_iterator< K, V >::pointer = void |
| using lmdb::key_iterator< K, V >::reference = value_type |
| using lmdb::key_iterator< K, V >::value_type = std::pair<K, boost::iterator_range<value_iterator<V>>> |
|
inlinenoexcept |
Construct an "end" iterator.
|
inline |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlineprivate |
|
inlinenoexcept |
|
inline |
Return a C++ iterator over database values from current cursor position that will reach .is_end() after the last duplicate key record. Calling make_iterator() will return an iterator whose operator* will return an entire value (V). make_iterator<MONERO_FIELD(account, id)>() will return an iterator whose operator* will return a decltype(account.id) object - the other fields in the struct account are never copied from the database.
| std::system_error | if LMDB has unexpected errors. |
|
inline |
Return a range from current cursor position until last duplicate key record. Useful in for-each range loops or in templated code expecting a range of elements. Calling make_range() will return a range of T objects. make_range<MONERO_FIELD(account, id)>() will return a range of decltype(account.id) objects - the other fields in the struct account are never copied from the database.
| std::system_error | if LMDB has unexpected errors. |
|
inline |
|
inline |
Moves iterator to next key or end. Invalidates all prior copies of the iterator.
|
inline |
Moves iterator to next key or end.
|
private |
|
private |