diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-08-03 14:34:31 +0000 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-08-03 14:34:31 +0000 |
commit | 08f5082e136af01d94e301e74a24b04e41193b6f (patch) | |
tree | 4e9ad3cb7fc219a0214eaaf6dc2de7d103d19958 /src/gdbm.h.in | |
parent | af33ca8d32eff17cb6cd20f68c9d643eda91ba7c (diff) | |
download | gdbm-08f5082e136af01d94e301e74a24b04e41193b6f.tar.gz gdbm-08f5082e136af01d94e301e74a24b04e41193b6f.tar.bz2 |
New file.
Diffstat (limited to 'src/gdbm.h.in')
-rw-r--r-- | src/gdbm.h.in | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/src/gdbm.h.in b/src/gdbm.h.in new file mode 100644 index 0000000..70de4e0 --- /dev/null +++ b/src/gdbm.h.in @@ -0,0 +1,144 @@ +/* gdbm.h - The include file for dbm users. -*- c -*- */ + +/* This file is part of GDBM, the GNU data base manager, by Philip A. Nelson. + Copyright (C) 1990, 1991, 1993, 2011 Free Software Foundation, Inc. + + GDBM is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GDBM is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GDBM. If not, see <http://www.gnu.org/licenses/>. + + You may contact the author by: + e-mail: phil@cs.wwu.edu + us-mail: Philip A. Nelson + Computer Science Department + Western Washington University + Bellingham, WA 98226 + +*************************************************************************/ + +/* Protection for multiple includes. */ +#ifndef _GDBM_H_ +#define _GDBM_H_ + +/* Parameters to gdbm_open for READERS, WRITERS, and WRITERS who + can create the database. */ +#define GDBM_READER 0 /* A reader. */ +#define GDBM_WRITER 1 /* A writer. */ +#define GDBM_WRCREAT 2 /* A writer. Create the db if needed. */ +#define GDBM_NEWDB 3 /* A writer. Always create a new db. */ +#define GDBM_FAST 0x10 /* Write fast! => No fsyncs. OBSOLETE. */ +#define GDBM_SYNC 0x20 /* Sync operations to the disk. */ +#define GDBM_NOLOCK 0x40 /* Don't do file locking operations. */ +#define GDBM_NOMMAP 0x80 /* Don't use mmap(). */ + +/* Parameters to gdbm_store for simple insertion or replacement in the + case that the key is already in the database. */ +#define GDBM_INSERT 0 /* Never replace old data with new. */ +#define GDBM_REPLACE 1 /* Always replace old data with new. */ + +/* Parameters to gdbm_setopt, specifing the type of operation to perform. */ +#define GDBM_CACHESIZE 1 /* Set the cache size. */ +#define GDBM_FASTMODE 2 /* Toggle fast mode. OBSOLETE. */ +#define GDBM_SYNCMODE 3 /* Turn on or off sync operations. */ +#define GDBM_CENTFREE 4 /* Keep all free blocks in the header. */ +#define GDBM_COALESCEBLKS 5 /* Attempt to coalesce free blocks. */ + +/* The data and key structure. */ +typedef struct { + char *dptr; + int dsize; + } datum; + + +/* The file information header. This is good enough for most applications. */ +typedef struct gdbm_file_info *GDBM_FILE; + +/* External variable, the gdbm build release string. */ +extern const char *gdbm_version; + +#define GDBM_VERSION_MAJOR @GDBM_VERSION_MAJOR@ +#define GDBM_VERSION_MINOR @GDBM_VERSION_MINOR@ +#define GDBM_VERSION_PATCH @GDBM_VERSION_PATCH@ + +extern int const gdbm_version_number[3]; + +/* GDBM C++ support */ +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +/* GDBM external functions. */ + +extern GDBM_FILE gdbm_open (const char *, int, int, int, + void (*)(const char *)); +extern void gdbm_close (GDBM_FILE); +extern int gdbm_store (GDBM_FILE, datum, datum, int); +extern datum gdbm_fetch (GDBM_FILE, datum); +extern int gdbm_delete (GDBM_FILE, datum); +extern datum gdbm_firstkey (GDBM_FILE); +extern datum gdbm_nextkey (GDBM_FILE, datum); +extern int gdbm_reorganize (GDBM_FILE); +extern void gdbm_sync (GDBM_FILE); +extern int gdbm_exists (GDBM_FILE, datum); +extern int gdbm_setopt (GDBM_FILE, int, int *, int); +extern int gdbm_fdesc (GDBM_FILE); +extern int gdbm_export (GDBM_FILE, const char *, int, int); +extern int gdbm_import (GDBM_FILE, const char *, int); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#define GDBM_NO_ERROR 0 +#define GDBM_MALLOC_ERROR 1 +#define GDBM_BLOCK_SIZE_ERROR 2 +#define GDBM_FILE_OPEN_ERROR 3 +#define GDBM_FILE_WRITE_ERROR 4 +#define GDBM_FILE_SEEK_ERROR 5 +#define GDBM_FILE_READ_ERROR 6 +#define GDBM_BAD_MAGIC_NUMBER 7 +#define GDBM_EMPTY_DATABASE 8 +#define GDBM_CANT_BE_READER 9 +#define GDBM_CANT_BE_WRITER 10 +#define GDBM_READER_CANT_DELETE 11 +#define GDBM_READER_CANT_STORE 12 +#define GDBM_READER_CANT_REORGANIZE 13 +#define GDBM_UNKNOWN_UPDATE 14 +#define GDBM_ITEM_NOT_FOUND 15 +#define GDBM_REORGANIZE_FAILED 16 +#define GDBM_CANNOT_REPLACE 17 +#define GDBM_ILLEGAL_DATA 18 +#define GDBM_OPT_ALREADY_SET 19 +#define GDBM_OPT_ILLEGAL 20 +#define GDBM_BYTE_SWAPPED 21 +#define GDBM_BAD_FILE_OFFSET 22 +#define GDBM_BAD_OPEN_FLAGS 23 +#define _GDBM_MIN_ERRNO 0 +#define _GDBM_MAX_ERRNO GDBM_BAD_OPEN_FLAGS +typedef int gdbm_error; /* For compatibilities sake. */ +extern gdbm_error gdbm_errno; +extern const char * const gdbm_errlist[]; + +/* extra prototypes */ + +/* GDBM C++ support */ +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern const char *gdbm_strerror (gdbm_error); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif |