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

Generated on Sun Oct 26 13:02:00 2003 for rpm by doxygen1.2.18