home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / rpm-2.2.6-bin.lha / include / rpm / dbindex.h next >
C/C++ Source or Header  |  1996-10-12  |  949b  |  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. } dbIndexRecord;
  12.  
  13. typedef struct {
  14.     dbIndexRecord * recs;
  15.     int count;
  16. } dbIndexSet;
  17.  
  18. typedef struct {
  19.     DB * db;
  20.     char * indexname;
  21. } dbIndex;
  22.  
  23. dbIndex * openDBIndex(char * filename, int flags, int perms);
  24. void closeDBIndex(dbIndex * dbi);
  25. void syncDBIndex(dbIndex * dbi);
  26. int searchDBIndex(dbIndex * dbi, char * str, dbIndexSet * set);
  27.    /* -1 error, 0 success, 1 not found */
  28. int updateDBIndex(dbIndex * dbi, char * str, dbIndexSet * set);
  29.    /* 0 on success */
  30. int appendDBIndexRecord(dbIndexSet * set, dbIndexRecord rec);
  31.    /* 0 on success - should never fail */
  32. int removeDBIndexRecord(dbIndexSet * set, dbIndexRecord rec);
  33.    /* 0 on success - fails if rec is not found */
  34. dbIndexSet createDBIndexRecord(void);
  35. void freeDBIndexRecord(dbIndexSet set);
  36.  
  37. #endif
  38.