class BDB::Lsn
Public Instance Methods
<=>(p1)
click to toggle source
static VALUE bdb_lsn_log_compare(VALUE obj, VALUE a) { struct dblsnst *lsnst1, *lsnst2; bdb_ENV *envst1, *envst2; if (!rb_obj_is_kind_of(a, bdb_cLsn)) { rb_raise(bdb_eFatal, "invalid argument for <=>"); } GetLsn(obj, lsnst1, envst1); GetLsn(a, lsnst2, envst2); return INT2NUM(log_compare(lsnst1->lsn, lsnst2->lsn)); }
close()
click to toggle source
static VALUE bdb_log_cursor_close(VALUE obj) { struct dblsnst *lsnst; Data_Get_Struct(obj, struct dblsnst, lsnst); bdb_clean_env(lsnst->env, obj); return log_cursor_close(obj); }
compare(p1)
click to toggle source
static VALUE bdb_lsn_log_compare(VALUE obj, VALUE a) { struct dblsnst *lsnst1, *lsnst2; bdb_ENV *envst1, *envst2; if (!rb_obj_is_kind_of(a, bdb_cLsn)) { rb_raise(bdb_eFatal, "invalid argument for <=>"); } GetLsn(obj, lsnst1, envst1); GetLsn(a, lsnst2, envst2); return INT2NUM(log_compare(lsnst1->lsn, lsnst2->lsn)); }
cursor()
click to toggle source
static VALUE bdb_log_cursor(VALUE lsn) { bdb_ENV *envst; struct dblsnst *lsnst; Data_Get_Struct(lsn, struct dblsnst, lsnst); if (!lsnst->cursor) { GetEnvDB(lsnst->env, envst); bdb_test_error(envst->envp->log_cursor(envst->envp, &lsnst->cursor, 0)); bdb_ary_push(&envst->db_ary, lsn); //bdb_ary_push(&envst->db_objassoc_ary, (VALUE)create_assoc(lsn, lsnst, BDB_OBJ_LOG)); } return lsn; }
each()
click to toggle source
static VALUE bdb_log_each(VALUE lsn) { struct dblsnst *lsnst; Data_Get_Struct(lsn, struct dblsnst, lsnst); lsnst->flags = DB_NEXT; return rb_ensure(bdb_log_i_get, lsn, bdb_log_cursor_close, lsn); }
env()
click to toggle source
static VALUE bdb_lsn_env(VALUE obj) { struct dblsnst *lsnst; bdb_ENV *envst; GetLsn(obj, lsnst, envst); return lsnst->env; }
file()
click to toggle source
static VALUE bdb_lsn_log_file(VALUE obj) { struct dblsnst *lsnst; bdb_ENV *envst; char name[2048]; GetLsn(obj, lsnst, envst); #if HAVE_ST_DB_ENV_LG_INFO if (!envst->envp->lg_info) { rb_raise(bdb_eFatal, "log region not open"); } bdb_test_error(log_file(envst->envp->lg_info, lsnst->lsn, name, 2048)); #elif HAVE_ST_DB_ENV_LOG_FILE bdb_test_error(envst->envp->log_file(envst->envp, lsnst->lsn, name, 2048)); #else bdb_test_error(log_file(envst->envp, lsnst->lsn, name, 2048)); #endif return rb_tainted_str_new2(name); }
flush()
click to toggle source
static VALUE bdb_lsn_log_flush(VALUE obj) { struct dblsnst *lsnst; bdb_ENV *envst; GetLsn(obj, lsnst, envst); #if HAVE_ST_DB_ENV_LG_INFO if (!envst->envp->lg_info) { rb_raise(bdb_eFatal, "log region not open"); } bdb_test_error(log_flush(envst->envp->lg_info, lsnst->lsn)); #elif HAVE_ST_DB_ENV_LOG_FLUSH bdb_test_error(envst->envp->log_flush(envst->envp, lsnst->lsn)); #else bdb_test_error(log_flush(envst->envp, lsnst->lsn)); #endif return obj; }
get(p1 = v1)
click to toggle source
static VALUE bdb_lsn_log_get(int argc, VALUE *argv, VALUE obj) { struct dblsnst *lsnst; DBT data; VALUE res, a; int ret, flags; bdb_ENV *envst; #if HAVE_ST_DB_ENV_LOG_CURSOR DB_LOGC *cursor; #endif flags = DB_SET; if (rb_scan_args(argc, argv, "01", &a) == 1) { flags = NUM2INT(a); } GetLsn(obj, lsnst, envst); #if HAVE_ST_DB_ENV_LOG_CURSOR bdb_test_error(envst->envp->log_cursor(envst->envp, &cursor, 0)); #endif MEMZERO(&data, DBT, 1); data.flags |= DB_DBT_MALLOC; #if HAVE_ST_DB_ENV_LG_INFO if (!envst->envp->lg_info) { rb_raise(bdb_eFatal, "log region not open"); } ret = bdb_test_error(log_get(envst->envp->lg_info, lsnst->lsn, &data, flags)); #elif HAVE_ST_DB_ENV_LOG_CURSOR ret = cursor->get(cursor, lsnst->lsn, &data, flags); cursor->close(cursor, 0); ret = bdb_test_error(ret); #else ret = bdb_test_error(log_get(envst->envp, lsnst->lsn, &data, flags)); #endif if (ret == DB_NOTFOUND) { return Qnil; } res = rb_tainted_str_new(data.data, data.size); free(data.data); return res; }
log_close()
click to toggle source
static VALUE bdb_log_cursor_close(VALUE obj) { struct dblsnst *lsnst; Data_Get_Struct(obj, struct dblsnst, lsnst); bdb_clean_env(lsnst->env, obj); return log_cursor_close(obj); }
log_compare(p1)
click to toggle source
static VALUE bdb_lsn_log_compare(VALUE obj, VALUE a) { struct dblsnst *lsnst1, *lsnst2; bdb_ENV *envst1, *envst2; if (!rb_obj_is_kind_of(a, bdb_cLsn)) { rb_raise(bdb_eFatal, "invalid argument for <=>"); } GetLsn(obj, lsnst1, envst1); GetLsn(a, lsnst2, envst2); return INT2NUM(log_compare(lsnst1->lsn, lsnst2->lsn)); }
log_cursor()
click to toggle source
static VALUE bdb_log_cursor(VALUE lsn) { bdb_ENV *envst; struct dblsnst *lsnst; Data_Get_Struct(lsn, struct dblsnst, lsnst); if (!lsnst->cursor) { GetEnvDB(lsnst->env, envst); bdb_test_error(envst->envp->log_cursor(envst->envp, &lsnst->cursor, 0)); bdb_ary_push(&envst->db_ary, lsn); //bdb_ary_push(&envst->db_objassoc_ary, (VALUE)create_assoc(lsn, lsnst, BDB_OBJ_LOG)); } return lsn; }
log_each()
click to toggle source
static VALUE bdb_log_each(VALUE lsn) { struct dblsnst *lsnst; Data_Get_Struct(lsn, struct dblsnst, lsnst); lsnst->flags = DB_NEXT; return rb_ensure(bdb_log_i_get, lsn, bdb_log_cursor_close, lsn); }
log_file()
click to toggle source
static VALUE bdb_lsn_log_file(VALUE obj) { struct dblsnst *lsnst; bdb_ENV *envst; char name[2048]; GetLsn(obj, lsnst, envst); #if HAVE_ST_DB_ENV_LG_INFO if (!envst->envp->lg_info) { rb_raise(bdb_eFatal, "log region not open"); } bdb_test_error(log_file(envst->envp->lg_info, lsnst->lsn, name, 2048)); #elif HAVE_ST_DB_ENV_LOG_FILE bdb_test_error(envst->envp->log_file(envst->envp, lsnst->lsn, name, 2048)); #else bdb_test_error(log_file(envst->envp, lsnst->lsn, name, 2048)); #endif return rb_tainted_str_new2(name); }
log_flush()
click to toggle source
static VALUE bdb_lsn_log_flush(VALUE obj) { struct dblsnst *lsnst; bdb_ENV *envst; GetLsn(obj, lsnst, envst); #if HAVE_ST_DB_ENV_LG_INFO if (!envst->envp->lg_info) { rb_raise(bdb_eFatal, "log region not open"); } bdb_test_error(log_flush(envst->envp->lg_info, lsnst->lsn)); #elif HAVE_ST_DB_ENV_LOG_FLUSH bdb_test_error(envst->envp->log_flush(envst->envp, lsnst->lsn)); #else bdb_test_error(log_flush(envst->envp, lsnst->lsn)); #endif return obj; }
log_get(p1 = v1)
click to toggle source
static VALUE bdb_lsn_log_get(int argc, VALUE *argv, VALUE obj) { struct dblsnst *lsnst; DBT data; VALUE res, a; int ret, flags; bdb_ENV *envst; #if HAVE_ST_DB_ENV_LOG_CURSOR DB_LOGC *cursor; #endif flags = DB_SET; if (rb_scan_args(argc, argv, "01", &a) == 1) { flags = NUM2INT(a); } GetLsn(obj, lsnst, envst); #if HAVE_ST_DB_ENV_LOG_CURSOR bdb_test_error(envst->envp->log_cursor(envst->envp, &cursor, 0)); #endif MEMZERO(&data, DBT, 1); data.flags |= DB_DBT_MALLOC; #if HAVE_ST_DB_ENV_LG_INFO if (!envst->envp->lg_info) { rb_raise(bdb_eFatal, "log region not open"); } ret = bdb_test_error(log_get(envst->envp->lg_info, lsnst->lsn, &data, flags)); #elif HAVE_ST_DB_ENV_LOG_CURSOR ret = cursor->get(cursor, lsnst->lsn, &data, flags); cursor->close(cursor, 0); ret = bdb_test_error(ret); #else ret = bdb_test_error(log_get(envst->envp, lsnst->lsn, &data, flags)); #endif if (ret == DB_NOTFOUND) { return Qnil; } res = rb_tainted_str_new(data.data, data.size); free(data.data); return res; }
log_reverse_each()
click to toggle source
static VALUE bdb_log_hcae(VALUE lsn) { struct dblsnst *lsnst; Data_Get_Struct(lsn, struct dblsnst, lsnst); lsnst->flags = DB_PREV; return rb_ensure(bdb_log_i_get, lsn, bdb_log_cursor_close, lsn); } #endif static VALUE bdb_env_log_archive(int argc, VALUE *argv, VALUE obj) { char **list, **file; bdb_ENV *envst; int flag; VALUE res; GetEnvDB(obj, envst); flag = 0; list = NULL; if (rb_scan_args(argc, argv, "01", &res)) { flag = NUM2INT(res); } #if HAVE_ST_DB_ENV_LG_INFO if (!envst->envp->lg_info) { rb_raise(bdb_eFatal, "log region not open"); } bdb_test_error(log_archive(envst->envp->lg_info, &list, flag, NULL)); #elif HAVE_ST_DB_ENV_LOG_ARCHIVE bdb_test_error(envst->envp->log_archive(envst->envp, &list, flag)); #else #if HAVE_DB_LOG_ARCHIVE_4 bdb_test_error(log_archive(envst->envp, &list, flag, NULL)); #else bdb_test_error(log_archive(envst->envp, &list, flag)); #endif #endif res = rb_ary_new(); for (file = list; file != NULL && *file != NULL; file++) { rb_ary_push(res, rb_tainted_str_new2(*file)); } if (list != NULL) free(list); return res; }
reverse_each()
click to toggle source
static VALUE bdb_log_hcae(VALUE lsn) { struct dblsnst *lsnst; Data_Get_Struct(lsn, struct dblsnst, lsnst); lsnst->flags = DB_PREV; return rb_ensure(bdb_log_i_get, lsn, bdb_log_cursor_close, lsn); } #endif static VALUE bdb_env_log_archive(int argc, VALUE *argv, VALUE obj) { char **list, **file; bdb_ENV *envst; int flag; VALUE res; GetEnvDB(obj, envst); flag = 0; list = NULL; if (rb_scan_args(argc, argv, "01", &res)) { flag = NUM2INT(res); } #if HAVE_ST_DB_ENV_LG_INFO if (!envst->envp->lg_info) { rb_raise(bdb_eFatal, "log region not open"); } bdb_test_error(log_archive(envst->envp->lg_info, &list, flag, NULL)); #elif HAVE_ST_DB_ENV_LOG_ARCHIVE bdb_test_error(envst->envp->log_archive(envst->envp, &list, flag)); #else #if HAVE_DB_LOG_ARCHIVE_4 bdb_test_error(log_archive(envst->envp, &list, flag, NULL)); #else bdb_test_error(log_archive(envst->envp, &list, flag)); #endif #endif res = rb_ary_new(); for (file = list; file != NULL && *file != NULL; file++) { rb_ary_push(res, rb_tainted_str_new2(*file)); } if (list != NULL) free(list); return res; }