11 #define _RPMDB_INTERNAL
25 uint32_t rc = (_txn ? _txn->
id(_txn) : 0);
32 const char * N = NULL;
33 int rc = (_txn ? _txn->
get_name(_txn, &N) : ENOTSUP);
41 int rc = (_txn ? _txn->
set_name(_txn, N) : ENOTSUP);
43 fprintf(stderr,
"<-- %s(%p,%s) rc %d\n",
"txn->set_name", _txn, N, rc);
50 int rc = (_txn ? _txn->
abort(_txn) : ENOTSUP);
52 fprintf(stderr,
"<-- %s(%p) rc %d\n",
"txn->abort", _txn, rc);
58 DB_ENV * dbenv = (
DB_ENV *) (rpmdb ? rpmdb->db_dbenv : NULL);
62 int rc = (dbenv && rpmdb->_dbi[0]->dbi_eflags &
DB_INIT_TXN)
63 ? dbenv->
txn_begin(dbenv, _parent, &_txn, _flags) : ENOTSUP;
71 fprintf(stderr,
"<-- %s(%p,%p,%p,0x%x) txn %p rc %d\n",
"dbenv->txn_begin", dbenv, _parent, &_txn, (
unsigned)_flags, _txn, rc);
79 int rc = (_txn ? _txn->
commit(_txn, _flags) : ENOTSUP);
81 fprintf(stderr,
"<-- %s(%p,0x%x) rc %d\n",
"txn->commit", _txn, (
unsigned)_flags, rc);
87 DB_ENV * dbenv = (
DB_ENV *) (rpmdb ? rpmdb->db_dbenv : NULL);
88 u_int32_t _kbytes = 0;
89 u_int32_t _minutes = 0;
91 int rc = (dbenv && rpmdb->_dbi[0]->dbi_eflags &
DB_INIT_TXN)
92 ? dbenv->
txn_checkpoint(dbenv, _kbytes, _minutes, _flags) : ENOTSUP;
94 fprintf(stderr,
"<-- %s(%p,%u,%u,0x%x) rc %d\n",
"dbenv->txn_checkpoint", dbenv, (
unsigned)_kbytes, (
unsigned)_minutes, (
unsigned)_flags, rc);
99 int rpmtxnDiscard(
rpmtxn txn)
103 int rc = (_txn ? _txn->discard(_txn, _flags) : ENOTSUP);
107 int rpmtxnPrepare(
rpmtxn txn)
110 uint8_t _gid[DB_GID_SIZE] = {0};
111 int rc = (_txn ? _txn->prepare(_txn, _gid) : ENOTSUP);
118 DB_PREPLIST _preplist[32];
119 long _count = (
sizeof(_preplist) /
sizeof(_preplist[0]));
121 uint32_t _flags = DB_FIRST;
126 rc = dbenv->txn_recover(dbenv, _preplist, _count, &_got, _flags);
130 for (i = 0; i < _got; i++) {
131 DB_TXN * _txn = _preplist[
i].txn;
132 uint32_t _tflags = 0;
133 (void) _txn->discard(_txn, _tflags);
int rpmtxnBegin(rpmdb rpmdb, rpmtxn parent, rpmtxn *txnp)
int rpmtxnCheckpoint(rpmdb rpmdb)
int rpmtxnSetName(rpmtxn txn, const char *N)
int rpmtxnCommit(rpmtxn txn)
int(* set_name)(DB_TXN *, const char *)
const char * rpmtxnName(rpmtxn txn)
int(* txn_begin)(DB_ENV *, DB_TXN *, DB_TXN **, uint32_t)
int(* commit)(DB_TXN *, uint32_t)
struct rpmdb_s * rpmdb
Database of headers and tag value indices.
uint32_t rpmtxnId(rpmtxn txn)
int(* get_name)(DB_TXN *, const char **)
int(* txn_checkpoint)(DB_ENV *, uint32_t, uint32_t, uint32_t)
Database transaction wrappers.
Access RPM indices using Berkeley DB interface(s).
int rpmtxnAbort(rpmtxn txn)