00001 #ifndef H_RPMGI
00002 #define H_RPMGI
00003
00008 #include <rpmlib.h>
00009 #include <rpmte.h>
00010 #include <rpmts.h>
00011 #include <fts.h>
00012 #include <argv.h>
00013
00016
00017
00018 extern int _rpmgi_debug;
00019
00020
00023 typedef enum rpmgiFlags_e {
00024 RPMGI_NONE = 0,
00025 RPMGI_TSADD = (1 << 0),
00026 RPMGI_TSORDER = (1 << 1),
00027 RPMGI_NOGLOB = (1 << 2),
00028 RPMGI_NOMANIFEST = (1 << 3),
00029 RPMGI_NOHEADER = (1 << 4)
00030 } rpmgiFlags;
00031
00032
00033 extern rpmgiFlags giFlags;
00034
00035 #if defined(_RPMGI_INTERNAL)
00036
00038 struct rpmgi_s {
00039
00040 rpmts ts;
00041 int tag;
00042
00043 const void * keyp;
00044 size_t keylen;
00046 rpmgiFlags flags;
00047 int active;
00048 int i;
00049 int errors;
00050
00051 const char * hdrPath;
00052
00053 Header h;
00055
00056 rpmtsi tsi;
00057
00058
00059 rpmdbMatchIterator mi;
00060
00061
00062 FD_t fd;
00063
00064 ARGV_t argv;
00065 int argc;
00066
00067 int ftsOpts;
00068
00069 FTS * ftsp;
00070
00071 FTSENT * fts;
00072
00073
00074 int nrefs;
00075 };
00076 #endif
00077
00078 #ifdef __cplusplus
00079 extern "C" {
00080 #endif
00081
00088
00089 rpmgi rpmgiUnlink ( rpmgi gi,
00090 const char * msg)
00091 ;
00092
00094
00095
00096 rpmgi XrpmgiUnlink ( rpmgi gi,
00097 const char * msg, const char * fn, unsigned ln)
00098 ;
00099
00100 #define rpmgiUnlink(_gi, _msg) XrpmgiUnlink(_gi, _msg, __FILE__, __LINE__)
00101
00108
00109 rpmgi rpmgiLink ( rpmgi gi, const char * msg)
00110 ;
00111
00113
00114 rpmgi XrpmgiLink ( rpmgi gi, const char * msg,
00115 const char * fn, unsigned ln)
00116 ;
00117 #define rpmgiLink(_gi, _msg) XrpmgiLink(_gi, _msg, __FILE__, __LINE__)
00118
00123
00124 rpmgi rpmgiFree( rpmgi gi)
00125
00126 ;
00127
00136
00137 rpmgi rpmgiNew(rpmts ts, int tag, const void * keyp,
00138 size_t keylen)
00139
00140 ;
00141
00147 rpmRC rpmgiNext( rpmgi gi)
00148
00149 ;
00150
00156
00157 const char * rpmgiHdrPath(rpmgi gi)
00158 ;
00159
00165
00166 Header rpmgiHeader( rpmgi gi)
00167 ;
00168
00174
00175 rpmts rpmgiTs( rpmgi gi)
00176 ;
00177
00186 rpmRC rpmgiSetArgs(rpmgi gi, ARGV_t argv,
00187 int ftsOpts, rpmgiFlags flags)
00188
00189 ;
00190
00196 int rpmgiNumErrors(rpmgi gi);
00197
00198
00199 #ifdef __cplusplus
00200 }
00201 #endif
00202
00203 #endif