# lib/rpmte.c File Reference

Routine(s) to handle an "rpmte" transaction element. More...

`#include "system.h"`
`#include <rpmio.h>`
`#include <rpmcb.h>`
`#include <rpmlib.h>`
`#include "rpmds.h"`
`#include "rpmfi.h"`
`#include "rpmte.h"`
`#include "rpmts.h"`
`#include "debug.h"`

Include dependency graph for rpmte.c:

Go to the source code of this file.

## Defines

#define | _RPMTE_INTERNAL

## Functions

void | rpmteCleanDS (rpmte te)
| Destroy dependency set info of transaction element.
static void | delTE (rpmte p)
| Destroy transaction element data.
static void | addTE (rpmts ts, rpmte p, Header h, fnpyKey key, rpmRelocation relocs)
| Initialize transaction element data from header.
rpmte | rpmteFree (rpmte te)
| Destroy a transaction element.
rpmte | rpmteNew (const rpmts ts, Header h, rpmElementType type, fnpyKey key, rpmRelocation relocs, int dboffset, alKey pkgKey)
| Create a transaction element.
unsigned int | rpmteDBInstance (rpmte te)
| Retrieve last instance installed to the database.
void | rpmteSetDBInstance (rpmte te, unsigned int instance)
| Set last instance installed to the database.
Header | rpmteHeader (rpmte te)
| Retrieve header from transaction element.
Header | rpmteSetHeader (rpmte te, Header h)
| Save header into transaction element.
rpmElementType | rpmteType (rpmte te)
| Retrieve type of transaction element.
const char * | rpmteN (rpmte te)
| Retrieve name string of transaction element.
const char * | rpmteE (rpmte te)
| Retrieve epoch string of transaction element.
const char * | rpmteV (rpmte te)
| Retrieve version string of transaction element.
const char * | rpmteR (rpmte te)
| Retrieve release string of transaction element.
const char * | rpmteA (rpmte te)
| Retrieve arch string of transaction element.
const char * | rpmteO (rpmte te)
| Retrieve os string of transaction element.
int | rpmteIsSource (rpmte te)
| Retrieve isSource attribute of transaction element.
uint32_t | rpmteColor (rpmte te)
| Retrieve color bits of transaction element.
uint32_t | rpmteSetColor (rpmte te, uint32_t color)
| Set color bits of transaction element.
uint32_t | rpmtePkgFileSize (rpmte te)
| Retrieve size in bytes of package file.
int | rpmteDepth (rpmte te)
| Retrieve dependency tree depth of transaction element.
int | rpmteSetDepth (rpmte te, int ndepth)
| Set dependency tree depth of transaction element.
int | rpmteBreadth (rpmte te)
| Retrieve dependency tree breadth of transaction element.
int | rpmteSetBreadth (rpmte te, int nbreadth)
| Set dependency tree breadth of transaction element.
int | rpmteNpreds (rpmte te)
| Retrieve tsort no.
int | rpmteSetNpreds (rpmte te, int npreds)
| Set tsort no.
int | rpmteTree (rpmte te)
| Retrieve tree index of transaction element.
int | rpmteSetTree (rpmte te, int ntree)
| Set tree index of transaction element.
rpmte | rpmteParent (rpmte te)
| Retrieve parent transaction element.
rpmte | rpmteSetParent (rpmte te, rpmte pte)
| Set parent transaction element.
int | rpmteDegree (rpmte te)
| Retrieve number of children of transaction element.
int | rpmteSetDegree (rpmte te, int ndegree)
| Set number of children of transaction element.
tsortInfo | rpmteTSI (rpmte te)
| Retrieve tsort info for transaction element.
void | rpmteFreeTSI (rpmte te)
| Destroy tsort info of transaction element.
void | rpmteNewTSI (rpmte te)
| Initialize tsort info of transaction element.
alKey | rpmteAddedKey (rpmte te)
| Retrieve pkgKey of TR_ADDED transaction element.
alKey | rpmteSetAddedKey (rpmte te, alKey npkgKey)
| Set pkgKey of TR_ADDED transaction element.
int | rpmteDBOffset (rpmte te)
| Retrieve rpmdb instance of TR_REMOVED transaction element.
const char * | rpmteNEVR (rpmte te)
| Retrieve name-version-release string from transaction element.
const char * | rpmteNEVRA (rpmte te)
| Retrieve name-version-release.arch string from transaction element.
const char * | rpmtePkgid (rpmte te)
| Retrieve pkgid string from transaction element.
const char * | rpmteHdrid (rpmte te)
| Retrieve hdrid string from transaction element.
FD_t | rpmteFd (rpmte te)
| Retrieve file handle from transaction element.
fnpyKey | rpmteKey (rpmte te)
| Retrieve key from transaction element.
rpmds | rpmteDS (rpmte te, rpmTag tag)
| Retrieve dependency tag set from transaction element.
rpmfi | rpmteFI (rpmte te, rpmTag tag)
| Retrieve file info tag set from transaction element.
void | rpmteColorDS (rpmte te, rpmTag tag)
| Calculate transaction element dependency colors/refs from file info.
int | rpmteChain (rpmte p, rpmte q, Header oh, const char *msg)
| Chain p <-> q forward/backward transaction element links.
int | rpmtsiOc (rpmtsi tsi)
| Return transaction element index.
rpmtsi | XrpmtsiFree (rpmtsi tsi, const char *fn, unsigned int ln)
| Destroy transaction element iterator.
rpmtsi | XrpmtsiInit (rpmts ts, const char *fn, unsigned int ln)
| Create transaction element iterator.
static rpmte | rpmtsiNextElement (rpmtsi tsi)
| Return next transaction element.
rpmte | rpmtsiNext (rpmtsi tsi, rpmElementType type)
| Return next transaction element of type.

## Variables

int | _rpmte_debug = 0
static int | __mydebug = 0

## Detailed Description

Routine(s) to handle an "rpmte" transaction element.

Definition in file rpmte.c.

## Define Documentation

#define _RPMTE_INTERNAL

Definition at line 14 of file rpmte.c.

## Function Documentation

static void addTE | ( | rpmts | ts,
|  | rpmte | p,
|  | Header | h,
|  | fnpyKey | key,
|  | rpmRelocation | relocs |
| ) |  |  | `[static]`

Initialize transaction element data from header.

Parameters:

  | ts | transaction set
  | p | transaction element
  | h | header
  | key | (TR_ADDED) package retrieval key (e.g. file name)
  | relocs | (TR_ADDED) package file relocations

Definition at line 90 of file rpmte.c.

References _free(), alloca(), _HE_s::c, headerGet(), headerIsEntry(), rpmRelocation_s::newPath, rpmRelocation_s::oldPath, _HE_s::p, rpmDataType_u::ptr, rpmdsNewPRCO(), rpmfiNew(), RPMTAG_ARCH, RPMTAG_BASENAMES, RPMTAG_EPOCH, RPMTAG_HDRID, RPMTAG_NVRA, RPMTAG_OS, RPMTAG_PKGID, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, RPMTAG_SOURCERPM, rpmteColorDS(), rpmtsSetRelocateElement(), rpmDataType_u::str, _HE_s::tag, rpmDataType_u::ui32p, rpmDataType_u::ui8p, xmalloc(), and xstrdup().

Referenced by rpmteNew().

static void delTE | ( | rpmte | p | ) | `[static]`

Destroy transaction element data.

Parameters:

  | p | transaction element

Definition at line 35 of file rpmte.c.

References _free(), argvFree(), fdFree, headerFree(), rpmRelocation_s::newPath, rpmRelocation_s::oldPath, rpmfiFree(), and rpmteCleanDS().

Referenced by rpmteFree().

static rpmte rpmtsiNextElement | ( | rpmtsi | tsi | ) | `[static]`

Return next transaction element.

Parameters:

  | tsi | transaction element iterator

Returns:
  transaction element, NULL on termination

Definition at line 711 of file rpmte.c.

References rpmtsElement(), and rpmtsNElements().

Referenced by rpmtsiNext().

## Variable Documentation

int __mydebug = 0`[static]`

Definition at line 593 of file rpmte.c.

Referenced by rpmteChain().

int _rpmte_debug = 0

Definition at line 21 of file rpmte.c.

Referenced by rpmte_Debug(), XrpmtsiFree(), and XrpmtsiInit().