mirror of
https://github.com/isar/libmdbx.git
synced 2024-12-30 02:14:12 +08:00
mdbx++: добавление get/set_context для транзакций и курсоров (backport).
This commit is contained in:
parent
446dbc9d6c
commit
cf1541e4d7
32
mdbx.h++
32
mdbx.h++
@ -3573,7 +3573,7 @@ public:
|
||||
inline void *get_context() const noexcept;
|
||||
|
||||
/// \brief Sets the application context associated with the environment.
|
||||
inline env &set_context(void *);
|
||||
inline env &set_context(void *your_context);
|
||||
|
||||
/// \brief Sets threshold to force flush the data buffers to disk, for
|
||||
/// non-sync durability modes.
|
||||
@ -3931,6 +3931,12 @@ public:
|
||||
/// \brief Return the transaction's ID.
|
||||
inline uint64_t id() const;
|
||||
|
||||
/// \brief Returns the application context associated with the transaction.
|
||||
inline void *get_context() const noexcept;
|
||||
|
||||
/// \brief Sets the application context associated with the transaction.
|
||||
inline txn &set_context(void *your_context);
|
||||
|
||||
/// \brief Checks whether the given data is on a dirty page.
|
||||
inline bool is_dirty(const void *ptr) const;
|
||||
|
||||
@ -4261,6 +4267,12 @@ public:
|
||||
friend MDBX_CXX11_CONSTEXPR bool operator!=(const cursor &a,
|
||||
const cursor &b) noexcept;
|
||||
|
||||
/// \brief Returns the application context associated with the cursor.
|
||||
inline void *get_context() const noexcept;
|
||||
|
||||
/// \brief Sets the application context associated with the cursor.
|
||||
inline cursor &set_context(void *your_context);
|
||||
|
||||
enum move_operation {
|
||||
first = MDBX_FIRST,
|
||||
last = MDBX_LAST,
|
||||
@ -5564,6 +5576,15 @@ MDBX_CXX11_CONSTEXPR bool operator!=(const txn &a, const txn &b) noexcept {
|
||||
return a.handle_ != b.handle_;
|
||||
}
|
||||
|
||||
inline void *txn::get_context() const noexcept {
|
||||
return mdbx_txn_get_userctx(handle_);
|
||||
}
|
||||
|
||||
inline txn &txn::set_context(void *ptr) {
|
||||
error::success_or_throw(::mdbx_txn_set_userctx(handle_, ptr));
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline bool txn::is_dirty(const void *ptr) const {
|
||||
int err = ::mdbx_is_dirty(handle_, ptr);
|
||||
switch (err) {
|
||||
@ -6044,6 +6065,15 @@ inline cursor_managed cursor::clone(void *your_context) const {
|
||||
return clone;
|
||||
}
|
||||
|
||||
inline void *cursor::get_context() const noexcept {
|
||||
return mdbx_cursor_get_userctx(handle_);
|
||||
}
|
||||
|
||||
inline cursor &cursor::set_context(void *ptr) {
|
||||
error::success_or_throw(::mdbx_cursor_set_userctx(handle_, ptr));
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline cursor &cursor::operator=(cursor &&other) noexcept {
|
||||
handle_ = other.handle_;
|
||||
other.handle_ = nullptr;
|
||||
|
Loading…
x
Reference in New Issue
Block a user