00001 #ifndef H_RPMGI
00002 #define H_RPMGI
00003
00008 #include <rpmlib.h>
00009 #include <rpmds.h>
00010 #include <rpmte.h>
00011 #include <rpmts.h>
00012 #include <fts.h>
00013 #include <argv.h>
00014
00017
00018
00019 extern int _rpmgi_debug;
00020
00021
00024 typedef enum rpmgiFlags_e {
00025 RPMGI_NONE = 0,
00026 RPMGI_TSADD = (1 << 0),
00027 RPMGI_TSORDER = (1 << 1),
00028 RPMGI_NOGLOB = (1 << 2),
00029 RPMGI_NOMANIFEST = (1 << 3),
00030 RPMGI_NOHEADER = (1 << 4),
00031 RPMGI_ERASING = (1 << 5)
00032 } rpmgiFlags;
00033
00036
00037 extern rpmgiFlags giFlags;
00038
00039 #if defined(_RPMGI_INTERNAL)
00040
00042 struct rpmgi_s {
00043
00044 rpmts ts;
00045 int (*tsOrder) (rpmts ts);
00046 int tag;
00047
00048 const void * keyp;
00049 size_t keylen;
00051 rpmgiFlags flags;
00052 int active;
00053 int i;
00054
00055 const char * hdrPath;
00056
00057 Header h;
00059
00060 rpmtsi tsi;
00061
00062
00063 rpmdbMatchIterator mi;
00064
00065
00066 FD_t fd;
00067
00068 ARGV_t argv;
00069 int argc;
00070
00071 int ftsOpts;
00072
00073 FTS * ftsp;
00074
00075 FTSENT * fts;
00076
00077 rpmRC (*walkPathFilter) (rpmgi gi);
00078
00079 rpmRC (*stash) (rpmgi gi, Header h);
00080
00081
00082 int nrefs;
00083 };
00084 #endif
00085
00086 #ifdef __cplusplus
00087 extern "C" {
00088 #endif
00089
00092
00099
00100 rpmgi rpmgiUnlink ( rpmgi gi,
00101 const char * msg)
00102 ;
00103
00105
00106
00107 rpmgi XrpmgiUnlink ( rpmgi gi,
00108 const char * msg, const char * fn, unsigned ln)
00109 ;
00110
00111 #define rpmgiUnlink(_gi, _msg) XrpmgiUnlink(_gi, _msg, __FILE__, __LINE__)
00112
00119
00120 rpmgi rpmgiLink ( rpmgi gi, const char * msg)
00121 ;
00122
00124
00125
00126 rpmgi XrpmgiLink ( rpmgi gi, const char * msg,
00127 const char * fn, unsigned ln)
00128 ;
00129
00130 #define rpmgiLink(_gi, _msg) XrpmgiLink(_gi, _msg, __FILE__, __LINE__)
00131
00136
00137 rpmgi rpmgiFree( rpmgi gi)
00138
00139 ;
00140
00149
00150 rpmgi rpmgiNew(rpmts ts, int tag, const void * keyp,
00151 size_t keylen)
00152
00153 ;
00154
00160 rpmRC rpmgiNext( rpmgi gi)
00161
00162 ;
00163
00169
00170 const char * rpmgiHdrPath( rpmgi gi)
00171 ;
00172
00178
00179 Header rpmgiHeader( rpmgi gi)
00180 ;
00181
00187
00188 rpmts rpmgiTs( rpmgi gi)
00189 ;
00190
00196 const char * rpmgiEscapeSpaces(const char * s)
00197 ;
00198
00207 rpmRC rpmgiSetArgs( rpmgi gi, ARGV_t argv,
00208 int ftsOpts, rpmgiFlags flags)
00209
00210 ;
00211
00214 #ifdef __cplusplus
00215 }
00216 #endif
00217
00218 #endif