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

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