lib/rpmds.h

Go to the documentation of this file.
00001 #ifndef H_RPMDS
00002 #define H_RPMDS
00003 
00009 #include "rpmps.h"
00010 
00013 /*@-exportlocal@*/
00014 /*@unchecked@*/
00015 extern int _rpmds_debug;
00016 /*@=exportlocal@*/
00017 
00020 /*@-exportlocal@*/
00021 /*@unchecked@*/
00022 extern int _rpmds_nopromote;
00023 /*@=exportlocal@*/
00024 
00025 #if defined(_RPMDS_INTERNAL)
00026 
00029 struct rpmds_s {
00030 /*@observer@*/
00031     const char * Type;          
00032 /*@only@*/ /*@null@*/
00033     const char * DNEVR;         
00034 /*@refcounted@*/ /*@null@*/
00035     Header h;                   
00036 /*@only@*/
00037     const char ** N;            
00038 /*@only@*/ /*@null@*/
00039     const char ** EVR;          
00040 /*@only@*/ /*@null@*/
00041     int_32 * Flags;             
00042 /*@only@*/ /*@null@*/
00043     uint_32 * Color;            
00044 /*@only@*/ /*@null@*/
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 /*@refs@*/
00055     int nrefs;                  
00056 };
00057 #endif  /* _RPMDS_INTERNAL */
00058 
00059 #ifdef __cplusplus
00060 extern "C" {
00061 #endif
00062 
00069 /*@unused@*/ /*@null@*/
00070 rpmds rpmdsUnlink (/*@killref@*/ /*@only@*/ /*@null@*/ rpmds ds,
00071                 /*@null@*/ const char * msg)
00072         /*@modifies ds @*/;
00073 
00075 /*@-exportlocal@*/
00076 /*@null@*/
00077 rpmds XrpmdsUnlink (/*@killref@*/ /*@only@*/ /*@null@*/ rpmds ds,
00078                 /*@null@*/ const char * msg, const char * fn, unsigned ln)
00079         /*@modifies ds @*/;
00080 /*@=exportlocal@*/
00081 #define rpmdsUnlink(_ds, _msg)  XrpmdsUnlink(_ds, _msg, __FILE__, __LINE__)
00082 
00089 /*@unused@*/ /*@newref@*/ /*@null@*/
00090 rpmds rpmdsLink (/*@null@*/ rpmds ds, /*@null@*/ const char * msg)
00091         /*@modifies ds @*/;
00092 
00094 /*@newref@*/ /*@null@*/
00095 rpmds XrpmdsLink (/*@null@*/ rpmds ds, /*@null@*/ const char * msg,
00096                 const char * fn, unsigned ln)
00097         /*@modifies ds @*/;
00098 #define rpmdsLink(_ds, _msg)    XrpmdsLink(_ds, _msg, __FILE__, __LINE__)
00099 
00105 /*@null@*/
00106 rpmds rpmdsFree(/*@killref@*/ /*@only@*/ /*@null@*/ rpmds ds)
00107         /*@modifies ds@*/;
00116 /*@null@*/
00117 rpmds rpmdsNew(Header h, rpmTag tagN, int flags)
00118         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
00119         /*@modifies h, rpmGlobalMacroContext, fileSystem, internalState @*/;
00120 
00127 /*@only@*/
00128 char * rpmdsNewDNEVR(const char * dspfx, const rpmds ds)
00129         /*@*/;
00130 
00138 /*@null@*/
00139 rpmds rpmdsThis(Header h, rpmTag tagN, int_32 Flags)
00140         /*@*/;
00141 
00150 /*@null@*/
00151 rpmds rpmdsSingle(rpmTag tagN, const char * N, const char * EVR, int_32 Flags)
00152         /*@*/;
00153 
00159 int rpmdsCount(/*@null@*/ const rpmds ds)
00160         /*@*/;
00161 
00167 int rpmdsIx(/*@null@*/ const rpmds ds)
00168         /*@*/;
00169 
00176 int rpmdsSetIx(/*@null@*/ rpmds ds, int ix)
00177         /*@modifies ds @*/;
00178 
00184 /*@observer@*/ /*@null@*/
00185 extern const char * rpmdsDNEVR(/*@null@*/ const rpmds ds)
00186         /*@*/;
00187 
00193 /*@observer@*/ /*@null@*/
00194 extern const char * rpmdsN(/*@null@*/ const rpmds ds)
00195         /*@*/;
00196 
00202 /*@observer@*/ /*@null@*/
00203 extern const char * rpmdsEVR(/*@null@*/ const rpmds ds)
00204         /*@*/;
00205 
00211 int_32 rpmdsFlags(/*@null@*/ const rpmds ds)
00212         /*@*/;
00213 
00219 rpmTag rpmdsTagN(/*@null@*/ const rpmds ds)
00220         /*@*/;
00221 
00227 time_t rpmdsBT(/*@null@*/ const rpmds ds)
00228         /*@*/;
00229 
00236 time_t rpmdsSetBT(/*@null@*/ const rpmds ds, time_t BT)
00237         /*@modifies ds @*/;
00238 
00252 int rpmdsNoPromote(/*@null@*/ const rpmds ds)
00253         /*@*/;
00254 
00261 int rpmdsSetNoPromote(/*@null@*/ rpmds ds, int nopromote)
00262         /*@modifies ds @*/;
00263 
00269 uint_32 rpmdsColor(/*@null@*/ const rpmds ds)
00270         /*@*/;
00271 
00278 uint_32 rpmdsSetColor(/*@null@*/ const rpmds ds, uint_32 color)
00279         /*@modifies ds @*/;
00280 
00286 int_32 rpmdsRefs(/*@null@*/ const rpmds ds)
00287         /*@*/;
00288 
00295 int_32 rpmdsSetRefs(/*@null@*/ const rpmds ds, int_32 refs)
00296         /*@modifies ds @*/;
00297 
00304 /*@-globuse@*/ /* FIX: rpmMessage annotation is a lie */
00305 void rpmdsNotify(/*@null@*/ rpmds ds, /*@null@*/ const char * where, int rc)
00306         /*@globals fileSystem @*/
00307         /*@modifies fileSystem @*/;
00308 /*@=globuse@*/
00309 
00315 int rpmdsNext(/*@null@*/ rpmds ds)
00316         /*@modifies ds @*/;
00317 
00323 /*@null@*/
00324 rpmds rpmdsInit(/*@null@*/ rpmds ds)
00325         /*@modifies ds @*/;
00326 
00333 /*@null@*/
00334 int rpmdsFind(rpmds ds, /*@null@*/ const rpmds ods)
00335         /*@modifies ds @*/;
00336 
00343 /*@null@*/
00344 int rpmdsMerge(/*@out@*/ rpmds * dsp, /*@null@*/ rpmds ods)
00345         /*@modifies *dsp, ods @*/;
00346 
00353 int rpmdsCompare(const rpmds A, const rpmds B)
00354         /*@*/;
00355 
00364 void rpmdsProblem(/*@null@*/ rpmps ps, const char * pkgNEVR, const rpmds ds,
00365                 /*@only@*/ /*@null@*/ const fnpyKey * suggestedKeys,
00366                 int adding)
00367         /*@modifies ps @*/;
00368 
00376 int rpmdsAnyMatchesDep (const Header h, const rpmds req, int nopromote)
00377         /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
00378         /*@modifies h, rpmGlobalMacroContext, fileSystem, internalState @*/;
00379 
00387 int rpmdsNVRMatchesDep(const Header h, const rpmds req, int nopromote)
00388         /*@*/;
00389 
00390 #ifdef __cplusplus
00391 }
00392 #endif
00393 
00394 #endif  /* H_RPMDS */

Generated on Fri Oct 12 08:44:53 2007 for rpm by  doxygen 1.5.2