dbc.cpp 1.29 KB
Newer Older
1
#include <db_cxx.h>
2 3 4

int Dbc::close (void) {
    DBC *dbc = this;
5
    DbEnv *env = (DbEnv*)dbc->dbp->api_internal; // Must grab the env before closing the cursor.
6
    int ret = dbc->c_close(dbc);
7
    return env->maybe_throw_error(ret);
8 9 10 11 12
}

int Dbc::get(Dbt* key, Dbt *data, u_int32_t flags) {
    DBC *dbc = this;
    int ret = dbc->c_get(dbc, key, data, flags);
13 14
    DB_ENV *dbenv_c=dbc->dbp->dbenv;
    DbEnv *env = (DbEnv*)dbenv_c->api1_internal;
15
    return env->maybe_throw_error(ret);
16
}
17

Rich Prohaska's avatar
Rich Prohaska committed
18 19 20 21 22 23 24 25
int Dbc::pget(Dbt* key, Dbt *pkey, Dbt *data, u_int32_t flags) {
    DBC *dbc = this;
    int ret = dbc->c_pget(dbc, key, pkey, data, flags);
    DB_ENV *dbenv_c=dbc->dbp->dbenv;
    DbEnv *env = (DbEnv*)dbenv_c->api1_internal;
    return env->maybe_throw_error(ret);
}

26 27 28 29 30 31 32 33
int Dbc::del(u_int32_t flags) {
    DBC *dbc = this;
    int ret = dbc->c_del(dbc, flags);
    DB_ENV *dbenv_c=dbc->dbp->dbenv;
    DbEnv *env = (DbEnv*)dbenv_c->api1_internal;
    return env->maybe_throw_error(ret);
}

34 35 36 37 38 39 40 41
int Dbc::count(db_recno_t *count, u_int32_t flags) {
    DBC *dbc = this;
    int ret = dbc->c_count(dbc, count, flags);
    DB_ENV *dbenv_c=dbc->dbp->dbenv;
    DbEnv *env = (DbEnv*)dbenv_c->api1_internal;
    return env->maybe_throw_error(ret);
}

42 43 44 45 46
// Not callable, but some compilers require it to be defined anyway.
Dbc::~Dbc()
{
}