rpm  5.4.15
rpmps.h
Go to the documentation of this file.
1 #ifndef H_RPMPS
2 #define H_RPMPS
3 
4 #include <stdio.h> /* XXX FILE * typedef */
5 #include <rpmiotypes.h>
6 
12 /*@-exportlocal@*/
13 /*@unchecked@*/
14 extern int _rpmps_debug;
15 /*@=exportlocal@*/
16 
20 typedef /*@abstract@*/ struct rpmProblem_s * rpmProblem;
21 
25 typedef /*@abstract@*/ /*@refcounted@*/ struct rpmps_s * rpmps;
26 
29 typedef /*@abstract@*/ struct rpmpsi_s * rpmpsi;
30 
34 typedef enum rpmprobFilterFlags_e {
46 
50 typedef enum rpmProblemType_e {
67 
70 #if defined(_RPMPS_INTERNAL)
71 struct rpmProblem_s {
72 /*@only@*/ /*@null@*/
73  char * pkgNEVR;
74 /*@only@*/ /*@null@*/
75  char * altNEVR;
76 /*@exposed@*/ /*@null@*/
77  fnpyKey key;
79  int ignoreProblem;
80 /*@only@*/ /*@null@*/
81  char * str1;
82  unsigned long long ulong1;
83 };
84 
87 struct rpmps_s {
88  struct rpmioItem_s _item;
89  int numProblems;
90  int numProblemsAlloced;
91  rpmProblem probs;
92 #if defined(__LCLINT__)
93 /*@refs@*/
94  int nrefs;
95 #endif
96 };
97 
100 struct rpmpsi_s {
101  int ix;
102  rpmps ps;
103 };
104 
105 #endif
106 
107 #ifdef __cplusplus
108 extern "C" {
109 #endif
110 
116 /*@-exportlocal@*/
117 /*@-redecl@*/ /* LCL: is confused. */
118 /*@only@*/ extern const char * rpmProblemString(const rpmProblem prob)
119  /*@*/;
120 /*@=redecl@*/
121 /*@=exportlocal@*/
122 
129 /*@unused@*/ /*@null@*/
130 rpmps rpmpsUnlink (/*@killref@*/ /*@returned@*/ rpmps ps,
131  const char * msg)
132  /*@modifies ps @*/;
133 #define rpmpsUnlink(_ps, _msg) \
134  ((rpmps)rpmioUnlinkPoolItem((rpmioItem)(_ps), _msg, __FILE__, __LINE__))
135 
142 /*@unused@*/ /*@newref@*/
143 rpmps rpmpsLink (rpmps ps, const char * msg)
144  /*@modifies ps @*/;
145 #define rpmpsLink(_ps, _msg) \
146  ((rpmps)rpmioLinkPoolItem((rpmioItem)(_ps), _msg, __FILE__, __LINE__))
147 
153 /*@null@*/
154 rpmps rpmpsFree(/*@killref@*/ /*@only@*/ /*@null@*/ rpmps ps)
155  /*@modifies ps @*/;
156 #define rpmpsFree(_ps) \
157  ((rpmps)rpmioFreePoolItem((rpmioItem)(_ps), __FUNCTION__, __FILE__, __LINE__))
158 
164 int rpmpsNumProblems(/*@null@*/ rpmps ps)
165  /*@*/;
166 
173  /*@modifies ps @*/;
174 
180 rpmpsi rpmpsFreeIterator(/*@only@*/ rpmpsi psi)
181  /*@modifies psi @*/;
182 
188 int rpmpsNextIterator(rpmpsi psi)
189  /*@modifies psi @*/;
190 
196 /*@observer@*/
198  /*@*/;
199 
204 rpmps rpmpsCreate(void)
205  /*@*/;
206 
212 void rpmpsPrint(/*@null@*/ FILE *fp, /*@null@*/ rpmps ps)
213  /*@globals fileSystem @*/
214  /*@modifies *fp, ps, fileSystem @*/;
215 
229 void rpmpsAppend(/*@null@*/ rpmps ps, rpmProblemType type,
230  /*@null@*/ const char * pkgNEVR,
231  /*@exposed@*/ /*@null@*/ fnpyKey key,
232  /*@null@*/ const char * dn, /*@null@*/ const char * bn,
233  /*@null@*/ const char * altNEVR,
234  rpmuint64_t ulong1)
235  /*@modifies ps @*/;
236 
252 int rpmpsTrim(/*@null@*/ rpmps ps, /*@null@*/ rpmps filter)
253  /*@modifies ps @*/;
254 
262 /*@exposed@*/
263 rpmProblem rpmpsGetProblem(/*@null@*/ rpmps ps, int num)
264  /*@*/;
265 
272 /*@null@*/ /*@exposed@*/
273 char * rpmProblemGetPkgNEVR(rpmProblem prob)
274  /*@*/;
275 
282 /*@null@*/ /*@exposed@*/
283 char * rpmProblemGetAltNEVR(rpmProblem prob)
284  /*@*/;
285 
292 /*@null@*/ /*@exposed@*/
293 char * rpmProblemGetStr(rpmProblem prob)
294  /*@*/;
295 
302  /*@*/;
303 
311  /*@*/;
312 
319 /*@null@*/ /*@exposed@*/
321  /*@*/;
322 
323 #ifdef __cplusplus
324 }
325 #endif
326 
327 #endif /* H_RPMPS */
const char * rpmProblemString(const rpmProblem prob)
Return formatted string representation of a problem.
Definition: rpmps.c:231
struct rpmpsi_s * rpmpsi
Definition: rpmps.h:29
enum rpmprobFilterFlags_e rpmprobFilterFlags
rpmProblem rpmpsGetProblem(rpmps ps, int num)
Return a problem from problem set.
Definition: rpmps.c:386
char * rpmProblemGetStr(rpmProblem prob)
Return a generic data string from a problem.
Definition: rpmps.c:408
enum rpmProblemType_e rpmProblemType
Enumerate transaction set problem types.
char * rpmProblemGetPkgNEVR(rpmProblem prob)
Return the package NEVR causing the problem.
Definition: rpmps.c:398
rpmuint64_t rpmProblemGetDiskNeed(rpmProblem prob)
Return generic pointer/long attribute from a problem.
Definition: rpmps.c:413
struct rpmps_s * rpmps
Transaction problems found while processing a transaction set/.
Definition: rpmps.h:25
rpmps rpmpsCreate(void)
Create a problem set.
Definition: rpmps.c:61
unsigned long long rpmuint64_t
Definition: rpmiotypes.h:29
rpmProblemType_e
Enumerate transaction set problem types.
Definition: rpmps.h:50
rpmProblemType rpmProblemGetType(rpmProblem prob)
Return the problem type.
Definition: rpmps.c:418
#define rpmpsFree(_ps)
Definition: rpmps.h:156
int rpmpsNumProblems(rpmps ps)
Return number of problems in set.
Definition: rpmps.c:70
int rpmpsTrim(rpmps ps, rpmps filter)
Filter a problem set.
Definition: rpmps.c:166
rpmpsi rpmpsFreeIterator(rpmpsi psi)
Destroy problem set iterator.
Definition: rpmps.c:91
int _rpmps_debug
Definition: rpmps.c:26
char * rpmProblemGetAltNEVR(rpmProblem prob)
Return the second package NEVR causing the problem.
Definition: rpmps.c:403
rpmProblem rpmpsProblem(rpmpsi psi)
Return current problem from problem set.
Definition: rpmps.c:114
rpmprobFilterFlags_e
Definition: rpmps.h:34
const char const bson * key
Definition: mongo.h:717
const void * fnpyKey
Definition: rpmiotypes.h:134
struct rpmProblem_s * rpmProblem
Raw data for an element of a problem set.
Definition: rpmps.h:20
#define rpmpsLink(_ps, _msg)
Definition: rpmps.h:145
#define rpmpsUnlink(_ps, _msg)
Definition: rpmps.h:133
rpmpsi rpmpsInitIterator(rpmps ps)
Initialize problem set iterator.
Definition: rpmps.c:78
const char char type
Definition: bson.h:908
void rpmpsAppend(rpmps ps, rpmProblemType type, const char *pkgNEVR, fnpyKey key, const char *dn, const char *bn, const char *altNEVR, rpmuint64_t ulong1)
Append a problem to current set of problems.
Definition: rpmps.c:123
fnpyKey rpmProblemKey(rpmProblem prob)
Return the transaction key causing the problem.
Definition: rpmps.c:423
void rpmpsPrint(FILE *fp, rpmps ps)
Print problems to file handle.
Definition: rpmps.c:346
int rpmpsNextIterator(rpmpsi psi)
Return next problem set iterator index.
Definition: rpmps.c:100
const char const bson int num
Definition: mongo.h:485