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.80 by root, Tue Feb 2 04:24:00 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,
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#endif
869
864 case REQ_ENV_LOG_ARCHIVE: 870 case REQ_ENV_LOG_ARCHIVE:
865 { 871 {
866 char **listp = 0; /* DB_ARCH_REMOVE does not touch listp, contrary to docs */ 872 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); 873 req->result = req->env->log_archive (req->env, &listp, req->uint1);
868 req->buf1 = (char *)listp; 874 req->buf1 = (char *)listp;
1014 next_pri = DEFAULT_PRI + PRI_BIAS; \ 1020 next_pri = DEFAULT_PRI + PRI_BIAS; \
1015 \ 1021 \
1016 if (callback && SvOK (callback)) \ 1022 if (callback && SvOK (callback)) \
1017 croak ("callback has illegal type or extra arguments"); \ 1023 croak ("callback has illegal type or extra arguments"); \
1018 \ 1024 \
1019 Newz (0, req, 1, bdb_cb); \ 1025 Newz (0, req, 1, bdb_cb); \
1020 if (!req) \ 1026 if (!req) \
1021 croak ("out of memory during bdb_req allocation"); \ 1027 croak ("out of memory during bdb_req allocation"); \
1022 \ 1028 \
1023 req->callback = SvREFCNT_inc (cb); \ 1029 req->callback = SvREFCNT_inc (cb); \
1024 req->type = (reqtype); \ 1030 req->type = (reqtype); \
1025 req->pri = req_pri; \ 1031 req->pri = req_pri; \
1026 if (rsvcnt >= 1) req->rsv1 = SvREFCNT_inc (ST (0)); \ 1032 if (rsvcnt >= 1) req->rsv1 = SvREFCNT_inc (ST (0)); \
1027 if (rsvcnt >= 2) req->rsv2 = SvREFCNT_inc (ST (1)); \ 1033 if (rsvcnt >= 2) req->rsv2 = SvREFCNT_inc (ST (1)); \
1028 (void)0; 1034 (void)0;
1029 1035
1030#define REQ_SEND \ 1036#define REQ_SEND \
1031 req_send (req) 1037 req_send (req)
1032 1038
1033#define SvPTR(var, arg, type, stash, class, nullok) \ 1039#define SvPTR(var, arg, type, stash, class, nullok) \
1034 if (!SvOK (arg)) \ 1040 if (!SvOK (arg)) \
1035 { \ 1041 { \
1036 if (nullok != 1) \ 1042 if (nullok != 1) \
1037 croak (# var " must be a " # class " object, not undef"); \ 1043 croak (# var " must be a " # class " object, not undef"); \
1038 \ 1044 \
1712 req->uint1 = flags; 1718 req->uint1 = flags;
1713 REQ_SEND; 1719 REQ_SEND;
1714} 1720}
1715 1721
1716void 1722void
1723db_env_lsn_reset (DB_ENV *env, bdb_filename db, U32 flags = 0, SV *callback = 0)
1724 PREINIT:
1725 CALLBACK
1726 CODE:
1727{
1728 dREQ (REQ_ENV_LSN_RESET, 1);
1729 req->env = env;
1730 req->uint1 = flags;
1731 req->buf1 = strdup_ornull (db);
1732 REQ_SEND;
1733}
1734
1735void
1717db_env_log_archive (DB_ENV *env, SV_mutable *listp, U32 flags = 0, SV *callback = 0) 1736db_env_log_archive (DB_ENV *env, SV_mutable *listp, U32 flags = 0, SV *callback = 0)
1718 PREINIT: 1737 PREINIT:
1719 CALLBACK 1738 CALLBACK
1720 CODE: 1739 CODE:
1721{ 1740{

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines