⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 berkeleydb.xs

📁 File system using stacked.
💻 XS
📖 第 1 页 / 共 5 页
字号:
	CODE:	    ZMALLOC(RETVAL, BerkeleyDB_TxnMgr_type) ;	    RETVAL->env  = env ;	    /* hash_store_iv("BerkeleyDB::Term::TxnMgr", (char *)txn, 1) ; */	OUTPUT:	    RETVALintset_lg_dir(env, dir)        BerkeleyDB::Env  env	char *		 dir	INIT:	  ckActive_Database(env->active) ;	CODE:#ifndef AT_LEAST_DB_3_1	    softCrash("$env->set_lg_dir needs Berkeley DB 3.1 or better") ;#else	    RETVAL = env->Status = env->Env->set_lg_dir(env->Env, dir);#endif	OUTPUT:	    RETVALintset_lg_bsize(env, bsize)        BerkeleyDB::Env  env	u_int32_t	 bsize	INIT:	  ckActive_Database(env->active) ;	CODE:#ifndef AT_LEAST_DB_3	    softCrash("$env->set_lg_bsize needs Berkeley DB 3.0.55 or better") ;#else	    RETVAL = env->Status = env->Env->set_lg_bsize(env->Env, bsize);#endif	OUTPUT:	    RETVALintset_lg_max(env, lg_max)        BerkeleyDB::Env  env	u_int32_t	 lg_max	INIT:	  ckActive_Database(env->active) ;	CODE:#ifndef AT_LEAST_DB_3	    softCrash("$env->set_lg_max needs Berkeley DB 3.0.55 or better") ;#else	    RETVAL = env->Status = env->Env->set_lg_max(env->Env, lg_max);#endif	OUTPUT:	    RETVALintset_data_dir(env, dir)        BerkeleyDB::Env  env	char *		 dir	INIT:	  ckActive_Database(env->active) ;	CODE:#ifndef AT_LEAST_DB_3_1	    softCrash("$env->set_data_dir needs Berkeley DB 3.1 or better") ;#else	    RETVAL = env->Status = env->Env->set_data_dir(env->Env, dir);#endif	OUTPUT:	    RETVALintset_tmp_dir(env, dir)        BerkeleyDB::Env  env	char *		 dir	INIT:	  ckActive_Database(env->active) ;	CODE:#ifndef AT_LEAST_DB_3_1	    softCrash("$env->set_tmp_dir needs Berkeley DB 3.1 or better") ;#else	    RETVAL = env->Status = env->Env->set_tmp_dir(env->Env, dir);#endif	OUTPUT:	    RETVALintset_mutexlocks(env, do_lock)        BerkeleyDB::Env  env	int 		 do_lock	INIT:	  ckActive_Database(env->active) ;	CODE:#ifndef AT_LEAST_DB_3	    softCrash("$env->set_setmutexlocks needs Berkeley DB 3.0 or better") ;#else#  ifdef AT_LEAST_DB_4	    RETVAL = env->Status = env->Env->set_flags(env->Env, DB_NOLOCKING, do_lock);#  else#    if defined(AT_LEAST_DB_3_2_6) || defined(IS_DB_3_0_x)	    RETVAL = env->Status = env->Env->set_mutexlocks(env->Env, do_lock);#    else /* DB 3.1 or 3.2.3 */	    RETVAL = env->Status = db_env_set_mutexlocks(do_lock);#    endif#  endif#endif	OUTPUT:	    RETVALintset_verbose(env, which, onoff)        BerkeleyDB::Env  env	u_int32_t	 which	int	 	 onoff	INIT:	  ckActive_Database(env->active) ;	CODE:#ifndef AT_LEAST_DB_3	    softCrash("$env->set_verbose needs Berkeley DB 3.x or better") ;#else	    RETVAL = env->Status = env->Env->set_verbose(env->Env, which, onoff);#endif	OUTPUT:	    RETVALintset_flags(env, flags, onoff)        BerkeleyDB::Env  env	u_int32_t	 flags	int	 	 onoff	INIT:	  ckActive_Database(env->active) ;	CODE:#ifndef AT_LEAST_DB_3_2	    softCrash("$env->set_flags needs Berkeley DB 3.2.x or better") ;#else	    RETVAL = env->Status = env->Env->set_flags(env->Env, flags, onoff);#endif	OUTPUT:	    RETVALMODULE = BerkeleyDB::Term		PACKAGE = BerkeleyDB::Termvoidclose_everything()#define safeCroak(string)	softCrash(string)voidsafeCroak(string)	char * stringMODULE = BerkeleyDB::Hash	PACKAGE = BerkeleyDB::Hash	PREFIX = hash_BerkeleyDB::Hash::Raw_db_open_hash(self, ref)	char *		self	SV * 		ref	CODE:	{	    HV *		hash ;	    SV * 		sv ;	    DB_INFO 		info ;	    BerkeleyDB__Env	dbenv = NULL;	    SV *		ref_dbenv = NULL;	    const char *	file = NULL ;	    const char *	subname = NULL ;	    int			flags = 0 ;	    int			mode = 0 ;    	    BerkeleyDB 		db ;    	    BerkeleyDB__Txn 	txn = NULL ;    	    Trace(("_db_open_hash start\n")) ;	    hash = (HV*) SvRV(ref) ;	    SetValue_pv(file, "Filename", char *) ;	    SetValue_pv(subname, "Subname", char *) ;	    SetValue_ov(txn, "Txn", BerkeleyDB__Txn) ;	    SetValue_ov(dbenv, "Env", BerkeleyDB__Env) ;	    ref_dbenv = sv ;	    SetValue_iv(flags, "Flags") ;	    SetValue_iv(mode, "Mode") ;       	    Zero(&info, 1, DB_INFO) ;	    SetValue_iv(info.db_cachesize, "Cachesize") ;	    SetValue_iv(info.db_lorder, "Lorder") ;	    SetValue_iv(info.db_pagesize, "Pagesize") ;	    SetValue_iv(info.h_ffactor, "Ffactor") ;	    SetValue_iv(info.h_nelem, "Nelem") ;	    SetValue_iv(info.flags, "Property") ;	    ZMALLOC(db, BerkeleyDB_type) ;	    if ((sv = readHash(hash, "Hash")) && sv != &PL_sv_undef) {		info.h_hash = hash_cb ;		db->hash = newSVsv(sv) ;	    }	    /* DB_DUPSORT was introduced in DB 2.5.9 */	    if ((sv = readHash(hash, "DupCompare")) && sv != &PL_sv_undef) {#ifdef DB_DUPSORT		info.dup_compare = dup_compare ;		db->dup_compare = newSVsv(sv) ;		info.flags |= DB_DUP|DB_DUPSORT ;#else	        croak("DupCompare needs Berkeley DB 2.5.9 or later") ;#endif	    }	    RETVAL = my_db_open(db, ref, ref_dbenv, dbenv, txn, file, subname, DB_HASH, flags, mode, &info) ;    	    Trace(("_db_open_hash end\n")) ;	}	OUTPUT:	    RETVALHV *db_stat(db, flags=0)	int			flags	BerkeleyDB::Common	db	HV *			RETVAL = NULL ;	INIT:	  ckActive_Database(db->active) ;	CODE:	{#if DB_VERSION_MAJOR == 2	    softCrash("$db->db_stat for a Hash needs Berkeley DB 3.x or better") ;#else	    DB_HASH_STAT *	stat ;#ifdef AT_LEAST_DB_3_3	    db->Status = ((db->dbp)->stat)(db->dbp, &stat, flags) ;#else	    db->Status = ((db->dbp)->stat)(db->dbp, &stat, safemalloc, flags) ;#endif	    if (db->Status == 0) {	    	RETVAL = (HV*)sv_2mortal((SV*)newHV()) ;		hv_store_iv(RETVAL, "hash_magic", stat->hash_magic) ;		hv_store_iv(RETVAL, "hash_version", stat->hash_version);		hv_store_iv(RETVAL, "hash_pagesize", stat->hash_pagesize);#ifdef AT_LEAST_DB_3_1		hv_store_iv(RETVAL, "hash_nkeys", stat->hash_nkeys);		hv_store_iv(RETVAL, "hash_ndata", stat->hash_ndata);#else		hv_store_iv(RETVAL, "hash_nrecs", stat->hash_nrecs);#endif#ifndef AT_LEAST_DB_3_1		hv_store_iv(RETVAL, "hash_nelem", stat->hash_nelem);#endif		hv_store_iv(RETVAL, "hash_ffactor", stat->hash_ffactor);		hv_store_iv(RETVAL, "hash_buckets", stat->hash_buckets);		hv_store_iv(RETVAL, "hash_free", stat->hash_free);		hv_store_iv(RETVAL, "hash_bfree", stat->hash_bfree);		hv_store_iv(RETVAL, "hash_bigpages", stat->hash_bigpages);		hv_store_iv(RETVAL, "hash_big_bfree", stat->hash_big_bfree);		hv_store_iv(RETVAL, "hash_overflows", stat->hash_overflows);		hv_store_iv(RETVAL, "hash_ovfl_free", stat->hash_ovfl_free);		hv_store_iv(RETVAL, "hash_dup", stat->hash_dup);		hv_store_iv(RETVAL, "hash_dup_free", stat->hash_dup_free);#if DB_VERSION_MAJOR >= 3		hv_store_iv(RETVAL, "hash_metaflags", stat->hash_metaflags);#endif		safefree(stat) ;	    }#endif	}	OUTPUT:	    RETVALMODULE = BerkeleyDB::Unknown	PACKAGE = BerkeleyDB::Unknown	PREFIX = hash_void_db_open_unknown(ref)	SV * 		ref	PPCODE:	{	    HV *		hash ;	    SV * 		sv ;	    DB_INFO 		info ;	    BerkeleyDB__Env	dbenv = NULL;	    SV *		ref_dbenv = NULL;	    const char *	file = NULL ;	    const char *	subname = NULL ;	    int			flags = 0 ;	    int			mode = 0 ;    	    BerkeleyDB 		db ;	    BerkeleyDB		RETVAL ;    	    BerkeleyDB__Txn 	txn = NULL ;	    static char * 		Names[] = {"", "Btree", "Hash", "Recno"} ;	    hash = (HV*) SvRV(ref) ;	    SetValue_pv(file, "Filename", char *) ;	    SetValue_pv(subname, "Subname", char *) ;	    SetValue_ov(txn, "Txn", BerkeleyDB__Txn) ;	    SetValue_ov(dbenv, "Env", BerkeleyDB__Env) ;	    ref_dbenv = sv ;	    SetValue_iv(flags, "Flags") ;	    SetValue_iv(mode, "Mode") ;       	    Zero(&info, 1, DB_INFO) ;	    SetValue_iv(info.db_cachesize, "Cachesize") ;	    SetValue_iv(info.db_lorder, "Lorder") ;	    SetValue_iv(info.db_pagesize, "Pagesize") ;	    SetValue_iv(info.h_ffactor, "Ffactor") ;	    SetValue_iv(info.h_nelem, "Nelem") ;	    SetValue_iv(info.flags, "Property") ;	    ZMALLOC(db, BerkeleyDB_type) ;	    RETVAL = my_db_open(db, ref, ref_dbenv, dbenv, txn, file, subname, DB_UNKNOWN, flags, mode, &info) ;	    XPUSHs(sv_2mortal(newSViv(PTR2IV(RETVAL))));	    if (RETVAL)	        XPUSHs(sv_2mortal(newSVpv(Names[RETVAL->type], 0))) ;	    else	        XPUSHs(sv_2mortal(newSViv((IV)NULL)));	}MODULE = BerkeleyDB::Btree	PACKAGE = BerkeleyDB::Btree	PREFIX = btree_BerkeleyDB::Btree::Raw_db_open_btree(self, ref)	char *		self	SV * 		ref	CODE:	{	    HV *		hash ;	    SV * 		sv ;	    DB_INFO 		info ;	    BerkeleyDB__Env	dbenv = NULL;	    SV *		ref_dbenv = NULL;	    const char *	file = NULL ;	    const char *	subname = NULL ;	    int			flags = 0 ;	    int			mode = 0 ;    	    BerkeleyDB  	db ;    	    BerkeleyDB__Txn 	txn = NULL ;	    Trace(("In _db_open_btree\n"));	    hash = (HV*) SvRV(ref) ;	    SetValue_pv(file, "Filename", char*) ;	    SetValue_pv(subname, "Subname", char *) ;	    SetValue_ov(txn, "Txn", BerkeleyDB__Txn) ;	    SetValue_ov(dbenv, "Env", BerkeleyDB__Env) ;	    ref_dbenv = sv ;	    SetValue_iv(flags, "Flags") ;	    SetValue_iv(mode, "Mode") ;       	    Zero(&info, 1, DB_INFO) ;	    SetValue_iv(info.db_cachesize, "Cachesize") ;	    SetValue_iv(info.db_lorder, "Lorder") ;	    SetValue_iv(info.db_pagesize, "Pagesize") ;	    SetValue_iv(info.bt_minkey, "Minkey") ;	    SetValue_iv(info.flags, "Property") ;	    ZMALLOC(db, BerkeleyDB_type) ;	    if ((sv = readHash(hash, "Compare")) && sv != &PL_sv_undef) {		Trace(("    Parsed Compare callback\n"));		info.bt_compare = btree_compare ;		db->compare = newSVsv(sv) ;	    }	    /* DB_DUPSORT was introduced in DB 2.5.9 */	    if ((sv = readHash(hash, "DupCompare")) && sv != &PL_sv_undef) {#ifdef DB_DUPSORT		Trace(("    Parsed DupCompare callback\n"));		info.dup_compare = dup_compare ;		db->dup_compare = newSVsv(sv) ;		info.flags |= DB_DUP|DB_DUPSORT ;#else	        softCrash("DupCompare needs Berkeley DB 2.5.9 or later") ;#endif	    }	    if ((sv = readHash(hash, "Prefix")) && sv != &PL_sv_undef) {		Trace(("    Parsed Prefix callback\n"));		info.bt_prefix = btree_prefix ;		db->prefix = newSVsv(sv) ;	    }	    RETVAL = my_db_open(db, ref, ref_dbenv, dbenv, txn, file, subname, DB_BTREE, flags, mode, &info) ;	}	OUTPUT:	    RETVALHV *db_stat(db, flags=0)	int			flags	BerkeleyDB::Common	db	HV *			RETVAL = NULL ;	INIT:	  ckActive_Database(db->active) ;	CODE:	{	    DB_BTREE_STAT *	stat ;#ifdef AT_LEAST_DB_3_3	    db->Status = ((db->dbp)->stat)(db->dbp, &stat, flags) ;#else	    db->Status = ((db->dbp)->stat)(db->dbp, &stat, safemalloc, flags) ;#endif	    if (db->Status == 0) {	    	RETVAL = (HV*)sv_2mortal((SV*)newHV()) ;		hv_store_iv(RETVAL, "bt_magic", stat->bt_magic);		hv_store_iv(RETVAL, "bt_version", stat->bt_version);#if DB_VERSION_MAJOR > 2		hv_store_iv(RETVAL, "bt_metaflags", stat->bt_metaflags) ;		hv_store_iv(RETVAL, "bt_flags", stat->bt_metaflags) ;#else		hv_store_iv(RETVAL, "bt_flags", stat->bt_flags) ;#endif		hv_store_iv(RETVAL, "bt_maxkey", stat->bt_maxkey) ;		hv_store_iv(RETVAL, "bt_minkey", stat->bt_minkey);		hv_store_iv(RETVAL, "bt_re_len", stat->bt_re_len);		hv_store_iv(RETVAL, "bt_re_pad", stat->bt_re_pad);		hv_store_iv(RETVAL, "bt_pagesize", stat->bt_pagesize);		hv_store_iv(RETVAL, "bt_levels", stat->bt_levels);#ifdef AT_LEAST_DB_3_1		hv_store_iv(RETVAL, "bt_nkeys", stat->bt_nkeys);		hv_store_iv(RETVAL, "bt_ndata", stat->bt_ndata);#else		hv_store_iv(RETVAL, "bt_nrecs", stat->bt_nrecs);#endif		hv_store_iv(RETVAL, "bt_int_pg", stat->bt_int_pg);		hv_store_iv(RETVAL, "bt_leaf_pg", stat->bt_leaf_pg);		hv_store_iv(RETVAL, "bt_dup_pg", stat->bt_dup_pg);		hv_store_iv(RETVAL, "bt_over_pg", stat->bt_over_pg);		hv_store_iv(RETVAL, "bt_free", stat->bt_free);#if DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR < 5		hv_store_iv(RETVAL, "bt_freed", stat->bt_freed);		hv_store_iv(RETVAL, "bt_pfxsaved", stat->bt_pfxsaved);		hv_store_iv(RETVAL, "bt_split", stat->bt_split);		hv_store_iv(RETVAL, "bt_rootsplit", stat->bt_rootsplit);		hv_store_iv(RETVAL, "bt_fastsplit", stat->bt_fastsplit);		hv_store_iv(RETVAL, "bt_added", stat->bt_added);		hv_store_iv(RETVAL, "bt_deleted", stat->bt_deleted);		hv_store_iv(RETVAL, "bt_get", stat->bt_get);		hv_store_iv(RETVAL, "bt_cache_hit", stat->bt_cache_hit);		hv_store_iv(RETVAL, "bt_cache_miss", stat->bt_cache_miss);#endif		hv_store_iv(RETVAL, "bt_int_pgfree", stat->bt_int_pgfree);		hv_store_iv(RETVAL, "bt_leaf_pgfree", stat->bt_leaf_pgfree);		hv_store_iv(RETVAL, "bt_dup_pgfree", stat->bt_dup_pgfree);		hv_store_iv(RETVAL, "bt_over_pgfree", stat->bt_over_pgfree);		safefree(stat) ;	    }	}	OUTPUT:	    RETVALMODULE = BerkeleyDB::Recno	PACKAGE = BerkeleyDB::Recno	PREFIX = recno_BerkeleyDB::Recno::Raw_db_open_recno(self, ref)	char *		self	SV * 		ref	CODE:	{	    HV *		hash ;	    SV * 		sv ;	    DB_INFO 		info ;	    BerkeleyDB__Env	dbenv = NULL;	    SV *		ref_dbenv = NULL;	    const char *	file = NULL ;	    const char *	subname = NULL ;	    int			flags = 0 ;	    int			mode = 0 ;    	    BerkeleyDB 		db ;    	    BerkeleyDB__Txn 	txn = NULL ;	    hash = (HV*) SvRV(ref) ;	    SetValue_pv(file, "Fname", char*) ;	    SetValue_ov(dbenv, "Env", BerkeleyDB__Env) ;	    ref_dbenv = sv ;	    SetValue_ov(txn, "Txn", BerkeleyDB__Txn) ;	    SetValue_iv(flags, "Flags") ;	    SetValue_iv(mode, "Mode") ;       	    Zero(&info, 1, DB_INFO) ;	    SetValue_iv(info.db_cachesize, "Cachesize") ;	    SetValue_iv(info.db_lorder, "Lorder") ;	    SetValue_iv(info.db_pagesize, "Pagesize") ;	    SetValue_iv(info.bt_minkey, "Minkey") ;	    SetValue_iv(info.flags, "Property") ;	    SetValue_pv(info.re_source, "Source", char*) ;	    if ((sv = readHash(hash, "Len")) && sv != &PL_sv_undef) {		info.re_len = SvIV(sv) ; ;		flagSet_DB2(info.flags, DB_FIXEDLEN) ;	    }	    if ((sv = readHash(hash, "Delim")) && sv != &PL_sv_undef) {		info.re_delim = SvPOK(sv) ? *SvPV(sv,PL_na) : SvIV(sv) ; ;		flagSet_DB2(info.flags, DB_DELIMITER) ;	    }	    if ((sv = readHash(hash, "Pad")) && sv != &PL_sv_undef) {		info.re_pad = (u_int32_t)SvPOK(sv) ? *SvPV(sv,PL_na) : SvIV(sv) ; ;		flagSet_DB2(info.flags, DB_PAD) ;	    }	    ZMALLOC(db, BerkeleyDB_type) ;#ifdef ALLOW_RECNO_OFFSET	    Se

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -