Blame lib/rpmte.h

2ff057
#ifndef H_RPMTE
2ff057
#define H_RPMTE
2ff057
2ff057
/** \ingroup rpmts rpmte
2ff057
 * \file lib/rpmte.h
2ff057
 * Structures used for an "rpmte" transaction element.
2ff057
 */
2ff057
2ff057
#include <rpm/rpmtypes.h>
2ff057
#include <rpm/argv.h>
2ff057
2ff057
#ifdef __cplusplus
2ff057
extern "C" {
2ff057
#endif
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Transaction element type.
2ff057
 */
2ff057
typedef enum rpmElementType_e {
2ff057
    TR_ADDED		= (1 << 0),	/*!< Package will be installed. */
2ff057
    TR_REMOVED		= (1 << 1)	/*!< Package will be removed. */
2ff057
} rpmElementType;
2ff057
2ff057
typedef rpmFlags rpmElementTypes;
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve header from transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @return		header (new reference)
2ff057
 */
2ff057
Header rpmteHeader(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Save header into transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @param h		header
2ff057
 * @return		NULL always
2ff057
 */
2ff057
Header rpmteSetHeader(rpmte te, Header h);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve type of transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @return		type
2ff057
 */
2ff057
rpmElementType rpmteType(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve name string of transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @return		name string
2ff057
 */
2ff057
const char * rpmteN(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve epoch string of transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @return		epoch string
2ff057
 */
2ff057
const char * rpmteE(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve version string of transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @return		version string
2ff057
 */
2ff057
const char * rpmteV(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve release string of transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @return		release string
2ff057
 */
2ff057
const char * rpmteR(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve arch string of transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @return		arch string
2ff057
 */
2ff057
const char * rpmteA(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve os string of transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @return		os string
2ff057
 */
2ff057
const char * rpmteO(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve isSource attribute of transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @return		isSource attribute
2ff057
 */
2ff057
int rpmteIsSource(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve color bits of transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @return		color bits
2ff057
 */
2ff057
rpm_color_t rpmteColor(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Set color bits of transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @param color		new color bits
2ff057
 * @return		previous color bits
2ff057
 */
2ff057
rpm_color_t rpmteSetColor(rpmte te, rpm_color_t color);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve last instance installed to the database.
2ff057
 * @param te		transaction element
2ff057
 * @return		last install instance.
2ff057
 */
2ff057
unsigned int rpmteDBInstance(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Set last instance installed to the database.
2ff057
 * @param te		transaction element
2ff057
 * @param instance	Database instance of last install element.
2ff057
 * @return		last install instance.
2ff057
 */
2ff057
void rpmteSetDBInstance(rpmte te, unsigned int instance);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve size in bytes of package file.
2ff057
 * @todo Signature header is estimated at 256b.
2ff057
 * @param te		transaction element
2ff057
 * @return		size in bytes of package file.
2ff057
 */
2ff057
rpm_loff_t rpmtePkgFileSize(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve parent transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @return		parent transaction element
2ff057
 */
2ff057
rpmte rpmteParent(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Set parent transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @param pte		new parent transaction element
2ff057
 * @return		previous parent transaction element
2ff057
 */
2ff057
rpmte rpmteSetParent(rpmte te, rpmte pte);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Return problem set info of transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @return		problem set (or NULL if none)
2ff057
 */
2ff057
rpmps rpmteProblems(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Destroy problem set info of transaction element.
2ff057
 * @param te		transaction element
2ff057
 */
2ff057
void rpmteCleanProblems(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Destroy dependency set info of transaction element.
2ff057
 * @param te		transaction element
2ff057
 */
2ff057
void rpmteCleanDS(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Set dependent element of TR_REMOVED transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @param depends       dependent transaction element
2ff057
 */
2ff057
void rpmteSetDependsOn(rpmte te, rpmte depends);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve dependent element of TR_REMOVED transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @return		dependent transaction element
2ff057
 */
2ff057
rpmte rpmteDependsOn(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve rpmdb instance of TR_REMOVED transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @return		rpmdb instance
2ff057
 */
2ff057
int rpmteDBOffset(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve [epoch:]version-release string from transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @return		[epoch:]version-release string
2ff057
 */
2ff057
const char * rpmteEVR(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve name-[epoch:]version-release string from transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @return		name-[epoch:]version-release string
2ff057
 */
2ff057
const char * rpmteNEVR(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve name-[epoch:]version-release.arch string from transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @return		name-[epoch:]version-release.arch string
2ff057
 */
2ff057
const char * rpmteNEVRA(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve key from transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @return		key
2ff057
 */
2ff057
fnpyKey rpmteKey(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Return failure status of transaction element.
2ff057
 * If the element itself failed, this is 1, larger count means one of
2ff057
 * it's parents failed.
2ff057
 * @param te		transaction element
2ff057
 * @return		number of failures for this transaction element
2ff057
 */
2ff057
int rpmteFailed(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve dependency tag set from transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @param tag		dependency tag
2ff057
 * @return		dependency tag set
2ff057
 */
2ff057
rpmds rpmteDS(rpmte te, rpmTagVal tag);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve file info set from transaction element.
2ff057
 * @param te		transaction element
2ff057
 * @return		file info set (refcounted)
2ff057
 */
2ff057
rpmfiles rpmteFiles(rpmte te);
2ff057
2ff057
/** \ingroup rpmte
2ff057
 * Retrieve file info iterator from transaction element.
2ff057
 * @deprecated		use rpmteFiles() instead
2ff057
 * @param te		transaction element
2ff057
 * @return		file info tag set
2ff057
 */
2ff057
rpmfi rpmteFI(rpmte te);
2ff057
2ff057
#ifdef __cplusplus
2ff057
}
2ff057
#endif
2ff057
2ff057
#endif	/* H_RPMTE */