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

📄 cxx_env.cpp

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	DB_ENV *env = unwrap(this);	int ret;	DB_MPOOLFILE *mpf;	if (env == NULL)		ret = EINVAL;	else		ret = env->memp_fcreate(env, &mpf, flags);	if (DB_RETOK_STD(ret)) {		*dbmfp = new DbMpoolFile();		(*dbmfp)->imp_ = wrap(mpf);	} else		DB_ERROR("DbMpoolFile::f_create", ret, ON_ERROR_UNKNOWN);	return (ret);}DBENV_METHOD(memp_register,    (int ftype, pgin_fcn_type pgin_fcn, pgout_fcn_type pgout_fcn),    (dbenv, ftype, pgin_fcn, pgout_fcn))// memory pool methodsDBENV_METHOD(memp_stat,    (DB_MPOOL_STAT **gsp, DB_MPOOL_FSTAT ***fsp, u_int32_t flags),    (dbenv, gsp, fsp, flags))DBENV_METHOD(memp_sync, (DbLsn *sn), (dbenv, sn))DBENV_METHOD(memp_trickle, (int pct, int *nwrotep), (dbenv, pct, nwrotep))// If an error occurred during the constructor, report it now.// Otherwise, call the underlying DB->open method.//int DbEnv::open(const char *db_home, u_int32_t flags, int mode){	int ret;	DB_ENV *env = unwrap(this);	if (construct_error_ != 0)		ret = construct_error_;	else		ret = env->open(env, db_home, flags, mode);	if (!DB_RETOK_STD(ret))		DB_ERROR("DbEnv::open", ret, error_policy());	return (ret);}int DbEnv::remove(const char *db_home, u_int32_t flags){	int ret;	DB_ENV *env = unwrap(this);	// after a remove (no matter if success or failure),	// the underlying DB_ENV object must not be accessed,	// so we clean up in advance.	//	cleanup();	if ((ret = env->remove(env, db_home, flags)) != 0)		DB_ERROR("DbEnv::remove", ret, error_policy());	return (ret);}// Report an error associated with the DbEnv.// error_policy is one of://   ON_ERROR_THROW     throw an error//   ON_ERROR_RETURN    do nothing here, the caller will return an error//   ON_ERROR_UNKNOWN   defer the policy to policy saved in DbEnv::DbEnv//void DbEnv::runtime_error(const char *caller, int error, int error_policy){	if (error_policy == ON_ERROR_UNKNOWN)		error_policy = last_known_error_policy;	if (error_policy == ON_ERROR_THROW) {		// Creating and throwing the object in two separate		// statements seems to be necessary for HP compilers.		switch (error) {		case DB_LOCK_DEADLOCK:			{				DbDeadlockException dl_except(caller);				throw dl_except;			}			break;		case DB_RUNRECOVERY:			{				DbRunRecoveryException rr_except(caller);				throw rr_except;			}			break;		default:			{				DbException except(caller, error);				throw except;			}			break;		}	}}// Like DbEnv::runtime_error, but issue a DbMemoryException// based on the fact that this Dbt is not large enough.void DbEnv::runtime_error_dbt(const char *caller, Dbt *dbt, int error_policy){	if (error_policy == ON_ERROR_UNKNOWN)		error_policy = last_known_error_policy;	if (error_policy == ON_ERROR_THROW) {		// Creating and throwing the object in two separate		// statements seems to be necessary for HP compilers.		DbMemoryException except(caller, dbt);		throw except;	}}// Like DbEnv::runtime_error, but issue a DbLockNotGrantedException,// or a regular runtime error.// call regular runtime_error if itvoid DbEnv::runtime_error_lock_get(const char *caller, int error,    db_lockop_t op, db_lockmode_t mode, const Dbt *obj,    DbLock lock, int index, int error_policy){	if (error != DB_LOCK_NOTGRANTED) {		runtime_error(caller, error, error_policy);		return;	}	if (error_policy == ON_ERROR_UNKNOWN)		error_policy = last_known_error_policy;	if (error_policy == ON_ERROR_THROW) {		// Creating and throwing the object in two separate		// statements seems to be necessary for HP compilers.		DbLockNotGrantedException except(caller, op, mode,		    obj, lock, index);		throw except;	}}// static methodchar *DbEnv::strerror(int error){	return (db_strerror(error));}void DbEnv::_stream_error_function(const char *prefix, char *message){	// HP compilers need the extra casts, we don't know why.	if (error_stream_) {		if (prefix) {			(*error_stream_) << prefix << (const char *)": ";		}		if (message) {			(*error_stream_) << (const char *)message;		}		(*error_stream_) << (const char *)"\n";	}}// set methodsDBENV_METHOD_VOID(set_errfile, (FILE *errfile), (dbenv, errfile))DBENV_METHOD_VOID(set_errpfx, (const char *errpfx), (dbenv, errpfx))// We keep these alphabetical by field name,// for comparison with Java's list.//DBENV_METHOD(set_data_dir, (const char *dir), (dbenv, dir))DBENV_METHOD(set_encrypt, (const char *passwd, int flags),    (dbenv, passwd, flags))DBENV_METHOD(set_lg_bsize, (u_int32_t bsize), (dbenv, bsize))DBENV_METHOD(set_lg_dir, (const char *dir), (dbenv, dir))DBENV_METHOD(set_lg_max, (u_int32_t max), (dbenv, max))DBENV_METHOD(set_lg_regionmax, (u_int32_t regionmax), (dbenv, regionmax))DBENV_METHOD(set_lk_detect, (u_int32_t detect), (dbenv, detect))DBENV_METHOD(set_lk_max, (u_int32_t max), (dbenv, max))DBENV_METHOD(set_lk_max_lockers, (u_int32_t max_lockers), (dbenv, max_lockers))DBENV_METHOD(set_lk_max_locks, (u_int32_t max_locks), (dbenv, max_locks))DBENV_METHOD(set_lk_max_objects, (u_int32_t max_objects), (dbenv, max_objects))DBENV_METHOD(set_mp_mmapsize, (size_t mmapsize), (dbenv, mmapsize))DBENV_METHOD(set_tmp_dir, (const char *tmp_dir), (dbenv, tmp_dir))DBENV_METHOD(set_tx_max, (u_int32_t tx_max), (dbenv, tx_max))DBENV_METHOD_QUIET(set_alloc,    (db_malloc_fcn_type malloc_fcn, db_realloc_fcn_type realloc_fcn,    db_free_fcn_type free_fcn),    (dbenv, malloc_fcn, realloc_fcn, free_fcn))void DbEnv::set_app_private(void *value){	unwrap(this)->app_private = value;}DBENV_METHOD(set_cachesize,    (u_int32_t gbytes, u_int32_t bytes, int ncache),    (dbenv, gbytes, bytes, ncache))void DbEnv::set_errcall(void (*arg)(const char *, char *)){	DB_ENV *dbenv = unwrap(this);	// XXX	// We are casting from a function ptr declared with C++	// linkage to one (same arg types) declared with C	// linkage.  It's hard to imagine a pair of C/C++	// compilers from the same vendor for which this	// won't work.  Unfortunately, we can't use a	// intercept function like the others since the	// function does not have a (DbEnv*) as one of	// the args.  If this causes trouble, we can pull	// the same trick we use in Java, namely stuffing	// a (DbEnv*) pointer into the prefix.  We're	// avoiding this for the moment because it obfuscates.	//	(*(dbenv->set_errcall))(dbenv, (db_errcall_fcn_type)arg);}// Note: This actually behaves a bit like a static function,// since DB_ENV.db_errcall has no information about which// db_env triggered the call.  A user that has multiple DB_ENVs// will simply not be able to have different streams for each one.//void DbEnv::set_error_stream(__DB_OSTREAMCLASS *stream){	DB_ENV *dbenv = unwrap(this);	error_stream_ = stream;	dbenv->set_errcall(dbenv, (stream == 0) ? 0 :			   _stream_error_function_c);}int DbEnv::set_feedback(void (*arg)(DbEnv *, int, int)){	DB_ENV *dbenv = unwrap(this);	feedback_callback_ = arg;	return ((*(dbenv->set_feedback))(dbenv, _feedback_intercept_c));}DBENV_METHOD(set_flags, (u_int32_t flags, int onoff), (dbenv, flags, onoff))DBENV_METHOD(set_lk_conflicts, (u_int8_t *lk_conflicts, int lk_max),    (dbenv, lk_conflicts, lk_max))int DbEnv::set_paniccall(void (*arg)(DbEnv *, int)){	DB_ENV *dbenv = unwrap(this);	paniccall_callback_ = arg;	return ((*(dbenv->set_paniccall))(dbenv, _paniccall_intercept_c));}DBENV_METHOD(set_rpc_server,    (void *cl, char *host, long tsec, long ssec, u_int32_t flags),    (dbenv, cl, host, tsec, ssec, flags))DBENV_METHOD(set_shm_key, (long shm_key), (dbenv, shm_key))// Note: this changes from last_known_error_policy to error_policy()DBENV_METHOD(set_tas_spins, (u_int32_t arg), (dbenv, arg))int DbEnv::set_app_dispatch    (int (*arg)(DbEnv *, Dbt *, DbLsn *, db_recops)){	DB_ENV *dbenv = unwrap(this);	int ret;	app_dispatch_callback_ = arg;	if ((ret = (*(dbenv->set_app_dispatch))(dbenv,	    _app_dispatch_intercept_c)) != 0)		DB_ERROR("DbEnv::set_app_dispatch", ret, error_policy());	return (ret);}DBENV_METHOD(set_tx_timestamp, (time_t *timestamp), (dbenv, timestamp))DBENV_METHOD(set_verbose, (u_int32_t which, int onoff), (dbenv, which, onoff))int DbEnv::txn_begin(DbTxn *pid, DbTxn **tid, u_int32_t flags){	DB_ENV *env = unwrap(this);	DB_TXN *txn;	int ret;	ret = env->txn_begin(env, unwrap(pid), &txn, flags);	if (DB_RETOK_STD(ret))		*tid = new DbTxn(txn);	else		DB_ERROR("DbEnv::txn_begin", ret, error_policy());	return (ret);}DBENV_METHOD(txn_checkpoint, (u_int32_t kbyte, u_int32_t min, u_int32_t flags),    (dbenv, kbyte, min, flags))int DbEnv::txn_recover(DbPreplist *preplist, long count,    long *retp, u_int32_t flags){	DB_ENV *dbenv = unwrap(this);	DB_PREPLIST *c_preplist;	long i;	int ret;	/*	 * We need to allocate some local storage for the	 * returned preplist, and that requires us to do	 * our own argument validation.	 */	if (count <= 0)		ret = EINVAL;	else		ret = __os_malloc(dbenv, sizeof(DB_PREPLIST) * count,		    &c_preplist);	if (ret != 0) {		DB_ERROR("DbEnv::txn_recover", ret, error_policy());		return (ret);	}	if ((ret =	    dbenv->txn_recover(dbenv, c_preplist, count, retp, flags)) != 0) {		__os_free(dbenv, c_preplist);		DB_ERROR("DbEnv::txn_recover", ret, error_policy());		return (ret);	}	for (i = 0; i < *retp; i++) {		preplist[i].txn = new DbTxn();		preplist[i].txn->imp_ = wrap(c_preplist[i].txn);		memcpy(preplist[i].gid, c_preplist[i].gid,		    sizeof(preplist[i].gid));	}	__os_free(dbenv, c_preplist);	return (0);}DBENV_METHOD(txn_stat, (DB_TXN_STAT **statp, u_int32_t flags),    (dbenv, statp, flags))int DbEnv::set_rep_transport(u_int32_t myid,    int (*f_send)(DbEnv *, const Dbt *, const Dbt *, int, u_int32_t)){	DB_ENV *dbenv = unwrap(this);	int ret;	rep_send_callback_ = f_send;	if ((ret = dbenv->set_rep_transport(dbenv,	    myid, _rep_send_intercept_c)) != 0)		DB_ERROR("DbEnv::set_rep_transport", ret, error_policy());	return (ret);}DBENV_METHOD(rep_elect,    (int nsites, int pri, u_int32_t timeout, int *idp),    (dbenv, nsites, pri, timeout, idp))int DbEnv::rep_process_message(Dbt *control, Dbt *rec, int *idp){	DB_ENV *dbenv = unwrap(this);	int ret;	ret = dbenv->rep_process_message(dbenv, control, rec, idp);	if (!DB_RETOK_REPPMSG(ret))		DB_ERROR("DbEnv::rep_process_message", ret, error_policy());	return (ret);}DBENV_METHOD(rep_start,    (Dbt *cookie, u_int32_t flags),    (dbenv, (DBT *)cookie, flags))DBENV_METHOD(rep_stat, (DB_REP_STAT **statp, u_int32_t flags),    (dbenv, statp, flags))DBENV_METHOD(set_rep_limit, (u_int32_t gbytes, u_int32_t bytes),    (dbenv, gbytes, bytes))DBENV_METHOD(set_timeout,    (db_timeout_t timeout, u_int32_t flags),    (dbenv, timeout, flags))// static methodchar *DbEnv::version(int *major, int *minor, int *patch){	return (db_version(major, minor, patch));}// static methodDbEnv *DbEnv::wrap_DB_ENV(DB_ENV *dbenv){	DbEnv *wrapped_env = get_DbEnv(dbenv);	if (wrapped_env == NULL)		wrapped_env = new DbEnv(dbenv, 0);	return wrapped_env;}

⌨️ 快捷键说明

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