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

📄 berkeleydb.pm

📁 BerkeleyDB源码
💻 PM
📖 第 1 页 / 共 3 页
字号:
package BerkeleyDB;#     Copyright (c) 1997-2005 Paul Marquess. All rights reserved.#     This program is free software; you can redistribute it and/or#     modify it under the same terms as Perl itself.## The documentation for this module is at the bottom of this file,# after the line __END__.BEGIN { require 5.004_04 }use strict;use Carp;use vars qw($VERSION @ISA @EXPORT $AUTOLOAD		$use_XSLoader);$VERSION = '0.27';require Exporter;#require DynaLoader;require AutoLoader;BEGIN {    $use_XSLoader = 1 ;    { local $SIG{__DIE__} ; eval { require XSLoader } ; }     if ($@) {        $use_XSLoader = 0 ;        require DynaLoader;        @ISA = qw(DynaLoader);    }}@ISA = qw(Exporter DynaLoader);# Items to export into callers namespace by default. Note: do not export# names by default without a very good reason. Use EXPORT_OK instead.# Do not simply export all your public functions/methods/constants.# NOTE -- Do not add to @EXPORT directly. It is written by mkconsts@EXPORT = qw(	DB_AFTER	DB_AGGRESSIVE	DB_ALREADY_ABORTED	DB_APPEND	DB_APPLY_LOGREG	DB_APP_INIT	DB_ARCH_ABS	DB_ARCH_DATA	DB_ARCH_LOG	DB_ARCH_REMOVE	DB_ASSOC_IMMUTABLE_KEY	DB_AUTO_COMMIT	DB_BEFORE	DB_BTREE	DB_BTREEMAGIC	DB_BTREEOLDVER	DB_BTREEVERSION	DB_BUFFER_SMALL	DB_CACHED_COUNTS	DB_CDB_ALLDB	DB_CHECKPOINT	DB_CHKSUM	DB_CHKSUM_SHA1	DB_CLIENT	DB_CL_WRITER	DB_COMMIT	DB_COMPACT_FLAGS	DB_CONSUME	DB_CONSUME_WAIT	DB_CREATE	DB_CURLSN	DB_CURRENT	DB_CXX_NO_EXCEPTIONS	DB_DEGREE_2	DB_DELETED	DB_DELIMITER	DB_DIRECT	DB_DIRECT_DB	DB_DIRECT_LOG	DB_DIRTY_READ	DB_DONOTINDEX	DB_DSYNC_LOG	DB_DUP	DB_DUPCURSOR	DB_DUPSORT	DB_DURABLE_UNKNOWN	DB_EID_BROADCAST	DB_EID_INVALID	DB_ENCRYPT	DB_ENCRYPT_AES	DB_ENV_APPINIT	DB_ENV_AUTO_COMMIT	DB_ENV_CDB	DB_ENV_CDB_ALLDB	DB_ENV_CREATE	DB_ENV_DBLOCAL	DB_ENV_DIRECT_DB	DB_ENV_DIRECT_LOG	DB_ENV_DSYNC_LOG	DB_ENV_FATAL	DB_ENV_LOCKDOWN	DB_ENV_LOCKING	DB_ENV_LOGGING	DB_ENV_LOG_AUTOREMOVE	DB_ENV_LOG_INMEMORY	DB_ENV_NOLOCKING	DB_ENV_NOMMAP	DB_ENV_NOPANIC	DB_ENV_OPEN_CALLED	DB_ENV_OVERWRITE	DB_ENV_PANIC_OK	DB_ENV_PRIVATE	DB_ENV_REGION_INIT	DB_ENV_REP_CLIENT	DB_ENV_REP_LOGSONLY	DB_ENV_REP_MASTER	DB_ENV_RPCCLIENT	DB_ENV_RPCCLIENT_GIVEN	DB_ENV_STANDALONE	DB_ENV_SYSTEM_MEM	DB_ENV_THREAD	DB_ENV_TIME_NOTGRANTED	DB_ENV_TXN	DB_ENV_TXN_NOSYNC	DB_ENV_TXN_NOT_DURABLE	DB_ENV_TXN_WRITE_NOSYNC	DB_ENV_USER_ALLOC	DB_ENV_YIELDCPU	DB_EXCL	DB_EXTENT	DB_FAST_STAT	DB_FCNTL_LOCKING	DB_FILEOPEN	DB_FILE_ID_LEN	DB_FIRST	DB_FIXEDLEN	DB_FLUSH	DB_FORCE	DB_FREELIST_ONLY	DB_FREE_SPACE	DB_GETREC	DB_GET_BOTH	DB_GET_BOTHC	DB_GET_BOTH_RANGE	DB_GET_RECNO	DB_HANDLE_LOCK	DB_HASH	DB_HASHMAGIC	DB_HASHOLDVER	DB_HASHVERSION	DB_IMMUTABLE_KEY	DB_INCOMPLETE	DB_INIT_CDB	DB_INIT_LOCK	DB_INIT_LOG	DB_INIT_MPOOL	DB_INIT_REP	DB_INIT_TXN	DB_INORDER	DB_JAVA_CALLBACK	DB_JOINENV	DB_JOIN_ITEM	DB_JOIN_NOSORT	DB_KEYEMPTY	DB_KEYEXIST	DB_KEYFIRST	DB_KEYLAST	DB_LAST	DB_LOCKDOWN	DB_LOCKMAGIC	DB_LOCKVERSION	DB_LOCK_ABORT	DB_LOCK_CONFLICT	DB_LOCK_DEADLOCK	DB_LOCK_DEFAULT	DB_LOCK_DUMP	DB_LOCK_EXPIRE	DB_LOCK_FREE_LOCKER	DB_LOCK_GET	DB_LOCK_GET_TIMEOUT	DB_LOCK_INHERIT	DB_LOCK_MAXLOCKS	DB_LOCK_MAXWRITE	DB_LOCK_MINLOCKS	DB_LOCK_MINWRITE	DB_LOCK_NORUN	DB_LOCK_NOTEXIST	DB_LOCK_NOTGRANTED	DB_LOCK_NOTHELD	DB_LOCK_NOWAIT	DB_LOCK_OLDEST	DB_LOCK_PUT	DB_LOCK_PUT_ALL	DB_LOCK_PUT_OBJ	DB_LOCK_PUT_READ	DB_LOCK_RANDOM	DB_LOCK_RECORD	DB_LOCK_REMOVE	DB_LOCK_RIW_N	DB_LOCK_RW_N	DB_LOCK_SET_TIMEOUT	DB_LOCK_SWITCH	DB_LOCK_TIMEOUT	DB_LOCK_TRADE	DB_LOCK_UPGRADE	DB_LOCK_UPGRADE_WRITE	DB_LOCK_YOUNGEST	DB_LOGC_BUF_SIZE	DB_LOGFILEID_INVALID	DB_LOGMAGIC	DB_LOGOLDVER	DB_LOGVERSION	DB_LOG_AUTOREMOVE	DB_LOG_BUFFER_FULL	DB_LOG_CHKPNT	DB_LOG_COMMIT	DB_LOG_DISK	DB_LOG_INMEMORY	DB_LOG_LOCKED	DB_LOG_NOCOPY	DB_LOG_NOT_DURABLE	DB_LOG_PERM	DB_LOG_RESEND	DB_LOG_SILENT_ERR	DB_LOG_WRNOSYNC	DB_MAX_PAGES	DB_MAX_RECORDS	DB_MPOOL_CLEAN	DB_MPOOL_CREATE	DB_MPOOL_DIRTY	DB_MPOOL_DISCARD	DB_MPOOL_EXTENT	DB_MPOOL_FREE	DB_MPOOL_LAST	DB_MPOOL_NEW	DB_MPOOL_NEW_GROUP	DB_MPOOL_NOFILE	DB_MPOOL_PRIVATE	DB_MPOOL_UNLINK	DB_MULTIPLE	DB_MULTIPLE_KEY	DB_MUTEXDEBUG	DB_MUTEXLOCKS	DB_MUTEX_ALLOCATED	DB_MUTEX_LOGICAL_LOCK	DB_MUTEX_SELF_BLOCK	DB_MUTEX_THREAD	DB_NEEDSPLIT	DB_NEXT	DB_NEXT_DUP	DB_NEXT_NODUP	DB_NOCOPY	DB_NODUPDATA	DB_NOLOCKING	DB_NOMMAP	DB_NOORDERCHK	DB_NOOVERWRITE	DB_NOPANIC	DB_NORECURSE	DB_NOSERVER	DB_NOSERVER_HOME	DB_NOSERVER_ID	DB_NOSYNC	DB_NOTFOUND	DB_NO_AUTO_COMMIT	DB_ODDFILESIZE	DB_OK_BTREE	DB_OK_HASH	DB_OK_QUEUE	DB_OK_RECNO	DB_OLD_VERSION	DB_OPEN_CALLED	DB_OPFLAGS_MASK	DB_ORDERCHKONLY	DB_OVERWRITE	DB_PAD	DB_PAGEYIELD	DB_PAGE_LOCK	DB_PAGE_NOTFOUND	DB_PANIC_ENVIRONMENT	DB_PERMANENT	DB_POSITION	DB_POSITIONI	DB_PREV	DB_PREV_NODUP	DB_PRINTABLE	DB_PRIORITY_DEFAULT	DB_PRIORITY_HIGH	DB_PRIORITY_LOW	DB_PRIORITY_VERY_HIGH	DB_PRIORITY_VERY_LOW	DB_PRIVATE	DB_PR_HEADERS	DB_PR_PAGE	DB_PR_RECOVERYTEST	DB_QAMMAGIC	DB_QAMOLDVER	DB_QAMVERSION	DB_QUEUE	DB_RDONLY	DB_RDWRMASTER	DB_READ_COMMITTED	DB_READ_UNCOMMITTED	DB_RECNO	DB_RECNUM	DB_RECORDCOUNT	DB_RECORD_LOCK	DB_RECOVER	DB_RECOVER_FATAL	DB_REGION_ANON	DB_REGION_INIT	DB_REGION_MAGIC	DB_REGION_NAME	DB_REGISTER	DB_REGISTERED	DB_RENAMEMAGIC	DB_RENUMBER	DB_REP_ANYWHERE	DB_REP_BULKOVF	DB_REP_CLIENT	DB_REP_CREATE	DB_REP_DUPMASTER	DB_REP_EGENCHG	DB_REP_HANDLE_DEAD	DB_REP_HOLDELECTION	DB_REP_IGNORE	DB_REP_ISPERM	DB_REP_LOCKOUT	DB_REP_LOGREADY	DB_REP_LOGSONLY	DB_REP_MASTER	DB_REP_NEWMASTER	DB_REP_NEWSITE	DB_REP_NOBUFFER	DB_REP_NOTPERM	DB_REP_OUTDATED	DB_REP_PAGEDONE	DB_REP_PERMANENT	DB_REP_REREQUEST	DB_REP_STARTUPDONE	DB_REP_UNAVAIL	DB_REVSPLITOFF	DB_RMW	DB_RPCCLIENT	DB_RPC_SERVERPROG	DB_RPC_SERVERVERS	DB_RUNRECOVERY	DB_SALVAGE	DB_SECONDARY_BAD	DB_SEQUENCE_OLDVER	DB_SEQUENCE_VERSION	DB_SEQUENTIAL	DB_SEQ_DEC	DB_SEQ_INC	DB_SEQ_RANGE_SET	DB_SEQ_WRAP	DB_SEQ_WRAPPED	DB_SET	DB_SET_LOCK_TIMEOUT	DB_SET_RANGE	DB_SET_RECNO	DB_SET_TXN_NOW	DB_SET_TXN_TIMEOUT	DB_SNAPSHOT	DB_STAT_ALL	DB_STAT_CLEAR	DB_STAT_LOCK_CONF	DB_STAT_LOCK_LOCKERS	DB_STAT_LOCK_OBJECTS	DB_STAT_LOCK_PARAMS	DB_STAT_MEMP_HASH	DB_STAT_SUBSYSTEM	DB_SURPRISE_KID	DB_SWAPBYTES	DB_SYSTEM_MEM	DB_TEMPORARY	DB_TEST_ELECTINIT	DB_TEST_ELECTSEND	DB_TEST_ELECTVOTE1	DB_TEST_ELECTVOTE2	DB_TEST_ELECTWAIT1	DB_TEST_ELECTWAIT2	DB_TEST_POSTDESTROY	DB_TEST_POSTLOG	DB_TEST_POSTLOGMETA	DB_TEST_POSTOPEN	DB_TEST_POSTRENAME	DB_TEST_POSTSYNC	DB_TEST_PREDESTROY	DB_TEST_PREOPEN	DB_TEST_PRERENAME	DB_TEST_SUBDB_LOCKS	DB_THREAD	DB_TIMEOUT	DB_TIME_NOTGRANTED	DB_TRUNCATE	DB_TXNMAGIC	DB_TXNVERSION	DB_TXN_ABORT	DB_TXN_APPLY	DB_TXN_BACKWARD_ALLOC	DB_TXN_BACKWARD_ROLL	DB_TXN_CKP	DB_TXN_FORWARD_ROLL	DB_TXN_LOCK	DB_TXN_LOCK_2PL	DB_TXN_LOCK_MASK	DB_TXN_LOCK_OPTIMIST	DB_TXN_LOCK_OPTIMISTIC	DB_TXN_LOG_MASK	DB_TXN_LOG_REDO	DB_TXN_LOG_UNDO	DB_TXN_LOG_UNDOREDO	DB_TXN_NOSYNC	DB_TXN_NOT_DURABLE	DB_TXN_NOWAIT	DB_TXN_OPENFILES	DB_TXN_POPENFILES	DB_TXN_PRINT	DB_TXN_REDO	DB_TXN_SYNC	DB_TXN_UNDO	DB_TXN_WRITE_NOSYNC	DB_UNKNOWN	DB_UNREF	DB_UPDATE_SECONDARY	DB_UPGRADE	DB_USE_ENVIRON	DB_USE_ENVIRON_ROOT	DB_VERB_CHKPOINT	DB_VERB_DEADLOCK	DB_VERB_RECOVERY	DB_VERB_REGISTER	DB_VERB_REPLICATION	DB_VERB_WAITSFOR	DB_VERIFY	DB_VERIFY_BAD	DB_VERIFY_FATAL	DB_VERSION_MAJOR	DB_VERSION_MINOR	DB_VERSION_MISMATCH	DB_VERSION_PATCH	DB_VERSION_STRING	DB_VRFY_FLAGMASK	DB_WRITECURSOR	DB_WRITELOCK	DB_WRITEOPEN	DB_WRNOSYNC	DB_XA_CREATE	DB_XIDDATASIZE	DB_YIELDCPU	DB_debug_FLAG	DB_user_BEGIN	REP_CONF_AUTOINIT	REP_CONF_BULK	REP_CONF_DELAYCLIENT	REP_CONF_NOWAIT	);sub AUTOLOAD {    my($constname);    ($constname = $AUTOLOAD) =~ s/.*:://;    my ($error, $val) = constant($constname);    Carp::croak $error if $error;    no strict 'refs';    *{$AUTOLOAD} = sub { $val };    goto &{$AUTOLOAD};}         #bootstrap BerkeleyDB $VERSION;if ($use_XSLoader)  { XSLoader::load("BerkeleyDB", $VERSION)}else  { bootstrap BerkeleyDB $VERSION }  # Preloaded methods go here.sub ParseParameters($@){    my ($default, @rest) = @_ ;    my (%got) = %$default ;    my (@Bad) ;    my ($key, $value) ;    my $sub = (caller(1))[3] ;    my %options = () ;    local ($Carp::CarpLevel) = 1 ;    # allow the options to be passed as a hash reference or    # as the complete hash.    if (@rest == 1) {        croak "$sub: parameter is not a reference to a hash"            if ref $rest[0] ne "HASH" ;        %options = %{ $rest[0] } ;    }    elsif (@rest >= 2 && @rest % 2 == 0) {        %options = @rest ;    }    elsif (@rest > 0) {	    croak "$sub: malformed option list";    }    while (($key, $value) = each %options)    {	$key =~ s/^-// ;        if (exists $default->{$key})          { $got{$key} = $value }        else	  { push (@Bad, $key) }    }        if (@Bad) {        my ($bad) = join(", ", @Bad) ;        croak "unknown key value(s) $bad" ;    }    return \%got ;}sub parseEncrypt{    my $got = shift ;    if (defined $got->{Encrypt}) {    	croak("Encrypt parameter must be a hash reference")            if !ref $got->{Encrypt} || ref $got->{Encrypt} ne 'HASH' ;	my %config = %{ $got->{Encrypt} } ;        my $p = BerkeleyDB::ParseParameters({					Password	=> undef,					Flags		=> undef,				}, %config);        croak("Must specify Password and Flags with Encrypt parameter")	    if ! (defined $p->{Password} && defined $p->{Flags});        $got->{"Enc_Passwd"} = $p->{Password};        $got->{"Enc_Flags"} = $p->{Flags};    }}use UNIVERSAL qw( isa ) ;sub env_remove{    # Usage:    #    #	$env = BerkeleyDB::env_remove    #			[ -Home		=> $path, ]    #			[ -Config	=> { name => value, name => value }    #			[ -Flags	=> DB_INIT_LOCK| ]    #			;    my $got = BerkeleyDB::ParseParameters({					Home		=> undef,					Flags     	=> 0,

⌨️ 快捷键说明

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