… | |
… | |
53 | #if DB_VERSION_MINOR >= 3 |
53 | #if DB_VERSION_MINOR >= 3 |
54 | typedef DB_SEQUENCE DB_SEQUENCE_ornull; |
54 | typedef DB_SEQUENCE DB_SEQUENCE_ornull; |
55 | typedef DB_SEQUENCE DB_SEQUENCE_ornuked; |
55 | typedef DB_SEQUENCE DB_SEQUENCE_ornuked; |
56 | #endif |
56 | #endif |
57 | |
57 | |
58 | typedef SV SV8; /* byte-sv, used for argument-checking */ |
|
|
59 | typedef char *bdb_filename; |
58 | typedef char *bdb_filename; |
60 | |
59 | |
61 | static SV *prepare_cb; |
60 | static SV *prepare_cb; |
62 | |
61 | |
63 | #if DB_VERSION_MINOR >= 6 |
62 | #if DB_VERSION_MINOR >= 6 |
… | |
… | |
350 | abort (); |
349 | abort (); |
351 | } |
350 | } |
352 | |
351 | |
353 | static int poll_cb (void); |
352 | static int poll_cb (void); |
354 | static void req_free (bdb_req req); |
353 | static void req_free (bdb_req req); |
355 | static void req_cancel (bdb_req req); |
|
|
356 | |
354 | |
357 | static int req_invoke (bdb_req req) |
355 | static int req_invoke (bdb_req req) |
358 | { |
356 | { |
359 | switch (req->type) |
357 | switch (req->type) |
360 | { |
358 | { |
… | |
… | |
1135 | } |
1133 | } |
1136 | |
1134 | |
1137 | return 0; |
1135 | return 0; |
1138 | } |
1136 | } |
1139 | |
1137 | |
1140 | /* stupid windoes defined CALLBACK as well */ |
1138 | /* stupid windows defines CALLBACK as well */ |
1141 | #undef CALLBACK |
1139 | #undef CALLBACK |
1142 | #define CALLBACK SV *cb = pop_callback (&items, ST (items - 1)); |
1140 | #define CALLBACK SV *cb = pop_callback (&items, ST (items - 1)); |
1143 | |
1141 | |
1144 | MODULE = BDB PACKAGE = BDB |
1142 | MODULE = BDB PACKAGE = BDB |
1145 | |
1143 | |
… | |
… | |
1911 | CALLBACK |
1909 | CALLBACK |
1912 | CODE: |
1910 | CODE: |
1913 | { |
1911 | { |
1914 | if (flags & DB_OPFLAGS_MASK != DB_SET && SvREADONLY (key)) |
1912 | if (flags & DB_OPFLAGS_MASK != DB_SET && SvREADONLY (key)) |
1915 | croak ("db_c_get was passed a read-only/constant 'key' argument but operation is not DB_SET"); |
1913 | croak ("db_c_get was passed a read-only/constant 'key' argument but operation is not DB_SET"); |
|
|
1914 | if (SvPOKp (key) && !sv_utf8_downgrade (key, 1)) |
|
|
1915 | croak ("argument \"%s\" must be byte/octet-encoded in %s", |
|
|
1916 | "key", |
|
|
1917 | "BDB::db_c_get"); |
1916 | |
1918 | |
1917 | { |
1919 | { |
1918 | dREQ (REQ_C_GET, 1); |
1920 | dREQ (REQ_C_GET, 1); |
1919 | req->dbc = dbc; |
1921 | req->dbc = dbc; |
1920 | req->uint1 = flags; |
1922 | req->uint1 = flags; |
… | |
… | |
1947 | CALLBACK |
1949 | CALLBACK |
1948 | CODE: |
1950 | CODE: |
1949 | { |
1951 | { |
1950 | if (flags & DB_OPFLAGS_MASK != DB_SET && SvREADONLY (key)) |
1952 | if (flags & DB_OPFLAGS_MASK != DB_SET && SvREADONLY (key)) |
1951 | croak ("db_c_pget was passed a read-only/constant 'key' argument but operation is not DB_SET"); |
1953 | croak ("db_c_pget was passed a read-only/constant 'key' argument but operation is not DB_SET"); |
|
|
1954 | if (SvPOKp (key) && !sv_utf8_downgrade (key, 1)) |
|
|
1955 | croak ("argument \"%s\" must be byte/octet-encoded in %s", |
|
|
1956 | "key", |
|
|
1957 | "BDB::db_c_pget"); |
1952 | |
1958 | |
1953 | { |
1959 | { |
1954 | dREQ (REQ_C_PGET, 1); |
1960 | dREQ (REQ_C_PGET, 1); |
1955 | req->dbc = dbc; |
1961 | req->dbc = dbc; |
1956 | req->uint1 = flags; |
1962 | req->uint1 = flags; |
… | |
… | |
2260 | CODE: |
2266 | CODE: |
2261 | RETVAL = db->set_cachesize (db, gbytes, bytes, ncache); |
2267 | RETVAL = db->set_cachesize (db, gbytes, bytes, ncache); |
2262 | OUTPUT: |
2268 | OUTPUT: |
2263 | RETVAL |
2269 | RETVAL |
2264 | |
2270 | |
|
|
2271 | int set_pagesize (DB *db, U32 pagesize) |
|
|
2272 | CODE: |
|
|
2273 | RETVAL = db->set_pagesize (db, pagesize); |
|
|
2274 | OUTPUT: |
|
|
2275 | RETVAL |
|
|
2276 | |
2265 | int set_flags (DB *db, U32 flags) |
2277 | int set_flags (DB *db, U32 flags) |
2266 | CODE: |
2278 | CODE: |
2267 | RETVAL = db->set_flags (db, flags); |
2279 | RETVAL = db->set_flags (db, flags); |
2268 | OUTPUT: |
2280 | OUTPUT: |
2269 | RETVAL |
2281 | RETVAL |