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 */