00001 #ifndef _RPMPROB_H
00002 #define _RPMPROB_H
00003
00009 #include <stdio.h>
00010 #include <rpm/rpmtypes.h>
00011
00012 #ifdef __cplusplus
00013 extern "C" {
00014 #endif
00015
00016 typedef struct rpmProblem_s * rpmProblem;
00017
00021 enum rpmprobFilterFlags_e {
00022 RPMPROB_FILTER_NONE = 0,
00023 RPMPROB_FILTER_IGNOREOS = (1 << 0),
00024 RPMPROB_FILTER_IGNOREARCH = (1 << 1),
00025 RPMPROB_FILTER_REPLACEPKG = (1 << 2),
00026 RPMPROB_FILTER_FORCERELOCATE= (1 << 3),
00027 RPMPROB_FILTER_REPLACENEWFILES= (1 << 4),
00028 RPMPROB_FILTER_REPLACEOLDFILES= (1 << 5),
00029 RPMPROB_FILTER_OLDPACKAGE = (1 << 6),
00030 RPMPROB_FILTER_DISKSPACE = (1 << 7),
00031 RPMPROB_FILTER_DISKNODES = (1 << 8)
00032 };
00033
00034 typedef rpmFlags rpmprobFilterFlags;
00035
00039 typedef enum rpmProblemType_e {
00040 RPMPROB_BADARCH,
00041 RPMPROB_BADOS,
00042 RPMPROB_PKG_INSTALLED,
00043 RPMPROB_BADRELOCATE,
00044 RPMPROB_REQUIRES,
00045 RPMPROB_CONFLICT,
00046 RPMPROB_NEW_FILE_CONFLICT,
00047 RPMPROB_FILE_CONFLICT,
00048 RPMPROB_OLDPACKAGE,
00049 RPMPROB_DISKSPACE,
00050 RPMPROB_DISKNODES,
00051 RPMPROB_OBSOLETES,
00052 } rpmProblemType;
00053
00064 rpmProblem rpmProblemCreate(rpmProblemType type,
00065 const char * pkgNEVR, fnpyKey key,
00066 const char * altNEVR,
00067 const char * str, uint64_t number);
00068
00074 rpmProblem rpmProblemFree(rpmProblem prob);
00075
00081 rpmProblem rpmProblemLink(rpmProblem prob);
00082
00089 int rpmProblemCompare(rpmProblem ap, rpmProblem bp);
00090
00097 const char * rpmProblemGetPkgNEVR(rpmProblem prob);
00103 const char * rpmProblemGetAltNEVR(rpmProblem prob);
00104
00111 rpmProblemType rpmProblemGetType(rpmProblem prob);
00112
00118 fnpyKey rpmProblemGetKey(rpmProblem prob);
00119
00126 const char * rpmProblemGetStr(rpmProblem prob);
00127
00135 rpm_loff_t rpmProblemGetDiskNeed(rpmProblem prob);
00136
00142 char * rpmProblemString(rpmProblem prob);
00143
00144 #ifdef __cplusplus
00145 }
00146 #endif
00147
00148 #endif