Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

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     int i;                      
00032 /*@observer@*/
00033     const char * Type;          
00034 /*@only@*/ /*@null@*/
00035     const char * DNEVR;         
00037     rpmTag tagN;                
00038 /*@refcounted@*/ /*@null@*/
00039     Header h;                   
00041 /*@only@*/
00042     const char ** N;            
00043 /*@only@*/
00044     const char ** EVR;          
00045 /*@only@*/
00046     int_32 * Flags;             
00047     rpmTagType Nt, EVRt, Ft;    
00048     int_32 Count;               
00049     int nopromote;              
00050 /*@refs@*/
00051     int nrefs;                  
00052 };
00053 #endif  /* _RPMDS_INTERNAL */
00054 
00055 #ifdef __cplusplus
00056 extern "C" {
00057 #endif
00058 
00065 /*@unused@*/ /*@null@*/
00066 rpmds rpmdsUnlink (/*@killref@*/ /*@only@*/ /*@null@*/ rpmds ds,
00067                 /*@null@*/ const char * msg)
00068         /*@modifies ds @*/;
00069 
00071 /*@-exportlocal@*/
00072 /*@null@*/
00073 rpmds XrpmdsUnlink (/*@killref@*/ /*@only@*/ /*@null@*/ rpmds ds,
00074                 /*@null@*/ const char * msg, const char * fn, unsigned ln)
00075         /*@modifies ds @*/;
00076 /*@=exportlocal@*/
00077 #define rpmdsUnlink(_ds, _msg)  XrpmdsUnlink(_ds, _msg, __FILE__, __LINE__)
00078 
00085 /*@unused@*/ /*@newref@*/
00086 rpmds rpmdsLink (/*@null@*/ rpmds ds, /*@null@*/ const char * msg)
00087         /*@modifies ds @*/;
00088 
00090 /*@newref@*/
00091 rpmds XrpmdsLink (/*@null@*/ rpmds ds, /*@null@*/ const char * msg,
00092                 const char * fn, unsigned ln)
00093         /*@modifies ds @*/;
00094 #define rpmdsLink(_ds, _msg)    XrpmdsLink(_ds, _msg, __FILE__, __LINE__)
00095 
00101 /*@null@*/
00102 rpmds rpmdsFree(/*@killref@*/ /*@only@*/ /*@null@*/ rpmds ds)
00103         /*@modifies ds@*/;
00111 /*@null@*/
00112 rpmds rpmdsNew(Header h, rpmTag tagN, int scareMem)
00113         /*@modifies h @*/;
00114 
00121 /*@only@*/
00122 char * rpmdsNewDNEVR(const char * dspfx, const rpmds ds)
00123         /*@*/;
00124 
00132 /*@null@*/
00133 rpmds rpmdsThis(Header h, rpmTag tagN, int_32 Flags)
00134         /*@*/;
00135 
00144 /*@null@*/
00145 rpmds rpmdsSingle(rpmTag tagN, const char * N, const char * EVR, int_32 Flags)
00146         /*@*/;
00147 
00153 int rpmdsCount(/*@null@*/ const rpmds ds)
00154         /*@*/;
00155 
00161 int rpmdsIx(/*@null@*/ const rpmds ds)
00162         /*@*/;
00163 
00170 int rpmdsSetIx(/*@null@*/ rpmds ds, int ix)
00171         /*@modifies ds @*/;
00172 
00178 /*@observer@*/ /*@null@*/
00179 extern const char * rpmdsDNEVR(/*@null@*/ const rpmds ds)
00180         /*@*/;
00181 
00187 /*@observer@*/ /*@null@*/
00188 extern const char * rpmdsN(/*@null@*/ const rpmds ds)
00189         /*@*/;
00190 
00196 /*@observer@*/ /*@null@*/
00197 extern const char * rpmdsEVR(/*@null@*/ const rpmds ds)
00198         /*@*/;
00199 
00205 int_32 rpmdsFlags(/*@null@*/ const rpmds ds)
00206         /*@*/;
00207 
00213 rpmTag rpmdsTagN(/*@null@*/ const rpmds ds)
00214         /*@*/;
00215 
00229 int rpmdsNoPromote(/*@null@*/ const rpmds ds)
00230         /*@*/;
00231 
00237 int rpmdsSetNoPromote(/*@null@*/ rpmds ds, int nopromote)
00238         /*@modifies ds @*/;
00239 
00246 /*@-globuse@*/ /* FIX: rpmMessage annotation is a lie */
00247 void rpmdsNotify(/*@null@*/ rpmds ds, /*@null@*/ const char * where, int rc)
00248         /*@globals fileSystem @*/
00249         /*@modifies fileSystem @*/;
00250 /*@=globuse@*/
00251 
00257 int rpmdsNext(/*@null@*/ rpmds ds)
00258         /*@modifies ds @*/;
00259 
00265 /*@null@*/
00266 rpmds rpmdsInit(/*@null@*/ rpmds ds)
00267         /*@modifies ds @*/;
00268 
00275 int rpmdsCompare(const rpmds A, const rpmds B)
00276         /*@*/;
00277 
00286 void rpmdsProblem(/*@null@*/ rpmps ps, const char * pkgNEVR, const rpmds ds,
00287                 /*@only@*/ /*@null@*/ const fnpyKey * suggestedKeys,
00288                 int adding)
00289         /*@modifies ps @*/;
00290 
00298 int rpmdsAnyMatchesDep (const Header h, const rpmds req, int nopromote)
00299         /*@modifies h @*/;
00300 
00309 int rpmdsNVRMatchesDep(const Header h, const rpmds req, int nopromote)
00310         /*@*/;
00311 
00312 #ifdef __cplusplus
00313 }
00314 #endif
00315 
00316 #endif  /* H_RPMDS */

Generated on Tue Sep 17 15:56:41 2002 for rpm by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002