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 int_32 BT;
00047 rpmTag tagN;
00048 rpmTagType Nt, EVRt, Ft;
00049 int_32 Count;
00050 int i;
00051 unsigned l;
00052 unsigned u;
00053 int nopromote;
00054
00055 int nrefs;
00056 };
00057 #endif
00058
00059 #ifdef __cplusplus
00060 extern "C" {
00061 #endif
00062
00069
00070 rpmds rpmdsUnlink ( rpmds ds,
00071 const char * msg)
00072 ;
00073
00075
00076
00077 rpmds XrpmdsUnlink ( rpmds ds,
00078 const char * msg, const char * fn, unsigned ln)
00079 ;
00080
00081 #define rpmdsUnlink(_ds, _msg) XrpmdsUnlink(_ds, _msg, __FILE__, __LINE__)
00082
00089
00090 rpmds rpmdsLink ( rpmds ds, const char * msg)
00091 ;
00092
00094
00095 rpmds XrpmdsLink ( rpmds ds, const char * msg,
00096 const char * fn, unsigned ln)
00097 ;
00098 #define rpmdsLink(_ds, _msg) XrpmdsLink(_ds, _msg, __FILE__, __LINE__)
00099
00105
00106 rpmds rpmdsFree( rpmds ds)
00107 ;
00115
00116 rpmds rpmdsNew(Header h, rpmTag tagN, int flags)
00117 ;
00118
00125
00126 char * rpmdsNewDNEVR(const char * dspfx, const rpmds ds)
00127 ;
00128
00136
00137 rpmds rpmdsThis(Header h, rpmTag tagN, int_32 Flags)
00138 ;
00139
00148
00149 rpmds rpmdsSingle(rpmTag tagN, const char * N, const char * EVR, int_32 Flags)
00150 ;
00151
00157 int rpmdsCount( const rpmds ds)
00158 ;
00159
00165 int rpmdsIx( const rpmds ds)
00166 ;
00167
00174 int rpmdsSetIx( rpmds ds, int ix)
00175 ;
00176
00182
00183 extern const char * rpmdsDNEVR( const rpmds ds)
00184 ;
00185
00191
00192 extern const char * rpmdsN( const rpmds ds)
00193 ;
00194
00200
00201 extern const char * rpmdsEVR( const rpmds ds)
00202 ;
00203
00209 int_32 rpmdsFlags( const rpmds ds)
00210 ;
00211
00217 rpmTag rpmdsTagN( const rpmds ds)
00218 ;
00219
00225 time_t rpmdsBT( const rpmds ds)
00226 ;
00227
00233 time_t rpmdsSetBT( const rpmds ds, time_t BT)
00234 ;
00235
00249 int rpmdsNoPromote( const rpmds ds)
00250 ;
00251
00258 int rpmdsSetNoPromote( rpmds ds, int nopromote)
00259 ;
00260
00266 uint_32 rpmdsColor( const rpmds ds)
00267 ;
00268
00275 uint_32 rpmdsSetColor( const rpmds ds, uint_32 color)
00276 ;
00277
00283 int_32 rpmdsRefs( const rpmds ds)
00284 ;
00285
00292 int_32 rpmdsSetRefs( const rpmds ds, int_32 refs)
00293 ;
00294
00301
00302 void rpmdsNotify( rpmds ds, const char * where, int rc)
00303
00304 ;
00305
00306
00312 int rpmdsNext( rpmds ds)
00313 ;
00314
00320
00321 rpmds rpmdsInit( rpmds ds)
00322 ;
00323
00330
00331 int rpmdsFind(rpmds ds, rpmds ods)
00332 ;
00333
00340
00341 int rpmdsMerge( rpmds * dsp, rpmds ods)
00342 ;
00343
00350 int rpmdsCompare(const rpmds A, const rpmds B)
00351 ;
00352
00361 void rpmdsProblem( rpmps ps, const char * pkgNEVR, const rpmds ds,
00362 const fnpyKey * suggestedKeys,
00363 int adding)
00364 ;
00365
00373 int rpmdsAnyMatchesDep (const Header h, const rpmds req, int nopromote)
00374 ;
00375
00383 int rpmdsNVRMatchesDep(const Header h, const rpmds req, int nopromote)
00384 ;
00385
00386 #ifdef __cplusplus
00387 }
00388 #endif
00389
00390 #endif