home *** CD-ROM | disk | FTP | other *** search
/ Super Net 1 / SUPERNET_1.iso / PC / OTROS / EXTRAS / UUCODE / UUPC / TEST / UPC12ES4.ZIP / RNEWS / hdbm.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-10-30  |  1.1 KB  |  59 lines

  1. /* hdbm.h
  2.  *
  3.  * simple history database manager for UUPC news
  4.  *
  5.  * Author:  Kai Uwe Rommel <rommel@ars.muc.de>
  6.  * Created: Sun Aug 15 1993
  7.  */
  8.  
  9. /* $Id: HDBM.H 1.1 1993/09/05 10:56:49 rommel Exp $ */
  10.  
  11. /* $Log: HDBM.H $
  12.  * Revision 1.1  1993/09/05  10:56:49  rommel
  13.  * Initial revision
  14.  * */
  15.  
  16. #ifndef _HDBM_H
  17. #define _HDBM_H
  18.  
  19. #define DBM_MAGIC       4711
  20.  
  21. #define DBM_EXT_DBF     ".pag"
  22. #define DBM_EXT_IDX     ".dir"
  23.  
  24. #define DBM_INSERT    0
  25. #define DBM_REPLACE    1
  26.  
  27. typedef struct
  28. {
  29.   int magic;
  30.   int dbffile;
  31.   int idxfile;
  32.   void *idx;
  33.   FILE *stream;
  34.   char buffer[BUFSIZ];
  35.   char *value;
  36. }
  37. DBM;
  38.  
  39. typedef struct 
  40. {
  41.   char *dptr;
  42.   int dsize;
  43. datum;
  44.  
  45. extern datum nullitem;
  46.  
  47. extern DBM *dbm_open(char *name, int flags, int mode);
  48. extern void dbm_close(DBM *db);
  49. extern int dbm_store(DBM *db, datum key, datum val, int flag);
  50. extern int dbm_delete(DBM *db, datum key);
  51. extern datum dbm_fetch(DBM *db, datum key);
  52. extern datum dbm_firstkey(DBM *db);
  53. extern datum dbm_nextkey(DBM *db);
  54.  
  55. #endif /* _HDBM_H */
  56.  
  57. /* end of hdbm.h */
  58.