1#ifndef _DITTO_WITH_READ_TXN_
2#define _DITTO_WITH_READ_TXN_
4#include "internal_errors.hpp"
7#include "safer_ffi_utils.hpp"
13inline T with_read_txn(::CDitto *ditto,
14 std::function<T(CReadTransaction *)> f) {
15 CReadTransaction *txn =
nullptr;
16 assert_lmdb_success(EXTRACT_RESULT(txn, ditto_read_transaction(ditto), .txn));
18 ditto_read_transaction_free(txn);
23inline void with_read_txn(::CDitto *ditto,
24 std::function<
void(CReadTransaction *)> f) {
25 CReadTransaction *txn =
nullptr;
26 assert_lmdb_success(EXTRACT_RESULT(txn, ditto_read_transaction(ditto), .txn));
28 ditto_read_transaction_free(txn);