rpm  5.4.4
lib/rpmal.h
Go to the documentation of this file.
00001 #ifndef H_RPMAL
00002 #define H_RPMAL
00003 
00009 #include <rpmds.h>
00010 #include <rpmfi.h>
00011 
00012 /*@-exportlocal@*/
00013 /*@unchecked@*/
00014 extern int _rpmal_debug;
00015 /*@=exportlocal@*/
00016 
00017 #define RPMAL_NOMATCH   ((alKey)-1L)
00018 
00022 /*@-mutrep@*/
00023 typedef /*@abstract@*/ int alNum;
00024 /*@=mutrep@*/
00025 
00028 typedef /*@abstract@*/ struct rpmal_s *         rpmal;
00029 
00030 #ifdef __cplusplus
00031 extern "C" {
00032 #endif
00033 
00040 /*@unused@*/ /*@null@*/
00041 rpmal rpmalUnlink (/*@killref@*/ /*@only@*/ /*@null@*/ rpmal al,
00042                 /*@null@*/ const char * msg)
00043         /*@modifies al @*/;
00044 #define rpmalUnlink(_al, _msg)  \
00045     ((rpmal)rpmioUnlinkPoolItem((rpmioItem)(_al), _msg, __FILE__, __LINE__))
00046 
00053 /*@unused@*/ /*@newref@*/ /*@null@*/
00054 rpmal rpmalLink (/*@null@*/ rpmal al, /*@null@*/ const char * msg)
00055         /*@modifies al @*/;
00056 #define rpmalLink(_al, _msg)    \
00057     ((rpmal)rpmioLinkPoolItem((rpmioItem)(_al), _msg, __FILE__, __LINE__))
00058 
00064 /*@null@*/
00065 rpmal rpmalFree(/*@killref@*/ /*@null@*/ rpmal al)
00066         /*@modifies al @*/;
00067 #define rpmalFree(_al)  \
00068     ((rpmal)rpmioFreePoolItem((rpmioItem)(_al), __FUNCTION__, __FILE__, __LINE__))
00069 
00075 /*@-exportlocal@*/
00076 /*@only@*/
00077 rpmal rpmalNew(int delta)
00078         /*@*/;
00079 /*@=exportlocal@*/
00080 
00086 /*@-exportlocal@*/
00087 void rpmalDel(/*@null@*/ rpmal al, /*@null@*/ alKey pkgKey)
00088         /*@globals fileSystem @*/
00089         /*@modifies al, fileSystem @*/;
00090 /*@=exportlocal@*/
00091 
00102 alKey rpmalAdd(rpmal * alistp,
00103                 /*@dependent@*/ /*@null@*/ alKey pkgKey,
00104                 /*@dependent@*/ /*@null@*/ fnpyKey key,
00105                 /*@null@*/ rpmds provides, /*@null@*/ rpmfi fi,
00106                 rpmuint32_t tscolor)
00107         /*@globals fileSystem @*/
00108         /*@modifies *alistp, provides, fi, fileSystem @*/;
00109 
00117 /*@-exportlocal@*/
00118 void rpmalAddProvides(rpmal al,
00119                 /*@dependent@*/ /*@null@*/ alKey pkgKey,
00120                 /*@null@*/ rpmds provides, rpmuint32_t tscolor)
00121         /*@modifies al, provides @*/;
00122 /*@=exportlocal@*/
00123 
00128 void rpmalMakeIndex(/*@null@*/ rpmal al)
00129         /*@modifies al @*/;
00130 
00138 /*@-exportlocal@*/
00139 /*@only@*/ /*@null@*/
00140 fnpyKey * rpmalAllFileSatisfiesDepend(/*@null@*/ const rpmal al,
00141                 /*@null@*/ const rpmds ds, /*@null@*/ alKey * keyp)
00142         /*@globals fileSystem, internalState @*/
00143         /*@modifies al, *keyp, fileSystem, internalState @*/;
00144 /*@=exportlocal@*/
00145 
00153 /*@only@*/ /*@null@*/
00154 fnpyKey * rpmalAllSatisfiesDepend(const rpmal al, const rpmds ds,
00155                 /*@null@*/ alKey * keyp)
00156         /*@globals fileSystem, internalState @*/
00157         /*@modifies al, *keyp, fileSystem, internalState @*/;
00158 
00167 /*@null@*/
00168 fnpyKey rpmalSatisfiesDepend(const rpmal al, const rpmds ds,
00169                 /*@null@*/ alKey * keyp)
00170         /*@globals fileSystem, internalState @*/
00171         /*@modifies al, *keyp, fileSystem, internalState @*/;
00172 
00173 #ifdef __cplusplus
00174 }
00175 #endif
00176 
00177 #endif  /* H_RPMAL */