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
00031 const char * Type;
00032
00033 const char * DNEVR;
00034
00035 Header h;
00036
00037 const char ** N;
00038
00039 const char ** EVR;
00040
00041 int_32 * Flags;
00042
00043 uint_32 * Color;
00044
00045 int_32 * Refs;
00046 rpmTag tagN;
00047 rpmTagType Nt, EVRt, Ft;
00048 int_32 Count;
00049 int i;
00050 unsigned l;
00051 unsigned u;
00052 int nopromote;
00053
00054 int nrefs;
00055 };
00056 #endif
00057
00058 #ifdef __cplusplus
00059 extern "C" {
00060 #endif
00061
00068
00069 rpmds rpmdsUnlink ( rpmds ds,
00070 const char * msg)
00071 ;
00072
00074
00075
00076 rpmds XrpmdsUnlink ( rpmds ds,
00077 const char * msg, const char * fn, unsigned ln)
00078 ;
00079
00080 #define rpmdsUnlink(_ds, _msg) XrpmdsUnlink(_ds, _msg, __FILE__, __LINE__)
00081
00088
00089 rpmds rpmdsLink ( rpmds ds, const char * msg)
00090 ;
00091
00093
00094 rpmds XrpmdsLink ( rpmds ds, const char * msg,
00095 const char * fn, unsigned ln)
00096 ;
00097 #define rpmdsLink(_ds, _msg) XrpmdsLink(_ds, _msg, __FILE__, __LINE__)
00098
00104
00105 rpmds rpmdsFree( rpmds ds)
00106 ;
00114
00115 rpmds rpmdsNew(Header h, rpmTag tagN, int scareMem)
00116 ;
00117
00124
00125 char * rpmdsNewDNEVR(const char * dspfx, const rpmds ds)
00126 ;
00127
00135
00136 rpmds rpmdsThis(Header h, rpmTag tagN, int_32 Flags)
00137 ;
00138
00147
00148 rpmds rpmdsSingle(rpmTag tagN, const char * N, const char * EVR, int_32 Flags)
00149 ;
00150
00156 int rpmdsCount( const rpmds ds)
00157 ;
00158
00164 int rpmdsIx( const rpmds ds)
00165 ;
00166
00173 int rpmdsSetIx( rpmds ds, int ix)
00174 ;
00175
00181
00182 extern const char * rpmdsDNEVR( const rpmds ds)
00183 ;
00184
00190
00191 extern const char * rpmdsN( const rpmds ds)
00192 ;
00193
00199
00200 extern const char * rpmdsEVR( const rpmds ds)
00201 ;
00202
00208 int_32 rpmdsFlags( const rpmds ds)
00209 ;
00210
00216 rpmTag rpmdsTagN( const rpmds ds)
00217 ;
00218
00232 int rpmdsNoPromote( const rpmds ds)
00233 ;
00234
00241 int rpmdsSetNoPromote( rpmds ds, int nopromote)
00242 ;
00243
00249 uint_32 rpmdsColor( const rpmds ds)
00250 ;
00251
00258 uint_32 rpmdsSetColor( const rpmds ds, uint_32 color)
00259 ;
00260
00266 int_32 rpmdsRefs( const rpmds ds)
00267 ;
00268
00275 int_32 rpmdsSetRefs( const rpmds ds, int_32 refs)
00276 ;
00277
00284
00285 void rpmdsNotify( rpmds ds, const char * where, int rc)
00286
00287 ;
00288
00289
00295 int rpmdsNext( rpmds ds)
00296 ;
00297
00303
00304 rpmds rpmdsInit( rpmds ds)
00305 ;
00306
00313
00314 int rpmdsFind(rpmds ds, rpmds ods)
00315 ;
00316
00323
00324 int rpmdsMerge( rpmds * dsp, rpmds ods)
00325 ;
00326
00333 int rpmdsCompare(const rpmds A, const rpmds B)
00334 ;
00335
00344 void rpmdsProblem( rpmps ps, const char * pkgNEVR, const rpmds ds,
00345 const fnpyKey * suggestedKeys,
00346 int adding)
00347 ;
00348
00356 int rpmdsAnyMatchesDep (const Header h, const rpmds req, int nopromote)
00357 ;
00358
00366 int rpmdsNVRMatchesDep(const Header h, const rpmds req, int nopromote)
00367 ;
00368
00369 #ifdef __cplusplus
00370 }
00371 #endif
00372
00373 #endif