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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines