00001 #ifndef H_RPMTE
00002 #define H_RPMTE
00003 
00009 #include <rpm/rpmal.h>
00010 
00011 #ifdef __cplusplus
00012 extern "C" {
00013 #endif
00014 
00017 extern int _rpmte_debug;
00018 
00022 typedef struct tsortInfo_s *            tsortInfo;
00023 
00027 typedef struct rpmtsi_s *               rpmtsi;
00028 
00032 typedef enum rpmElementType_e {
00033     TR_ADDED            = (1 << 0),     
00034     TR_REMOVED          = (1 << 1)      
00035 } rpmElementType;
00036 
00042 rpmte rpmteFree(rpmte te);
00043 
00055 rpmte rpmteNew(const rpmts ts, Header h, rpmElementType type,
00056                 fnpyKey key,
00057                 rpmRelocation * relocs,
00058                 int dboffset,
00059                 rpmalKey pkgKey);
00060 
00066 Header rpmteHeader(rpmte te);
00067 
00074 Header rpmteSetHeader(rpmte te, Header h);
00075 
00081 rpmElementType rpmteType(rpmte te);
00082 
00088 const char * rpmteN(rpmte te);
00089 
00095 const char * rpmteE(rpmte te);
00096 
00102 const char * rpmteV(rpmte te);
00103 
00109 const char * rpmteR(rpmte te);
00110 
00116 const char * rpmteA(rpmte te);
00117 
00123 const char * rpmteO(rpmte te);
00124 
00130 int rpmteIsSource(rpmte te);
00131 
00137 rpm_color_t rpmteColor(rpmte te);
00138 
00145 rpm_color_t rpmteSetColor(rpmte te, rpm_color_t color);
00146 
00152 unsigned int rpmteDBInstance(rpmte te);
00153 
00160 void rpmteSetDBInstance(rpmte te, unsigned int instance);
00161 
00168 rpm_loff_t rpmtePkgFileSize(rpmte te);
00169 
00175 int rpmteDepth(rpmte te);
00176 
00183 int rpmteSetDepth(rpmte te, int ndepth);
00184 
00190 int rpmteBreadth(rpmte te);
00191 
00198 int rpmteSetBreadth(rpmte te, int nbreadth);
00199 
00205 int rpmteNpreds(rpmte te);
00206 
00213 int rpmteSetNpreds(rpmte te, int npreds);
00214 
00220 int rpmteTree(rpmte te);
00221 
00228 int rpmteSetTree(rpmte te, int ntree);
00229 
00235 rpmte rpmteParent(rpmte te);
00236 
00243 rpmte rpmteSetParent(rpmte te, rpmte pte);
00244 
00250 int rpmteDegree(rpmte te);
00251 
00258 int rpmteSetDegree(rpmte te, int ndegree);
00259 
00265 tsortInfo rpmteTSI(rpmte te);
00266 
00271 void rpmteFreeTSI(rpmte te);
00272 
00277 void rpmteNewTSI(rpmte te);
00278 
00283 void rpmteCleanDS(rpmte te);
00284 
00290 rpmalKey rpmteAddedKey(rpmte te);
00291 
00298 rpmalKey rpmteSetAddedKey(rpmte te,
00299                 rpmalKey npkgKey);
00300 
00306 rpmalKey rpmteDependsOnKey(rpmte te);
00307 
00313 int rpmteDBOffset(rpmte te);
00314 
00320 const char * rpmteEVR(rpmte te);
00321 
00327 const char * rpmteNEVR(rpmte te);
00328 
00334 const char * rpmteNEVRA(rpmte te);
00335 
00341 FD_t rpmteFd(rpmte te);
00342 
00348 fnpyKey rpmteKey(rpmte te);
00349 
00355 int rpmteFailed(rpmte te);
00356 
00363 rpmds rpmteDS(rpmte te, rpmTag tag);
00364 
00370 rpmfi rpmteFI(rpmte te);
00371 
00377 void rpmteColorDS(rpmte te, rpmTag tag);
00378 
00384 int rpmtsiOc(rpmtsi tsi);
00385 
00391 rpmtsi rpmtsiFree(rpmtsi tsi);
00392 
00398 rpmtsi rpmtsiInit(rpmts ts);
00399 
00406 rpmte rpmtsiNext(rpmtsi tsi, rpmElementType type);
00407 
00408 #ifdef __cplusplus
00409 }
00410 #endif
00411 
00412 #endif