1/* GNU DBM - DataBase Manager include file 2 Copyright 1989, 1991 Free Software Foundation, Inc. 3 Written by Philip A. Nelson. 4 5This program is free software; you can redistribute it and/or modify 6it under the terms of the GNU General Public License as published by 7the Free Software Foundation; either version 2 of the License, or 8(at your option) any later version. 9 10This program is distributed in the hope that it will be useful, 11but WITHOUT ANY WARRANTY; without even the implied warranty of 12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13GNU General Public License for more details. 14 15You should have received a copy of the GNU General Public License 16along with this program; if not, write to the Free Software 17Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ 18 19/* You may contact the author by: 20 e-mail: phil@wwu.edu 21 us-mail: Philip A. Nelson 22 Computer Science Department 23 Western Washington University 24 Bellingham, WA 98226 25 phone: (206) 676-3035 26 27*************************************************************************/ 28 29/* Parameters to gdbm_open for READERS, WRITERS, and WRITERS who 30 can create the database. */ 31#define GDBM_READER 0 32#define GDBM_WRITER 1 33#define GDBM_WRCREAT 2 34#define GDBM_NEWDB 3 35 36/* Parameters to gdbm_store for simple insertion or replacement. */ 37#define GDBM_INSERT 0 38#define GDBM_REPLACE 1 39 40 41/* The data and key structure. This structure is defined for compatibility. */ 42typedef struct { 43 char *dptr; 44 int dsize; 45 } datum; 46 47 48/* The file information header. This is good enough for most applications. */ 49typedef struct {int dummy[10];} *GDBM_FILE; 50 51 52/* These are the routines! */ 53 54extern GDBM_FILE gdbm_open (); 55 56extern void gdbm_close (); 57 58extern datum gdbm_fetch (); 59 60extern int gdbm_store (); 61 62extern int gdbm_delete (); 63 64extern datum gdbm_firstkey (); 65 66extern datum gdbm_nextkey (); 67 68extern int gdbm_reorganize (); 69 70 71/* gdbm sends back the following error codes in the variable gdbm_errno. */ 72typedef enum { NO_ERROR, 73 MALLOC_ERROR, 74 BLOCK_SIZE_ERROR, 75 FILE_OPEN_ERROR, 76 FILE_WRITE_ERROR, 77 FILE_SEEK_ERROR, 78 FILE_READ_ERROR, 79 BAD_MAGIC_NUMBER, 80 EMPTY_DATABASE, 81 CANT_BE_READER, 82 CANT_BE_WRITER, 83 READER_CANT_RECOVER, 84 READER_CANT_DELETE, 85 READER_CANT_STORE, 86 READER_CANT_REORGANIZE, 87 UNKNOWN_UPDATE, 88 ITEM_NOT_FOUND, 89 REORGANIZE_FAILED, 90 CANNOT_REPLACE} 91 gdbm_error; 92