00001 #ifndef H_RPMDS
00002 #define H_RPMDS
00003
00009 #include "rpmps.h"
00010
00013
00014
00015 extern int _rpmds_debug;
00016
00017
00020
00021
00022 extern int _rpmds_nopromote;
00023
00024
00025 #if defined(_RPMDS_INTERNAL)
00026
00029 struct rpmds_s {
00030 int i;
00032
00033 const char * Type;
00034
00035 const char * DNEVR;
00037 rpmTag tagN;
00038
00039 Header h;
00041
00042 const char ** N;
00043
00044 const char ** EVR;
00045
00046 int_32 * Flags;
00047 rpmTagType Nt, EVRt, Ft;
00048 int_32 Count;
00049 int nopromote;
00050
00051 int nrefs;
00052 };
00053 #endif
00054
00055 #ifdef __cplusplus
00056 extern "C" {
00057 #endif
00058
00065
00066 rpmds rpmdsUnlink ( rpmds ds,
00067 const char * msg)
00068 ;
00069
00071
00072
00073 rpmds XrpmdsUnlink ( rpmds ds,
00074 const char * msg, const char * fn, unsigned ln)
00075 ;
00076
00077 #define rpmdsUnlink(_ds, _msg) XrpmdsUnlink(_ds, _msg, __FILE__, __LINE__)
00078
00085
00086 rpmds rpmdsLink ( rpmds ds, const char * msg)
00087 ;
00088
00090
00091 rpmds XrpmdsLink ( rpmds ds, const char * msg,
00092 const char * fn, unsigned ln)
00093 ;
00094 #define rpmdsLink(_ds, _msg) XrpmdsLink(_ds, _msg, __FILE__, __LINE__)
00095
00101
00102 rpmds rpmdsFree( rpmds ds)
00103 ;
00111
00112 rpmds rpmdsNew(Header h, rpmTag tagN, int scareMem)
00113 ;
00114
00121
00122 char * rpmdsNewDNEVR(const char * dspfx, const rpmds ds)
00123 ;
00124
00132
00133 rpmds rpmdsThis(Header h, rpmTag tagN, int_32 Flags)
00134 ;
00135
00144
00145 rpmds rpmdsSingle(rpmTag tagN, const char * N, const char * EVR, int_32 Flags)
00146 ;
00147
00153 int rpmdsCount( const rpmds ds)
00154 ;
00155
00161 int rpmdsIx( const rpmds ds)
00162 ;
00163
00170 int rpmdsSetIx( rpmds ds, int ix)
00171 ;
00172
00178
00179 extern const char * rpmdsDNEVR( const rpmds ds)
00180 ;
00181
00187
00188 extern const char * rpmdsN( const rpmds ds)
00189 ;
00190
00196
00197 extern const char * rpmdsEVR( const rpmds ds)
00198 ;
00199
00205 int_32 rpmdsFlags( const rpmds ds)
00206 ;
00207
00213 rpmTag rpmdsTagN( const rpmds ds)
00214 ;
00215
00229 int rpmdsNoPromote( const rpmds ds)
00230 ;
00231
00237 int rpmdsSetNoPromote( rpmds ds, int nopromote)
00238 ;
00239
00246
00247 void rpmdsNotify( rpmds ds, const char * where, int rc)
00248
00249 ;
00250
00251
00257 int rpmdsNext( rpmds ds)
00258 ;
00259
00265
00266 rpmds rpmdsInit( rpmds ds)
00267 ;
00268
00275 int rpmdsCompare(const rpmds A, const rpmds B)
00276 ;
00277
00286 void rpmdsProblem( rpmps ps, const char * pkgNEVR, const rpmds ds,
00287 const fnpyKey * suggestedKeys,
00288 int adding)
00289 ;
00290
00298 int rpmdsAnyMatchesDep (const Header h, const rpmds req, int nopromote)
00299 ;
00300
00309 int rpmdsNVRMatchesDep(const Header h, const rpmds req, int nopromote)
00310 ;
00311
00312 #ifdef __cplusplus
00313 }
00314 #endif
00315
00316 #endif