ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/BDB/BDB.xs
(Generate patch)

Comparing BDB/BDB.xs (file contents):
Revision 1.78 by root, Thu Oct 11 05:02:53 2012 UTC vs.
Revision 1.81 by root, Tue Feb 2 04:28:06 2016 UTC

161 161
162enum { 162enum {
163 REQ_QUIT, 163 REQ_QUIT,
164 REQ_ENV_OPEN, REQ_ENV_CLOSE, REQ_ENV_TXN_CHECKPOINT, REQ_ENV_LOCK_DETECT, 164 REQ_ENV_OPEN, REQ_ENV_CLOSE, REQ_ENV_TXN_CHECKPOINT, REQ_ENV_LOCK_DETECT,
165 REQ_ENV_MEMP_SYNC, REQ_ENV_MEMP_TRICKLE, REQ_ENV_DBREMOVE, REQ_ENV_DBRENAME, 165 REQ_ENV_MEMP_SYNC, REQ_ENV_MEMP_TRICKLE, REQ_ENV_DBREMOVE, REQ_ENV_DBRENAME,
166 REQ_ENV_LOG_ARCHIVE, 166 REQ_ENV_LOG_ARCHIVE, REQ_ENV_LSN_RESET, REQ_ENV_FILEID_RESET,
167 REQ_DB_OPEN, REQ_DB_CLOSE, REQ_DB_COMPACT, REQ_DB_SYNC, REQ_DB_VERIFY, REQ_DB_UPGRADE, 167 REQ_DB_OPEN, REQ_DB_CLOSE, REQ_DB_COMPACT, REQ_DB_SYNC, REQ_DB_VERIFY, REQ_DB_UPGRADE,
168 REQ_DB_PUT, REQ_DB_EXISTS, REQ_DB_GET, REQ_DB_PGET, REQ_DB_DEL, REQ_DB_KEY_RANGE, 168 REQ_DB_PUT, REQ_DB_EXISTS, REQ_DB_GET, REQ_DB_PGET, REQ_DB_DEL, REQ_DB_KEY_RANGE,
169 REQ_TXN_COMMIT, REQ_TXN_ABORT, REQ_TXN_FINISH, 169 REQ_TXN_COMMIT, REQ_TXN_ABORT, REQ_TXN_FINISH,
170 REQ_C_CLOSE, REQ_C_COUNT, REQ_C_PUT, REQ_C_GET, REQ_C_PGET, REQ_C_DEL, 170 REQ_C_CLOSE, REQ_C_COUNT, REQ_C_PUT, REQ_C_GET, REQ_C_PGET, REQ_C_DEL,
171 REQ_SEQ_OPEN, REQ_SEQ_CLOSE, REQ_SEQ_GET, REQ_SEQ_REMOVE, 171 REQ_SEQ_OPEN, REQ_SEQ_CLOSE, REQ_SEQ_GET, REQ_SEQ_REMOVE,
859 case REQ_SEQ_REMOVE: 859 case REQ_SEQ_REMOVE:
860 req->result = req->seq->remove (req->seq, req->txn, req->uint1); 860 req->result = req->seq->remove (req->seq, req->txn, req->uint1);
861 break; 861 break;
862#endif 862#endif
863 863
864#if DBVER >= 407
865 case REQ_ENV_LSN_RESET:
866 req->result = req->env->lsn_reset (req->env, req->buf1, req->uint1);
867 break;
868
869 case REQ_ENV_FILEID_RESET:
870 req->result = req->env->fileid_reset (req->env, req->buf1, req->uint1);
871 break;
872#endif
873
864 case REQ_ENV_LOG_ARCHIVE: 874 case REQ_ENV_LOG_ARCHIVE:
865 { 875 {
866 char **listp = 0; /* DB_ARCH_REMOVE does not touch listp, contrary to docs */ 876 char **listp = 0; /* DB_ARCH_REMOVE does not touch listp, contrary to docs */
867 req->result = req->env->log_archive (req->env, &listp, req->uint1); 877 req->result = req->env->log_archive (req->env, &listp, req->uint1);
868 req->buf1 = (char *)listp; 878 req->buf1 = (char *)listp;
1014 next_pri = DEFAULT_PRI + PRI_BIAS; \ 1024 next_pri = DEFAULT_PRI + PRI_BIAS; \
1015 \ 1025 \
1016 if (callback && SvOK (callback)) \ 1026 if (callback && SvOK (callback)) \
1017 croak ("callback has illegal type or extra arguments"); \ 1027 croak ("callback has illegal type or extra arguments"); \
1018 \ 1028 \
1019 Newz (0, req, 1, bdb_cb); \ 1029 Newz (0, req, 1, bdb_cb); \
1020 if (!req) \ 1030 if (!req) \
1021 croak ("out of memory during bdb_req allocation"); \ 1031 croak ("out of memory during bdb_req allocation"); \
1022 \ 1032 \
1023 req->callback = SvREFCNT_inc (cb); \ 1033 req->callback = SvREFCNT_inc (cb); \
1024 req->type = (reqtype); \ 1034 req->type = (reqtype); \
1025 req->pri = req_pri; \ 1035 req->pri = req_pri; \
1026 if (rsvcnt >= 1) req->rsv1 = SvREFCNT_inc (ST (0)); \ 1036 if (rsvcnt >= 1) req->rsv1 = SvREFCNT_inc (ST (0)); \
1027 if (rsvcnt >= 2) req->rsv2 = SvREFCNT_inc (ST (1)); \ 1037 if (rsvcnt >= 2) req->rsv2 = SvREFCNT_inc (ST (1)); \
1028 (void)0; 1038 (void)0;
1029 1039
1030#define REQ_SEND \ 1040#define REQ_SEND \
1031 req_send (req) 1041 req_send (req)
1032 1042
1033#define SvPTR(var, arg, type, stash, class, nullok) \ 1043#define SvPTR(var, arg, type, stash, class, nullok) \
1034 if (!SvOK (arg)) \ 1044 if (!SvOK (arg)) \
1035 { \ 1045 { \
1036 if (nullok != 1) \ 1046 if (nullok != 1) \
1037 croak (# var " must be a " # class " object, not undef"); \ 1047 croak (# var " must be a " # class " object, not undef"); \
1038 \ 1048 \
1712 req->uint1 = flags; 1722 req->uint1 = flags;
1713 REQ_SEND; 1723 REQ_SEND;
1714} 1724}
1715 1725
1716void 1726void
1727db_env_lsn_reset (DB_ENV *env, bdb_filename db, U32 flags = 0, SV *callback = 0)
1728 ALIAS:
1729 db_env_fileid_reset = 1
1730 PREINIT:
1731 CALLBACK
1732 CODE:
1733{
1734 dREQ (ix ? REQ_ENV_FILEID_RESET : REQ_ENV_LSN_RESET, 1);
1735 req->env = env;
1736 req->uint1 = flags;
1737 req->buf1 = strdup_ornull (db);
1738 REQ_SEND;
1739}
1740
1741void
1717db_env_log_archive (DB_ENV *env, SV_mutable *listp, U32 flags = 0, SV *callback = 0) 1742db_env_log_archive (DB_ENV *env, SV_mutable *listp, U32 flags = 0, SV *callback = 0)
1718 PREINIT: 1743 PREINIT:
1719 CALLBACK 1744 CALLBACK
1720 CODE: 1745 CODE:
1721{ 1746{

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines