Commit | Line | Data |
a0d0e21e |
1 | #include "EXTERN.h" |
2 | #include "perl.h" |
3 | #include "XSUB.h" |
4 | #include "sdbm/sdbm.h" |
5 | |
6 | typedef DBM* SDBM_File; |
7 | #define sdbm_TIEHASH(dbtype,filename,flags,mode) sdbm_open(filename,flags,mode) |
8 | #define sdbm_FETCH(db,key) sdbm_fetch(db,key) |
9 | #define sdbm_STORE(db,key,value,flags) sdbm_store(db,key,value,flags) |
10 | #define sdbm_DELETE(db,key) sdbm_delete(db,key) |
f4b9d880 |
11 | #define sdbm_EXISTS(db,key) sdbm_exists(db,key) |
a0d0e21e |
12 | #define sdbm_FIRSTKEY(db) sdbm_firstkey(db) |
13 | #define sdbm_NEXTKEY(db,key) sdbm_nextkey(db) |
14 | |
15 | |
16 | MODULE = SDBM_File PACKAGE = SDBM_File PREFIX = sdbm_ |
17 | |
18 | SDBM_File |
19 | sdbm_TIEHASH(dbtype, filename, flags, mode) |
20 | char * dbtype |
21 | char * filename |
22 | int flags |
23 | int mode |
24 | |
25 | void |
26 | sdbm_DESTROY(db) |
27 | SDBM_File db |
28 | CODE: |
29 | sdbm_close(db); |
30 | |
31 | datum |
32 | sdbm_FETCH(db, key) |
33 | SDBM_File db |
34 | datum key |
35 | |
36 | int |
37 | sdbm_STORE(db, key, value, flags = DBM_REPLACE) |
38 | SDBM_File db |
39 | datum key |
40 | datum value |
41 | int flags |
42 | CLEANUP: |
43 | if (RETVAL) { |
44 | if (RETVAL < 0 && errno == EPERM) |
45 | croak("No write permission to sdbm file"); |
748a9306 |
46 | croak("sdbm store returned %d, errno %d, key \"%s\"", |
a0d0e21e |
47 | RETVAL,errno,key.dptr); |
48 | sdbm_clearerr(db); |
49 | } |
50 | |
51 | int |
52 | sdbm_DELETE(db, key) |
53 | SDBM_File db |
54 | datum key |
55 | |
f4b9d880 |
56 | int |
57 | sdbm_EXISTS(db,key) |
58 | SDBM_File db |
59 | datum key |
60 | |
a0d0e21e |
61 | datum |
62 | sdbm_FIRSTKEY(db) |
63 | SDBM_File db |
64 | |
65 | datum |
66 | sdbm_NEXTKEY(db, key) |
67 | SDBM_File db |
68 | datum key |
69 | |
70 | int |
71 | sdbm_error(db) |
72 | SDBM_File db |
73 | |
74 | int |
75 | sdbm_clearerr(db) |
76 | SDBM_File db |
77 | |