Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
lmdb_write_transaction.hpp
Go to the documentation of this file.
1#pragma once
9#include "lmdb.h"
10#include <cstdint>
11#include <exception>
12#include <memory>
13
14namespace bb::lmdblib {
15
24 public:
26
32 ~LMDBWriteTransaction() override;
33
34 template <typename T> void put_value(T& key, Value& data, const LMDBDatabase& db);
35
36 template <typename T> void put_value(T& key, const uint64_t& data, const LMDBDatabase& db);
37
38 void put_value(Key& key, Value& data, const LMDBDatabase& db);
39
40 void put_value(Key& key, const uint64_t& data, const LMDBDatabase& db);
41
42 template <typename T> void delete_value(T& key, const LMDBDatabase& db);
43
44 template <typename T> void delete_value(T& key, Value& value, const LMDBDatabase& db);
45
46 void delete_value(Key& key, const LMDBDatabase& db);
47
48 void delete_value(Key& key, Value& value, const LMDBDatabase& db);
49
50 template <typename T> void delete_all_values_greater_or_equal_key(const T& key, const LMDBDatabase& db) const;
51
52 template <typename T> void delete_all_values_lesser_or_equal_key(const T& key, const LMDBDatabase& db) const;
53
54 void commit();
55
56 void try_abort();
57};
58
59template <typename T> void LMDBWriteTransaction::put_value(T& key, Value& data, const LMDBDatabase& db)
60{
61 Key keyBuffer = serialise_key(key);
62 put_value(keyBuffer, data, db);
63}
64
65template <typename T> void LMDBWriteTransaction::put_value(T& key, const uint64_t& data, const LMDBDatabase& db)
66{
67 Key keyBuffer = serialise_key(key);
68 put_value(keyBuffer, data, db);
69}
70
71template <typename T> void LMDBWriteTransaction::delete_value(T& key, const LMDBDatabase& db)
72{
73 Key keyBuffer = serialise_key(key);
74 lmdb_queries::delete_value(keyBuffer, db, *this);
75}
76
77template <typename T> void LMDBWriteTransaction::delete_value(T& key, Value& value, const LMDBDatabase& db)
78{
79 Key keyBuffer = serialise_key(key);
80 lmdb_queries::delete_value(keyBuffer, value, db, *this);
81}
82
83template <typename T>
88
89template <typename T>
94} // namespace bb::lmdblib
std::shared_ptr< LMDBEnvironment > SharedPtr
std::unique_ptr< LMDBWriteTransaction > Ptr
LMDBWriteTransaction(LMDBWriteTransaction &&other)=delete
void put_value(T &key, Value &data, const LMDBDatabase &db)
LMDBWriteTransaction(const LMDBWriteTransaction &other)=delete
LMDBWriteTransaction & operator=(const LMDBWriteTransaction &other)=delete
void delete_all_values_lesser_or_equal_key(const T &key, const LMDBDatabase &db) const
void delete_all_values_greater_or_equal_key(const T &key, const LMDBDatabase &db) const
void delete_value(T &key, const LMDBDatabase &db)
LMDBWriteTransaction & operator=(LMDBWriteTransaction &&other)=delete
const std::vector< FF > data
void delete_value(Key &key, const LMDBDatabase &db, bb::lmdblib::LMDBWriteTransaction &tx)
Definition queries.cpp:59
void delete_all_values_lesser_or_equal_key(const TKey &key, const LMDBDatabase &db, const TxType &tx)
Definition queries.hpp:374
void delete_all_values_greater_or_equal_key(const TKey &key, const LMDBDatabase &db, const TxType &tx)
Definition queries.hpp:266
std::vector< uint8_t > Key
Definition types.hpp:11
std::vector< uint8_t > serialise_key(uint8_t key)
std::vector< uint8_t > Value
Definition types.hpp:12
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13