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

📄 db_cxx.h

📁 这是国外的resip协议栈
💻 H
📖 第 1 页 / 共 3 页
字号:
// developing a DB application - derive their application class from// this one, add application control logic.//// Note that if you use the default constructor, you must explicitly// call appinit() before any other db activity (e.g. opening files)//class _exported DbEnv{	friend class Db;	friend class DbLock;	friend class DbMpoolFile;public:	// After using this constructor, you can set any needed	// parameters for the environment using the set_* methods.	// Then call open() to finish initializing the environment	// and attaching it to underlying files.	//	DbEnv(u_int32_t flags);	virtual ~DbEnv();	// These methods match those in the C interface.	//	virtual int close(u_int32_t);	virtual int dbremove(DbTxn *txn, const char *name, const char *subdb,	    u_int32_t flags);	virtual int dbrename(DbTxn *txn, const char *name, const char *subdb,	    const char *newname, u_int32_t flags);	virtual void err(int, const char *, ...);	virtual void errx(const char *, ...);	virtual void *get_app_private() const;	virtual int get_home(const char **);	virtual int get_open_flags(u_int32_t *);	virtual int open(const char *, u_int32_t, int);	virtual int remove(const char *, u_int32_t);	virtual int set_alloc(db_malloc_fcn_type, db_realloc_fcn_type,			      db_free_fcn_type);	virtual void set_app_private(void *);	virtual int get_cachesize(u_int32_t *, u_int32_t *, int *);	virtual int set_cachesize(u_int32_t, u_int32_t, int);	virtual int get_data_dirs(const char ***);	virtual int set_data_dir(const char *);	virtual int get_encrypt_flags(u_int32_t *);	virtual int set_encrypt(const char *, u_int32_t);	virtual void set_errcall(			void (*)(const DbEnv *, const char *, const char *));	virtual void get_errfile(FILE **);	virtual void set_errfile(FILE *);	virtual void get_errpfx(const char **);	virtual void set_errpfx(const char *);	virtual int get_flags(u_int32_t *);	virtual int set_flags(u_int32_t, int);	virtual int set_feedback(void (*)(DbEnv *, int, int));	virtual int get_lg_bsize(u_int32_t *);	virtual int set_lg_bsize(u_int32_t);	virtual int get_lg_dir(const char **);	virtual int set_lg_dir(const char *);	virtual int get_lg_max(u_int32_t *);	virtual int set_lg_max(u_int32_t);	virtual int get_lg_regionmax(u_int32_t *);	virtual int set_lg_regionmax(u_int32_t);	virtual int get_lk_conflicts(const u_int8_t **, int *);	virtual int set_lk_conflicts(u_int8_t *, int);	virtual int get_lk_detect(u_int32_t *);	virtual int set_lk_detect(u_int32_t);	virtual int set_lk_max(u_int32_t);	virtual int get_lk_max_lockers(u_int32_t *);	virtual int set_lk_max_lockers(u_int32_t);	virtual int get_lk_max_locks(u_int32_t *);	virtual int set_lk_max_locks(u_int32_t);	virtual int get_lk_max_objects(u_int32_t *);	virtual int set_lk_max_objects(u_int32_t);	virtual int get_mp_mmapsize(size_t *);	virtual int set_mp_mmapsize(size_t);	virtual void set_msgcall(void (*)(const DbEnv *, const char *));	virtual void get_msgfile(FILE **);	virtual void set_msgfile(FILE *);	virtual int set_paniccall(void (*)(DbEnv *, int));	virtual int set_rpc_server(void *, char *, long, long, u_int32_t);	virtual int get_shm_key(long *);	virtual int set_shm_key(long);	virtual int get_timeout(db_timeout_t *, u_int32_t);	virtual int set_timeout(db_timeout_t, u_int32_t);	virtual int get_tmp_dir(const char **);	virtual int set_tmp_dir(const char *);	virtual int get_tas_spins(u_int32_t *);	virtual int set_tas_spins(u_int32_t);	virtual int get_tx_max(u_int32_t *);	virtual int set_tx_max(u_int32_t);	virtual int set_app_dispatch(int (*)(DbEnv *,	    Dbt *, DbLsn *, db_recops));	virtual int get_tx_timestamp(time_t *);	virtual int set_tx_timestamp(time_t *);	virtual int get_verbose(u_int32_t which, int *);	virtual int set_verbose(u_int32_t which, int);	// Version information.  A static method so it can be obtained anytime.	//	static char *version(int *major, int *minor, int *patch);	// Convert DB errors to strings	static char *strerror(int);	// If an error is detected and the error call function	// or stream is set, a message is dispatched or printed.	// If a prefix is set, each message is prefixed.	//	// You can use set_errcall() or set_errfile() above to control	// error functionality.  Alternatively, you can call	// set_error_stream() to force all errors to a C++ stream.	// It is unwise to mix these approaches.	//	virtual __DB_STD(ostream) *get_error_stream();	virtual void set_error_stream(__DB_STD(ostream) *);	virtual __DB_STD(ostream) *get_message_stream();	virtual void set_message_stream(__DB_STD(ostream) *);	// used internally	static void runtime_error(DbEnv *env, const char *caller, int err,				  int error_policy);	static void runtime_error_dbt(DbEnv *env, const char *caller, Dbt *dbt,				  int error_policy);	static void runtime_error_lock_get(DbEnv *env, const char *caller,				  int err, db_lockop_t op, db_lockmode_t mode,				  const Dbt *obj, DbLock lock, int index,				  int error_policy);	// Lock functions	//	virtual int lock_detect(u_int32_t flags, u_int32_t atype, int *aborted);	virtual int lock_get(u_int32_t locker, u_int32_t flags, const Dbt *obj,		     db_lockmode_t lock_mode, DbLock *lock);	virtual int lock_id(u_int32_t *idp);	virtual int lock_id_free(u_int32_t id);	virtual int lock_put(DbLock *lock);	virtual int lock_stat(DB_LOCK_STAT **statp, u_int32_t flags);	virtual int lock_stat_print(u_int32_t flags);	virtual int lock_vec(u_int32_t locker, u_int32_t flags,		     DB_LOCKREQ list[], int nlist, DB_LOCKREQ **elistp);	// Log functions	//	virtual int log_archive(char **list[], u_int32_t flags);	static int log_compare(const DbLsn *lsn0, const DbLsn *lsn1);	virtual int log_cursor(DbLogc **cursorp, u_int32_t flags);	virtual int log_file(DbLsn *lsn, char *namep, size_t len);	virtual int log_flush(const DbLsn *lsn);	virtual int log_put(DbLsn *lsn, const Dbt *data, u_int32_t flags);	virtual int log_stat(DB_LOG_STAT **spp, u_int32_t flags);	virtual int log_stat_print(u_int32_t flags);	// Mpool functions	//	virtual int memp_fcreate(DbMpoolFile **dbmfp, u_int32_t flags);	virtual int memp_register(int ftype,			  pgin_fcn_type pgin_fcn,			  pgout_fcn_type pgout_fcn);	virtual int memp_stat(DB_MPOOL_STAT		      **gsp, DB_MPOOL_FSTAT ***fsp, u_int32_t flags);	virtual int memp_stat_print(u_int32_t flags);	virtual int memp_sync(DbLsn *lsn);	virtual int memp_trickle(int pct, int *nwrotep);	// Transaction functions	//	virtual int txn_begin(DbTxn *pid, DbTxn **tid, u_int32_t flags);	virtual int txn_checkpoint(u_int32_t kbyte, u_int32_t min,			u_int32_t flags);	virtual int txn_recover(DbPreplist *preplist, long count,			long *retp, u_int32_t flags);	virtual int txn_stat(DB_TXN_STAT **statp, u_int32_t flags);	virtual int txn_stat_print(u_int32_t flags);	// Replication functions	//	virtual int rep_elect(int, int, int, u_int32_t, int *, u_int32_t);	virtual int rep_process_message(Dbt *, Dbt *, int *, DbLsn *);	virtual int rep_start(Dbt *, u_int32_t);	virtual int rep_stat(DB_REP_STAT **statp, u_int32_t flags);	virtual int rep_stat_print(u_int32_t flags);	virtual int get_rep_limit(u_int32_t *, u_int32_t *);	virtual int set_rep_limit(u_int32_t, u_int32_t);	virtual int set_rep_transport(int, int (*)(DbEnv *,	    const Dbt *, const Dbt *, const DbLsn *, int, u_int32_t));	// Conversion functions	//	virtual DB_ENV *get_DB_ENV()	{		return imp_;	}	virtual const DB_ENV *get_const_DB_ENV() const	{		return imp_;	}	static DbEnv* get_DbEnv(DB_ENV *dbenv)	{		return dbenv ? (DbEnv *)dbenv->api1_internal : 0;	}	static const DbEnv* get_const_DbEnv(const DB_ENV *dbenv)	{		return dbenv ? (const DbEnv *)dbenv->api1_internal : 0;	}	// For internal use only.	static DbEnv* wrap_DB_ENV(DB_ENV *dbenv);	// These are public only because they need to be called	// via C functions.  They should never be called by users	// of this class.	//	static int _app_dispatch_intercept(DB_ENV *env, DBT *dbt, DB_LSN *lsn,				       db_recops op);	static void _paniccall_intercept(DB_ENV *env, int errval);	static void _feedback_intercept(DB_ENV *env, int opcode, int pct);	static int _rep_send_intercept(DB_ENV *env,				       const DBT *cntrl, const DBT *data,				       const DB_LSN *lsn, int id,				       u_int32_t flags);	static void _stream_error_function(const DB_ENV *env,					   const char *prefix,					   const char *message);	static void _stream_message_function(const DB_ENV *env,					     const char *message);private:	void cleanup();	int initialize(DB_ENV *env);	int error_policy();	// For internal use only.	DbEnv(DB_ENV *, u_int32_t flags);	// no copying	DbEnv(const DbEnv &);	void operator = (const DbEnv &);	// instance data	DB_ENV *imp_;	int construct_error_;	u_int32_t construct_flags_;	__DB_STD(ostream) *error_stream_;	__DB_STD(ostream) *message_stream_;	int (*app_dispatch_callback_)(DbEnv *, Dbt *, DbLsn *, db_recops);	void (*error_callback_)(const DbEnv *, const char *, const char *);	void (*feedback_callback_)(DbEnv *, int, int);	void (*message_callback_)(const DbEnv *, const char *);	void (*paniccall_callback_)(DbEnv *, int);	int (*pgin_callback_)(DbEnv *dbenv, db_pgno_t pgno,			      void *pgaddr, Dbt *pgcookie);	int (*pgout_callback_)(DbEnv *dbenv, db_pgno_t pgno,			       void *pgaddr, Dbt *pgcookie);	int (*rep_send_callback_)(DbEnv *,	    const Dbt *, const Dbt *, const DbLsn *, int, u_int32_t);};//// Lock//class _exported DbLock{	friend class DbEnv;public:	DbLock();	DbLock(const DbLock &);	DbLock &operator = (const DbLock &);protected:	// We can add data to this class if needed	// since its contained class is not allocated by db.	// (see comment at top)	DbLock(DB_LOCK);	DB_LOCK lock_;};//// Log cursor//class _exported DbLogc : protected DB_LOGC{	friend class DbEnv;public:	int close(u_int32_t _flags);	int get(DbLsn *lsn, Dbt *data, u_int32_t _flags);private:	// No data is permitted in this class (see comment at top)	// Note: use Db::cursor() to get pointers to a Dbc,	// and call Dbc::close() rather than delete to release them.	//	DbLogc();	~DbLogc();	// no copying	DbLogc(const Dbc &);	DbLogc &operator = (const Dbc &);};//// Log sequence number//class _exported DbLsn : public DB_LSN{	friend class DbEnv;          // friendship needed to cast to base class	friend class DbLogc;         // friendship needed to cast to base class};//// Memory pool file//class _exported DbMpoolFile{	friend class DbEnv;	friend class Db;public:	int close(u_int32_t flags);	int get(db_pgno_t *pgnoaddr, u_int32_t flags, void *pagep);	int open(const char *file, u_int32_t flags, int mode, size_t pagesize);	int get_transactional(void);	int put(void *pgaddr, u_int32_t flags);	int set(void *pgaddr, u_int32_t flags);	int get_clear_len(u_int32_t *len);	int set_clear_len(u_int32_t len);	int get_fileid(u_int8_t *fileid);	int set_fileid(u_int8_t *fileid);	int get_flags(u_int32_t *flagsp);	int set_flags(u_int32_t flags, int onoff);	int get_ftype(int *ftype);	int set_ftype(int ftype);	int get_lsn_offset(int32_t *offsetp);	int set_lsn_offset(int32_t offset);	int get_maxsize(u_int32_t *gbytes, u_int32_t *bytes);	int set_maxsize(u_int32_t gbytes, u_int32_t bytes);	int get_pgcookie(DBT *dbt);	int set_pgcookie(DBT *dbt);	int get_priority(DB_CACHE_PRIORITY *priorityp);	int set_priority(DB_CACHE_PRIORITY priority);	int sync();	virtual DB_MPOOLFILE *get_DB_MPOOLFILE()	{		return imp_;	}	virtual const DB_MPOOLFILE *get_const_DB_MPOOLFILE() const	{		return imp_;	}private:	DB_MPOOLFILE *imp_;	// We can add data to this class if needed

⌨️ 快捷键说明

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