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

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@*/;
00115 /*@null@*/
00116 rpmds rpmdsNew(Header h, rpmTag tagN, int flags)
00117         /*@modifies h @*/;
00118 
00125 /*@only@*/
00126 char * rpmdsNewDNEVR(const char * dspfx, const rpmds ds)
00127         /*@*/;
00128 
00136 /*@null@*/
00137 rpmds rpmdsThis(Header h, rpmTag tagN, int_32 Flags)
00138         /*@*/;
00139 
00148 /*@null@*/
00149 rpmds rpmdsSingle(rpmTag tagN, const char * N, const char * EVR, int_32 Flags)
00150         /*@*/;
00151 
00157 int rpmdsCount(/*@null@*/ const rpmds ds)
00158         /*@*/;
00159 
00165 int rpmdsIx(/*@null@*/ const rpmds ds)
00166         /*@*/;
00167 
00174 int rpmdsSetIx(/*@null@*/ rpmds ds, int ix)
00175         /*@modifies ds @*/;
00176 
00182 /*@observer@*/ /*@null@*/
00183 extern const char * rpmdsDNEVR(/*@null@*/ const rpmds ds)
00184         /*@*/;
00185 
00191 /*@observer@*/ /*@null@*/
00192 extern const char * rpmdsN(/*@null@*/ const rpmds ds)
00193         /*@*/;
00194 
00200 /*@observer@*/ /*@null@*/
00201 extern const char * rpmdsEVR(/*@null@*/ const rpmds ds)
00202         /*@*/;
00203 
00209 int_32 rpmdsFlags(/*@null@*/ const rpmds ds)
00210         /*@*/;
00211 
00217 rpmTag rpmdsTagN(/*@null@*/ const rpmds ds)
00218         /*@*/;
00219 
00225 time_t rpmdsBT(/*@null@*/ const rpmds ds)
00226         /*@*/;
00227 
00233 time_t rpmdsSetBT(/*@null@*/ const rpmds ds, time_t BT)
00234         /*@modifies ds @*/;
00235 
00249 int rpmdsNoPromote(/*@null@*/ const rpmds ds)
00250         /*@*/;
00251 
00258 int rpmdsSetNoPromote(/*@null@*/ rpmds ds, int nopromote)
00259         /*@modifies ds @*/;
00260 
00266 uint_32 rpmdsColor(/*@null@*/ const rpmds ds)
00267         /*@*/;
00268 
00275 uint_32 rpmdsSetColor(/*@null@*/ const rpmds ds, uint_32 color)
00276         /*@modifies ds @*/;
00277 
00283 int_32 rpmdsRefs(/*@null@*/ const rpmds ds)
00284         /*@*/;
00285 
00292 int_32 rpmdsSetRefs(/*@null@*/ const rpmds ds, int_32 refs)
00293         /*@modifies ds @*/;
00294 
00301 /*@-globuse@*/ /* FIX: rpmMessage annotation is a lie */
00302 void rpmdsNotify(/*@null@*/ rpmds ds, /*@null@*/ const char * where, int rc)
00303         /*@globals fileSystem @*/
00304         /*@modifies fileSystem @*/;
00305 /*@=globuse@*/
00306 
00312 int rpmdsNext(/*@null@*/ rpmds ds)
00313         /*@modifies ds @*/;
00314 
00320 /*@null@*/
00321 rpmds rpmdsInit(/*@null@*/ rpmds ds)
00322         /*@modifies ds @*/;
00323 
00330 /*@null@*/
00331 int rpmdsFind(rpmds ds, /*@null@*/ rpmds ods)
00332         /*@modifies ds, ods @*/;
00333 
00340 /*@null@*/
00341 int rpmdsMerge(/*@out@*/ rpmds * dsp, /*@null@*/ rpmds ods)
00342         /*@modifies *dsp, ods @*/;
00343 
00350 int rpmdsCompare(const rpmds A, const rpmds B)
00351         /*@*/;
00352 
00361 void rpmdsProblem(/*@null@*/ rpmps ps, const char * pkgNEVR, const rpmds ds,
00362                 /*@only@*/ /*@null@*/ const fnpyKey * suggestedKeys,
00363                 int adding)
00364         /*@modifies ps @*/;
00365 
00373 int rpmdsAnyMatchesDep (const Header h, const rpmds req, int nopromote)
00374         /*@modifies h @*/;
00375 
00383 int rpmdsNVRMatchesDep(const Header h, const rpmds req, int nopromote)
00384         /*@*/;
00385 
00386 #ifdef __cplusplus
00387 }
00388 #endif
00389 
00390 #endif  /* H_RPMDS */

Generated on Tue Jan 27 18:26:04 2009 for rpm by  doxygen 1.3.9.1