home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 February / CHIP_2_98.iso / misc / src / rpm / lib / dbindex.h < prev    next >
C/C++ Source or Header  |  1997-09-17  |  975b  |  38 lines

  1. #ifndef H_DBINDEX
  2. #define H_DBINDEX
  3.  
  4. /* this will break if sizeof(int) != 4 */
  5.  
  6. #include <db.h>
  7.  
  8. typedef struct {
  9.     unsigned int recOffset;
  10.     unsigned int fileNumber;
  11. } dbiIndexRecord;
  12.  
  13. typedef struct {
  14.     dbiIndexRecord * recs;
  15.     int count;
  16. } dbiIndexSet;
  17.  
  18. typedef struct {
  19.     DB * db;
  20.     char * indexname;
  21. } dbiIndex;
  22.  
  23. dbiIndex * dbiOpenIndex(char * filename, int flags, int perms);
  24. void dbiCloseIndex(dbiIndex * dbi);
  25. void dbiSyncIndex(dbiIndex * dbi);
  26. int dbiSearchIndex(dbiIndex * dbi, char * str, dbiIndexSet * set);
  27.    /* -1 error, 0 success, 1 not found */
  28. int dbiUpdateIndex(dbiIndex * dbi, char * str, dbiIndexSet * set);
  29.    /* 0 on success */
  30. int dbiAppendIndexRecord(dbiIndexSet * set, dbiIndexRecord rec);
  31.    /* 0 on success - should never fail */
  32. int dbiRemoveIndexRecord(dbiIndexSet * set, dbiIndexRecord rec);
  33.    /* 0 on success - fails if rec is not found */
  34. dbiIndexSet dbiCreateIndexRecord(void);
  35. void dbiFreeIndexRecord(dbiIndexSet set);
  36.  
  37. #endif
  38.