gdbm.h   gdbm.h 
/* gdbm.h - The include file for dbm users. */ /* gdbm.h - The include file for dbm users. -*- c -*- */
/* This file is part of GDBM, the GNU data base manager, by Philip A. Nels on. /* This file is part of GDBM, the GNU data base manager, by Philip A. Nels on.
Copyright (C) 1990, 1991, 1993 Free Software Foundation, Inc. Copyright (C) 1990, 1991, 1993, 2011 Free Software Foundation, Inc.
GDBM is free software; you can redistribute it and/or modify GDBM is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option) the Free Software Foundation; either version 2, or (at your option)
any later version. any later version.
GDBM is distributed in the hope that it will be useful, GDBM is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GDBM; see the file COPYING. If not, write to along with GDBM. If not, see <http://www.gnu.org/licenses/>.
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
You may contact the author by: You may contact the author by:
e-mail: phil@cs.wwu.edu e-mail: phil@cs.wwu.edu
us-mail: Philip A. Nelson us-mail: Philip A. Nelson
Computer Science Department Computer Science Department
Western Washington University Western Washington University
Bellingham, WA 98226 Bellingham, WA 98226
*************************************************************************/ *************************************************************************/
/* Protection for multiple includes. */ /* Protection for multiple includes. */
#ifndef _GDBM_H_ #ifndef _GDBM_H_
#define _GDBM_H_ #define _GDBM_H_
/* Parameters to gdbm_open for READERS, WRITERS, and WRITERS who /* Parameters to gdbm_open for READERS, WRITERS, and WRITERS who
can create the database. */ can create the database. */
#define GDBM_READER 0 /* A reader. */ #define GDBM_READER 0 /* A reader. */
#define GDBM_WRITER 1 /* A writer. */ #define GDBM_WRITER 1 /* A writer. */
#define GDBM_WRCREAT 2 /* A writer. Create the db if neede #define GDBM_WRCREAT 2 /* A writer. Create the db if needed. */
d. */ #define GDBM_NEWDB 3 /* A writer. Always create a new db. */
#define GDBM_NEWDB 3 /* A writer. Always create a new db #define GDBM_OPENMASK 7 /* Mask for the above. */
. */
#define GDBM_FAST 0x10 /* Write fast! => No fsyncs. OBSOLETE. */ #define GDBM_FAST 0x10 /* Write fast! => No fsyncs. OBSOLETE. */
#define GDBM_SYNC 0x20 /* Sync operations to the disk. */ #define GDBM_SYNC 0x20 /* Sync operations to the disk. */
#define GDBM_NOLOCK 0x40 /* Don't do file locking operations. */ #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 /* Parameters to gdbm_store for simple insertion or replacement in the
case that the key is already in the database. */ case that the key is already in the database. */
#define GDBM_INSERT 0 /* Never replace old data with new. #define GDBM_INSERT 0 /* Never replace old data with new. */
*/ #define GDBM_REPLACE 1 /* Always 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. * / /* Parameters to gdbm_setopt, specifing the type of operation to perform. * /
#define GDBM_CACHESIZE 1 /* Set the cache size. */ #define GDBM_SETCACHESIZE 1 /* Set the cache size. */
#define GDBM_FASTMODE 2 /* Toggle fast mode. OBSOLETE. */ #define GDBM_FASTMODE 2 /* Toggle fast mode. OBSOLETE. */
#define GDBM_SYNCMODE 3 /* Turn on or off sync operations. */ #define GDBM_SETSYNCMODE 3 /* Turn on or off sync operations. */
#define GDBM_CENTFREE 4 /* Keep all free blocks in the header. */ #define GDBM_SETCENTFREE 4 /* Keep all free blocks in the header. */
#define GDBM_COALESCEBLKS 5 /* Attempt to coalesce free blocks. */ #define GDBM_SETCOALESCEBLKS 5 /* Attempt to coalesce free blocks. */
#define GDBM_SETMAXMAPSIZE 6 /* Set maximum mapped memory size */
#define GDBM_SETMMAP 7 /* Toggle mmap mode */
/* The data and key structure. This structure is defined for compatibility /* Compatibility defines: */
. */ #define GDBM_CACHESIZE GDBM_SETCACHESIZE
#define GDBM_SYNCMODE GDBM_SETSYNCMODE
#define GDBM_CENTFREE GDBM_SETCENTFREE
#define GDBM_COALESCEBLKS GDBM_SETCOALESCEBLKS
#define GDBM_GETFLAGS 8 /* Get gdbm_open flags */
#define GDBM_GETMMAP 9 /* Get mmap status */
#define GDBM_GETCACHESIZE 10 /* Get current cache side */
#define GDBM_GETSYNCMODE 11 /* Get synch mode */
#define GDBM_GETCENTFREE 12 /* Get "centfree" status */
#define GDBM_GETCOALESCEBLKS 13 /* Get free block coalesce status */
#define GDBM_GETMAXMAPSIZE 14 /* Get maximum mapped memory size */
#define GDBM_GETDBNAME 15 /* Return database file name */
/* The data and key structure. */
typedef struct { typedef struct {
char *dptr; char *dptr;
int dsize; int dsize;
} datum; } datum;
/* The file information header. This is good enough for most applications. */ /* The file information header. This is good enough for most applications. */
typedef struct {int dummy[10];} *GDBM_FILE; typedef struct gdbm_file_info *GDBM_FILE;
/* Determine if the C(++) compiler requires complete function prototype */
#ifndef __P
#if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)
#define __P(x) x
#else
#define __P(x) ()
#endif
#endif
/* External variable, the gdbm build release string. */ /* External variable, the gdbm build release string. */
extern char *gdbm_version; extern const char *gdbm_version;
#define GDBM_VERSION_MAJOR 1
#define GDBM_VERSION_MINOR 9
#define GDBM_VERSION_PATCH 1
extern int const gdbm_version_number[3];
/* GDBM C++ support */ /* GDBM C++ support */
#if defined(__cplusplus) || defined(c_plusplus) #if defined(__cplusplus) || defined(c_plusplus)
extern "C" { extern "C" {
#endif #endif
/* These are the routines! */ /* GDBM external functions. */
extern GDBM_FILE gdbm_open __P((char *, int, int, int, void (*)())); extern GDBM_FILE gdbm_open (const char *, int, int, int,
extern void gdbm_close __P((GDBM_FILE)); void (*)(const char *));
extern int gdbm_store __P((GDBM_FILE, datum, datum, int)); extern void gdbm_close (GDBM_FILE);
extern datum gdbm_fetch __P((GDBM_FILE, datum)); extern int gdbm_store (GDBM_FILE, datum, datum, int);
extern int gdbm_delete __P((GDBM_FILE, datum)); extern datum gdbm_fetch (GDBM_FILE, datum);
extern datum gdbm_firstkey __P((GDBM_FILE)); extern int gdbm_delete (GDBM_FILE, datum);
extern datum gdbm_nextkey __P((GDBM_FILE, datum)); extern datum gdbm_firstkey (GDBM_FILE);
extern int gdbm_reorganize __P((GDBM_FILE)); extern datum gdbm_nextkey (GDBM_FILE, datum);
extern void gdbm_sync __P((GDBM_FILE)); extern int gdbm_reorganize (GDBM_FILE);
extern int gdbm_exists __P((GDBM_FILE, datum)); extern void gdbm_sync (GDBM_FILE);
extern int gdbm_setopt __P((GDBM_FILE, int, int *, int)); extern int gdbm_exists (GDBM_FILE, datum);
extern int gdbm_fdesc __P((GDBM_FILE)); extern int gdbm_setopt (GDBM_FILE, int, void *, 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) #if defined(__cplusplus) || defined(c_plusplus)
} }
#endif #endif
#define GDBM_NO_ERROR 0 #define GDBM_NO_ERROR 0
#define GDBM_MALLOC_ERROR 1 #define GDBM_MALLOC_ERROR 1
#define GDBM_BLOCK_SIZE_ERROR 2 #define GDBM_BLOCK_SIZE_ERROR 2
#define GDBM_FILE_OPEN_ERROR 3 #define GDBM_FILE_OPEN_ERROR 3
#define GDBM_FILE_WRITE_ERROR 4 #define GDBM_FILE_WRITE_ERROR 4
skipping to change at line 121 skipping to change at line 140
#define GDBM_READER_CANT_DELETE 11 #define GDBM_READER_CANT_DELETE 11
#define GDBM_READER_CANT_STORE 12 #define GDBM_READER_CANT_STORE 12
#define GDBM_READER_CANT_REORGANIZE 13 #define GDBM_READER_CANT_REORGANIZE 13
#define GDBM_UNKNOWN_UPDATE 14 #define GDBM_UNKNOWN_UPDATE 14
#define GDBM_ITEM_NOT_FOUND 15 #define GDBM_ITEM_NOT_FOUND 15
#define GDBM_REORGANIZE_FAILED 16 #define GDBM_REORGANIZE_FAILED 16
#define GDBM_CANNOT_REPLACE 17 #define GDBM_CANNOT_REPLACE 17
#define GDBM_ILLEGAL_DATA 18 #define GDBM_ILLEGAL_DATA 18
#define GDBM_OPT_ALREADY_SET 19 #define GDBM_OPT_ALREADY_SET 19
#define GDBM_OPT_ILLEGAL 20 #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. */ typedef int gdbm_error; /* For compatibilities sake. */
extern gdbm_error gdbm_errno; extern gdbm_error gdbm_errno;
extern const char * const gdbm_errlist[];
/* extra prototypes */ /* extra prototypes */
/* GDBM C++ support */ /* GDBM C++ support */
#if defined(__cplusplus) || defined(c_plusplus) #if defined(__cplusplus) || defined(c_plusplus)
extern "C" { extern "C" {
#endif #endif
extern char *gdbm_strerror __P((gdbm_error)); extern const char *gdbm_strerror (gdbm_error);
extern int gdbm_version_cmp (int const a[], int const b[]);
#if defined(__cplusplus) || defined(c_plusplus) #if defined(__cplusplus) || defined(c_plusplus)
} }
#endif #endif
#endif #endif
 End of changes. 14 change blocks. 
49 lines changed or deleted 70 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/