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

  1. #ifndef _H_OLDRPMDB
  2. #define _H_OLDRPMDB
  3.  
  4. #include <gdbm.h>
  5.  
  6. #include "oldheader.h"
  7.  
  8. typedef enum
  9.   {
  10.     RPMDB_NONE, RPMDB_GDBM_ERROR, RPMDB_NO_MEMORY
  11.   }
  12. rpm_error;
  13.  
  14. struct oldrpmdb
  15.   {
  16.     GDBM_FILE packages;
  17.     GDBM_FILE nameIndex;
  18.     GDBM_FILE pathIndex;
  19.     GDBM_FILE groupIndex;
  20.     GDBM_FILE iconIndex;
  21.     GDBM_FILE postIndex;
  22.     rpm_error rpmdbError;
  23.     gdbm_error gdbmError;
  24.   };
  25.  
  26. enum oldrpmdbFreeType
  27.   {
  28.     RPMDB_NOFREE, RPMDB_FREENAME, RPMDB_FREEALL
  29.   };
  30.  
  31. struct oldrpmdbLabel
  32.   {
  33.     char *name, *version, *release;
  34.     enum oldrpmdbFreeType freeType;
  35.     struct oldrpmdbLabel *next;
  36.     int fileNumber;        /* -1 means invalid */
  37.   };
  38.  
  39. struct oldrpmdbPackageInfo
  40.   {
  41.     char *name, *version, *release;
  42.     char *labelstr;
  43.     unsigned int installTime, buildTime;
  44.     unsigned int size;
  45.     char *description;
  46.     char *distribution;
  47.     char *vendor;
  48.     char *buildHost;
  49.     char *preamble;
  50.     char *copyright;
  51.     unsigned int fileCount;
  52.     struct oldrpmFileInfo *files;
  53.   };
  54.  
  55. #define RPMDB_READER 1
  56.  
  57. int oldrpmdbOpen (struct oldrpmdb *oldrpmdb);
  58. void oldrpmdbClose (struct oldrpmdb *oldrpmdb);
  59. struct oldrpmdbLabel *oldrpmdbGetAllLabels (struct oldrpmdb *oldrpmdb);
  60. struct oldrpmdbLabel *oldrpmdbFindPackagesByFile (struct oldrpmdb *oldrpmdb, char *path);
  61. struct oldrpmdbLabel *oldrpmdbFindPackagesByLabel (struct oldrpmdb *oldrpmdb,
  62.                         struct oldrpmdbLabel label);
  63.  
  64. char *oldrpmdbGetPackageGroup (struct oldrpmdb *oldrpmdb, 
  65.                    struct oldrpmdbLabel label);
  66. char *oldrpmdbGetPackagePostun (struct oldrpmdb *oldrpmdb, 
  67.                 struct oldrpmdbLabel label);
  68. char *oldrpmdbGetPackagePreun (struct oldrpmdb *oldrpmdb, 
  69.                 struct oldrpmdbLabel label);
  70. char *oldrpmdbGetPackageGif (struct oldrpmdb *oldrpmdb, struct oldrpmdbLabel label,
  71.                  int *size);
  72. int oldrpmdbGetPackageInfo (struct oldrpmdb *oldrpmdb, struct oldrpmdbLabel label,
  73.                 struct oldrpmdbPackageInfo *pinfo);
  74. void oldrpmdbFreePackageInfo (struct oldrpmdbPackageInfo package);
  75.  
  76. struct oldrpmdbLabel oldrpmdbMakeLabel (char *name, char *version, char *release,
  77.                 int fileNumber, enum oldrpmdbFreeType freeType);
  78. void oldrpmdbFreeLabelList (struct oldrpmdbLabel *list);
  79. void oldrpmdbFreeLabel (struct oldrpmdbLabel label);
  80. int oldrpmdbWasError (struct oldrpmdb *oldrpmdb);
  81.  
  82. int oldrpmdbLabelstrToLabel (char *str, int length, struct oldrpmdbLabel *label);
  83. char *oldrpmdbLabelToLabelstr (struct oldrpmdbLabel label, int withFileNum);
  84. int oldrpmdbLabelCmp (struct oldrpmdbLabel *one, struct oldrpmdbLabel *two);
  85.  
  86. void oldrpmdbSetPrefix (char *new);
  87.  
  88. #endif
  89.