… | |
… | |
102 | |
102 | |
103 | enum { |
103 | enum { |
104 | REQ_QUIT, |
104 | REQ_QUIT, |
105 | REQ_ENV_OPEN, REQ_ENV_CLOSE, REQ_ENV_TXN_CHECKPOINT, REQ_ENV_LOCK_DETECT, |
105 | REQ_ENV_OPEN, REQ_ENV_CLOSE, REQ_ENV_TXN_CHECKPOINT, REQ_ENV_LOCK_DETECT, |
106 | REQ_ENV_MEMP_SYNC, REQ_ENV_MEMP_TRICKLE, |
106 | REQ_ENV_MEMP_SYNC, REQ_ENV_MEMP_TRICKLE, |
107 | REQ_DB_OPEN, REQ_DB_CLOSE, REQ_DB_COMPACT, REQ_DB_SYNC, |
107 | REQ_DB_OPEN, REQ_DB_CLOSE, REQ_DB_COMPACT, REQ_DB_SYNC, REQ_DB_UPGRADE, |
108 | REQ_DB_PUT, REQ_DB_GET, REQ_DB_PGET, REQ_DB_DEL, REQ_DB_KEY_RANGE, |
108 | REQ_DB_PUT, REQ_DB_GET, REQ_DB_PGET, REQ_DB_DEL, REQ_DB_KEY_RANGE, |
109 | REQ_TXN_COMMIT, REQ_TXN_ABORT, REQ_TXN_FINISH, |
109 | REQ_TXN_COMMIT, REQ_TXN_ABORT, REQ_TXN_FINISH, |
110 | REQ_C_CLOSE, REQ_C_COUNT, REQ_C_PUT, REQ_C_GET, REQ_C_PGET, REQ_C_DEL, |
110 | REQ_C_CLOSE, REQ_C_COUNT, REQ_C_PUT, REQ_C_GET, REQ_C_PGET, REQ_C_DEL, |
111 | REQ_SEQ_OPEN, REQ_SEQ_CLOSE, REQ_SEQ_GET, REQ_SEQ_REMOVE, |
111 | REQ_SEQ_OPEN, REQ_SEQ_CLOSE, REQ_SEQ_GET, REQ_SEQ_REMOVE, |
112 | }; |
112 | }; |
… | |
… | |
737 | req->result = req->db->compact (req->db, req->txn, &req->dbt1, &req->dbt2, 0, req->uint1, 0); |
737 | req->result = req->db->compact (req->db, req->txn, &req->dbt1, &req->dbt2, 0, req->uint1, 0); |
738 | break; |
738 | break; |
739 | |
739 | |
740 | case REQ_DB_SYNC: |
740 | case REQ_DB_SYNC: |
741 | req->result = req->db->sync (req->db, req->uint1); |
741 | req->result = req->db->sync (req->db, req->uint1); |
|
|
742 | break; |
|
|
743 | |
|
|
744 | case REQ_DB_UPGRADE: |
|
|
745 | req->result = req->db->upgrade (req->db, req->buf1, req->uint1); |
742 | break; |
746 | break; |
743 | |
747 | |
744 | case REQ_DB_PUT: |
748 | case REQ_DB_PUT: |
745 | req->result = req->db->put (req->db, req->txn, &req->dbt1, &req->dbt2, req->uint1); |
749 | req->result = req->db->put (req->db, req->txn, &req->dbt1, &req->dbt2, req->uint1); |
746 | break; |
750 | break; |
… | |
… | |
1452 | req->uint1 = flags; |
1456 | req->uint1 = flags; |
1453 | REQ_SEND; |
1457 | REQ_SEND; |
1454 | } |
1458 | } |
1455 | |
1459 | |
1456 | void |
1460 | void |
|
|
1461 | db_upgrade (DB *db, octetstring file, U32 flags = 0, SV *callback = &PL_sv_undef) |
|
|
1462 | CODE: |
|
|
1463 | { |
|
|
1464 | dREQ (REQ_DB_SYNC); |
|
|
1465 | req->db = db; |
|
|
1466 | req->buf1 = strdup (file); |
|
|
1467 | req->uint1 = flags; |
|
|
1468 | REQ_SEND; |
|
|
1469 | } |
|
|
1470 | |
|
|
1471 | void |
1457 | db_key_range (DB *db, DB_TXN_ornull *txn, SV *key, SV *key_range, U32 flags = 0, SV *callback = &PL_sv_undef) |
1472 | db_key_range (DB *db, DB_TXN_ornull *txn, SV *key, SV *key_range, U32 flags = 0, SV *callback = &PL_sv_undef) |
1458 | CODE: |
1473 | CODE: |
1459 | { |
1474 | { |
1460 | dREQ (REQ_DB_KEY_RANGE); |
1475 | dREQ (REQ_DB_KEY_RANGE); |
1461 | req->db = db; |
1476 | req->db = db; |