lib/rpmps.h

Go to the documentation of this file.
00001 #ifndef H_RPMPS
00002 #define H_RPMPS
00003 
00009 /*@-exportlocal@*/
00010 /*@unchecked@*/
00011 extern int _rpmps_debug;
00012 /*@=exportlocal@*/
00013 
00017 typedef /*@abstract@*/ struct rpmProblem_s * rpmProblem;
00018 
00022 typedef /*@abstract@*/ /*@refcounted@*/ struct rpmps_s * rpmps;
00023 
00027 typedef enum rpmProblemType_e {
00028     RPMPROB_BADARCH,    
00029     RPMPROB_BADOS,      
00030     RPMPROB_PKG_INSTALLED, 
00031     RPMPROB_BADRELOCATE,
00032     RPMPROB_REQUIRES,   
00033     RPMPROB_CONFLICT,   
00034     RPMPROB_NEW_FILE_CONFLICT, 
00035     RPMPROB_FILE_CONFLICT,
00036     RPMPROB_OLDPACKAGE, 
00037     RPMPROB_DISKSPACE,  
00038     RPMPROB_DISKNODES,  
00039     RPMPROB_BADPRETRANS 
00040  } rpmProblemType;
00041 
00044 struct rpmProblem_s {
00045 /*@only@*/ /*@null@*/
00046     char * pkgNEVR;
00047 /*@only@*/ /*@null@*/
00048     char * altNEVR;
00049 /*@exposed@*/ /*@null@*/
00050     fnpyKey key;
00051     rpmProblemType type;
00052     int ignoreProblem;
00053 /*@only@*/ /*@null@*/
00054     char * str1;
00055     unsigned long ulong1;
00056 };
00057 
00060 struct rpmps_s {
00061     int numProblems;            
00062     int numProblemsAlloced;     
00063     rpmProblem probs;           
00064 /*@refs@*/
00065     int nrefs;                  
00066 };
00067 
00068 #ifdef __cplusplus
00069 extern "C" {
00070 #endif
00071 
00077 /*@-exportlocal@*/
00078 /*@-redecl@*/   /* LCL: is confused. */
00079 /*@only@*/ extern const char * rpmProblemString(const rpmProblem prob)
00080         /*@*/;
00081 /*@=redecl@*/
00082 /*@=exportlocal@*/
00083 
00090 /*@unused@*/
00091 rpmps rpmpsUnlink (/*@killref@*/ /*@returned@*/ rpmps ps,
00092                 const char * msg)
00093         /*@modifies ps @*/;
00094 
00096 /*@-exportlocal@*/
00097 /*@null@*/
00098 rpmps XrpmpsUnlink (/*@killref@*/ /*@returned@*/ rpmps ps,
00099                 const char * msg, const char * fn, unsigned ln)
00100         /*@modifies ps @*/;
00101 #define rpmpsUnlink(_ps, _msg)  XrpmpsUnlink(_ps, _msg, __FILE__, __LINE__)
00102 /*@=exportlocal@*/
00103 
00110 /*@unused@*/
00111 rpmps rpmpsLink (rpmps ps, const char * msg)
00112         /*@modifies ps @*/;
00113 
00115 rpmps XrpmpsLink (rpmps ps,
00116                 const char * msg, const char * fn, unsigned ln)
00117         /*@modifies ps @*/;
00118 #define rpmpsLink(_ps, _msg)    XrpmpsLink(_ps, _msg, __FILE__, __LINE__)
00119 
00125 int rpmpsNumProblems(/*@null@*/ rpmps ps)
00126         /*@*/;
00127 
00132 rpmps rpmpsCreate(void)
00133         /*@*/;
00134 
00140 /*@null@*/
00141 rpmps rpmpsFree(/*@killref@*/ /*@only@*/ /*@null@*/ rpmps ps)
00142         /*@modifies ps @*/;
00143 
00149 void rpmpsPrint(/*@null@*/ FILE *fp, /*@null@*/ rpmps ps)
00150         /*@globals fileSystem @*/
00151         /*@modifies *fp, ps, fileSystem @*/;
00152 
00164 void rpmpsAppend(/*@null@*/ rpmps ps, rpmProblemType type,
00165                 /*@null@*/ const char * pkgNEVR,
00166                 /*@exposed@*/ /*@null@*/ fnpyKey key,
00167                 /*@null@*/ const char * dn, /*@null@*/ const char * bn,
00168                 /*@null@*/ const char * altNEVR,
00169                 unsigned long ulong1)
00170         /*@modifies ps @*/;
00171 
00187 int rpmpsTrim(/*@null@*/ rpmps ps, /*@null@*/ rpmps filter)
00188         /*@modifies ps @*/;
00189 
00190 #ifdef __cplusplus
00191 }
00192 #endif
00193 
00194 #endif  /* H_RPMPS */

Generated on Fri Oct 12 08:44:53 2007 for rpm by  doxygen 1.5.2