class BDB::Sequence
Public Instance Methods
cachesize()
click to toggle source
static VALUE bdb_seq_cachesize(VALUE obj) { bdb_SEQ *seqst; int size; GetSEQ(obj, seqst); bdb_test_error(seqst->seqp->get_cachesize(seqst->seqp, &size)); return INT2NUM(size); }
close()
click to toggle source
static VALUE bdb_seq_close(VALUE obj) { bdb_SEQ *seqst; GetSEQ(obj, seqst); seqst->seqp->close(seqst->seqp, 0); seqst->seqp = NULL; return Qnil; }
db()
click to toggle source
static VALUE bdb_seq_db(VALUE obj) { bdb_SEQ *seqst; GetSEQ(obj, seqst); return seqst->db; }
flags()
click to toggle source
static VALUE bdb_seq_flags(VALUE obj) { bdb_SEQ *seqst; unsigned int flags; GetSEQ(obj, seqst); bdb_test_error(seqst->seqp->get_flags(seqst->seqp, &flags)); return INT2NUM(flags); }
get(p1 = v1, p2 = v2)
click to toggle source
static VALUE bdb_seq_get(int argc, VALUE *argv, VALUE obj) { bdb_SEQ *seqst; int delta = 1, flags = 0; VALUE a, b; db_seq_t val; GetSEQ(obj, seqst); switch (rb_scan_args(argc, argv, "02", &a, &b)) { case 2: flags = NUM2INT(b); /* ... */ case 1: delta = NUM2INT(a); } bdb_test_error(seqst->seqp->get(seqst->seqp, seqst->txnid, delta, &val, flags)); return LONG2NUM(val); }
key()
click to toggle source
static VALUE bdb_seq_key(VALUE obj) { bdb_SEQ *seqst; DBT key; GetSEQ(obj, seqst); bdb_test_error(seqst->seqp->get_key(seqst->seqp, &key)); return bdb_test_load_key(seqst->db, &key); }
range()
click to toggle source
static VALUE bdb_seq_range(VALUE obj) { bdb_SEQ *seqst; db_seq_t deb, fin; GetSEQ(obj, seqst); bdb_test_error(seqst->seqp->get_range(seqst->seqp, &deb, &fin)); return rb_assoc_new(LONG2NUM(deb), LONG2NUM(fin)); }
remove(p1 = v1)
click to toggle source
static VALUE bdb_seq_remove(int argc, VALUE *argv, VALUE obj) { bdb_SEQ *seqst; VALUE a; int flags = 0; GetSEQ(obj, seqst); if (rb_scan_args(argc, argv, "01", &a)) { flags = NUM2INT(a); } if (seqst->seqp->remove(seqst->seqp, seqst->txnid, flags)) { rb_raise(rb_eArgError, "invalid argument"); } seqst->seqp = NULL; return Qnil; }
stat(p1 = v1)
click to toggle source
static VALUE bdb_seq_stat(int argc, VALUE *argv, VALUE obj) { bdb_SEQ *seqst; int flags = 0; VALUE a, res; DB_SEQUENCE_STAT sta; GetSEQ(obj, seqst); if (rb_scan_args(argc, argv, "01", &a)) { flags = NUM2INT(a); } bdb_test_error(seqst->seqp->stat(seqst->seqp, (void *)&sta, flags)); res = rb_hash_new(); rb_hash_aset(res, rb_str_new2("wait"), INT2NUM(sta.st_wait)); rb_hash_aset(res, rb_str_new2("nowait"), INT2NUM(sta.st_nowait)); rb_hash_aset(res, rb_str_new2("current"), INT2NUM(sta.st_current)); rb_hash_aset(res, rb_str_new2("value"), INT2NUM(sta.st_value)); rb_hash_aset(res, rb_str_new2("last_value"), INT2NUM(sta.st_last_value)); rb_hash_aset(res, rb_str_new2("min"), INT2NUM(sta.st_min)); rb_hash_aset(res, rb_str_new2("max"), INT2NUM(sta.st_max)); rb_hash_aset(res, rb_str_new2("cache_size"), INT2NUM(sta.st_cache_size)); rb_hash_aset(res, rb_str_new2("flags"), INT2NUM(sta.st_flags)); return res; }