… | |
… | |
139 | enum { |
139 | enum { |
140 | REQ_QUIT, |
140 | REQ_QUIT, |
141 | REQ_ENV_OPEN, REQ_ENV_CLOSE, REQ_ENV_TXN_CHECKPOINT, REQ_ENV_LOCK_DETECT, |
141 | REQ_ENV_OPEN, REQ_ENV_CLOSE, REQ_ENV_TXN_CHECKPOINT, REQ_ENV_LOCK_DETECT, |
142 | REQ_ENV_MEMP_SYNC, REQ_ENV_MEMP_TRICKLE, REQ_ENV_DBREMOVE, REQ_ENV_DBRENAME, |
142 | REQ_ENV_MEMP_SYNC, REQ_ENV_MEMP_TRICKLE, REQ_ENV_DBREMOVE, REQ_ENV_DBRENAME, |
143 | REQ_DB_OPEN, REQ_DB_CLOSE, REQ_DB_COMPACT, REQ_DB_SYNC, REQ_DB_UPGRADE, |
143 | REQ_DB_OPEN, REQ_DB_CLOSE, REQ_DB_COMPACT, REQ_DB_SYNC, REQ_DB_UPGRADE, |
144 | REQ_DB_PUT, REQ_DB_GET, REQ_DB_PGET, REQ_DB_DEL, REQ_DB_KEY_RANGE, |
144 | REQ_DB_PUT, REQ_DB_EXISTS, REQ_DB_GET, REQ_DB_PGET, REQ_DB_DEL, REQ_DB_KEY_RANGE, |
145 | REQ_TXN_COMMIT, REQ_TXN_ABORT, REQ_TXN_FINISH, |
145 | REQ_TXN_COMMIT, REQ_TXN_ABORT, REQ_TXN_FINISH, |
146 | REQ_C_CLOSE, REQ_C_COUNT, REQ_C_PUT, REQ_C_GET, REQ_C_PGET, REQ_C_DEL, |
146 | REQ_C_CLOSE, REQ_C_COUNT, REQ_C_PUT, REQ_C_GET, REQ_C_PGET, REQ_C_DEL, |
147 | REQ_SEQ_OPEN, REQ_SEQ_CLOSE, REQ_SEQ_GET, REQ_SEQ_REMOVE, |
147 | REQ_SEQ_OPEN, REQ_SEQ_CLOSE, REQ_SEQ_GET, REQ_SEQ_REMOVE, |
148 | }; |
148 | }; |
149 | |
149 | |
… | |
… | |
806 | req->result = req->db->upgrade (req->db, req->buf1, req->uint1); |
806 | req->result = req->db->upgrade (req->db, req->buf1, req->uint1); |
807 | break; |
807 | break; |
808 | |
808 | |
809 | case REQ_DB_PUT: |
809 | case REQ_DB_PUT: |
810 | req->result = req->db->put (req->db, req->txn, &req->dbt1, &req->dbt2, req->uint1); |
810 | req->result = req->db->put (req->db, req->txn, &req->dbt1, &req->dbt2, req->uint1); |
|
|
811 | break; |
|
|
812 | |
|
|
813 | case REQ_DB_EXISTS: |
|
|
814 | req->result = req->db->exists (req->db, req->txn, &req->dbt1, req->uint1); |
811 | break; |
815 | break; |
812 | |
816 | |
813 | case REQ_DB_GET: |
817 | case REQ_DB_GET: |
814 | req->result = req->db->get (req->db, req->txn, &req->dbt1, &req->dbt3, req->uint1); |
818 | req->result = req->db->get (req->db, req->txn, &req->dbt1, &req->dbt3, req->uint1); |
815 | break; |
819 | break; |
… | |
… | |
1690 | req->uint1 = flags; |
1694 | req->uint1 = flags; |
1691 | REQ_SEND; |
1695 | REQ_SEND; |
1692 | } |
1696 | } |
1693 | |
1697 | |
1694 | void |
1698 | void |
|
|
1699 | db_exists (DB *db, DB_TXN_ornull *txn, SV *key, U32 flags = 0, SV *callback = 0) |
|
|
1700 | PREINIT: |
|
|
1701 | CALLBACK |
|
|
1702 | CODE: |
|
|
1703 | { |
|
|
1704 | dREQ (REQ_DB_EXISTS); |
|
|
1705 | req->db = db; |
|
|
1706 | req->txn = txn; |
|
|
1707 | req->uint1 = flags; |
|
|
1708 | sv_to_dbt (&req->dbt1, key); |
|
|
1709 | REQ_SEND; |
|
|
1710 | } |
|
|
1711 | |
|
|
1712 | void |
1695 | db_get (DB *db, DB_TXN_ornull *txn, SV *key, SV *data, U32 flags = 0, SV *callback = 0) |
1713 | db_get (DB *db, DB_TXN_ornull *txn, SV *key, SV *data, U32 flags = 0, SV *callback = 0) |
1696 | PREINIT: |
1714 | PREINIT: |
1697 | CALLBACK |
1715 | CALLBACK |
1698 | CODE: |
1716 | CODE: |
1699 | if (SvREADONLY (data)) |
1717 | if (SvREADONLY (data)) |