RPMTE Transaction Element API.
Collaboration diagram for RPMTE Transaction Element API.:

## Files

file | rpmlib.h
| In Memoriam: Steve Taylor stayl.nosp@m.or@r.nosp@m.edhat.nosp@m..com was here, now he's not.
file | rpmte.h
| Structures used for an "rpmte" transaction element.

## Typedefs

typedef struct tsortInfo_s * | tsortInfo
| Transaction element ordering chain linkage. More...
typedef struct rpmtsi_s * | rpmtsi
| Transaction element iterator. More...
typedef enum rpmElementType_e | rpmElementType
| Transaction element type. More...
typedef struct rpmte_s * | rpmte
| An element of a transaction set, i.e. More...

## Enumerations

enum | rpmElementType_e { TR_ADDED = (1 << 0), TR_REMOVED = (1 << 1) }
| Transaction element type. More...

## Functions

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

## Detailed Description

## Typedef Documentation

typedef enum rpmElementType_e rpmElementType

Transaction element type.

typedef struct rpmte_s* rpmte

An element of a transaction set, i.e.

a TR_ADDED or TR_REMOVED package.

Definition at line 33 of file rpmtypes.h.

typedef struct rpmtsi_s* rpmtsi

Transaction element iterator.

Definition at line 25 of file rpmte.h.

typedef struct tsortInfo_s* tsortInfo

Transaction element ordering chain linkage.

Definition at line 20 of file rpmte.h.

## Enumeration Type Documentation

enum rpmElementType_e

Transaction element type.

Enumerator
TR_ADDED | Package will be installed.
TR_REMOVED | Package will be removed.

Definition at line 30 of file rpmte.h.

## Function Documentation

const char* rpmteA | ( | rpmte | te | ) |

Retrieve arch string of transaction element.

Parameters

  te | transaction element

Returns
  arch string

Definition at line 329 of file rpmte.c.

Referenced by rpmpsmStage(), rpmte_A(), rpmte_print(), rpmtsAddInstallElement(), rpmtsCheck(), and rpmtsRun().

int rpmteBreadth | ( | rpmte | te | ) |

Retrieve dependency tree breadth of transaction element.

Parameters

  te | transaction element

Returns
  breadth

Definition at line 389 of file rpmte.c.

Referenced by rpmte_Breadth().

int rpmteChain | ( | rpmte | p,
|  | rpmte | q,
|  | Header | oh,
|  | const char * | msg
| ) |  |

Chain p <-> q forward/backward transaction element links.

Parameters

  p | installed element (needs backward link)
  q | erased element (needs forward link)
  oh | erased element header
  msg | operation identifier for debugging (NULL uses "")

Returns
  0 on success

Definition at line 644 of file rpmte.c.

References _free(), alloca(), argvAdd(), _HE_s::c, headerGet(), _HE_s::p, rpmDataType_u::ptr, RPMTAG_HDRID, RPMTAG_NVRA, RPMTAG_PKGID, rpmDataType_u::str, _HE_s::tag, rpmDataType_u::ui8p, and xmalloc().

Referenced by findErases(), rpmtsAddObsoletes(), rpmtsAddUpgrades(), and rpmtsEraseDebuginfo().

void rpmteCleanDS | ( | rpmte | te | ) |

Destroy dependency set info of transaction element.

Parameters

  te | transaction element

Definition at line 29 of file rpmte.c.

References rpmdsFreePRCO().

Referenced by delTE(), and rpmtsClean().

rpmuint32_t rpmteColor | ( | rpmte | te | ) |

Retrieve color bits of transaction element.

Parameters

  te | transaction element

Returns
  color bits

Definition at line 344 of file rpmte.c.

Referenced by addQ(), handleInstInstalledFiles(), populateInstallHeader(), rpmte_Color(), rpmtsCheck(), and rpmtsRun().

void rpmteColorDS | ( | rpmte | te,
|  | rpmTag | tag
| ) |  |

Calculate transaction element dependency colors/refs from file info.

Parameters

  te | transaction element
  tag | dependency tag (RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME)

Definition at line 575 of file rpmte.c.

References alloca(), rpmdsCount(), rpmdsInit(), rpmdsNext(), rpmdsSetColor(), rpmdsSetRefs(), rpmfiFC(), rpmfiFColor(), rpmfiFDepends(), rpmfiInit(), rpmfiNext(), RPMTAG_BASENAMES, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, rpmteDS(), and rpmteFI().

Referenced by addTE().

unsigned int rpmteDBInstance | ( | rpmte | te | ) |

Retrieve last instance installed to the database.

Parameters

  te | transaction element

Returns
  last install instance.

Definition at line 265 of file rpmte.c.

int rpmteDBOffset | ( | rpmte | te | ) |

Retrieve rpmdb instance of TR_REMOVED transaction element.

Parameters

  te | transaction element

Returns
  rpmdb instance

Definition at line 515 of file rpmte.c.

Referenced by rpmte_DBOffset(), and rpmtsRun().

int rpmteDegree | ( | rpmte | te | ) |

Retrieve number of children of transaction element.

Parameters

  te | transaction element

Returns
  tree index

Definition at line 451 of file rpmte.c.

Referenced by rpmte_Degree(), and rpmtsOrder().

int rpmteDepth | ( | rpmte | te | ) |

Retrieve dependency tree depth of transaction element.

Parameters

  te | transaction element

Returns
  depth

Definition at line 374 of file rpmte.c.

Referenced by addRelation(), rpmte_Depth(), and rpmtsOrder().

rpmds rpmteDS | ( | rpmte | te,
|  | rpmTag | tag
| ) |  |

Retrieve dependency tag set from transaction element.

Parameters

  te | transaction element
  tag | dependency tag

Returns
  dependency tag set

Definition at line 557 of file rpmte.c.

References rpmdsFromPRCO().

Referenced by rpmte_DS(), rpmteColorDS(), rpmtsAddInstallElement(), rpmtsAddObsoletes(), rpmtsCheck(), rpmtsOrder(), and zapRelation().

const char* rpmteE | ( | rpmte | te | ) |

Retrieve epoch string of transaction element.

Parameters

  te | transaction element

Returns
  epoch string

Definition at line 307 of file rpmte.c.

Referenced by ensureOlder(), rpmpsmStage(), rpmte_E(), and rpmtsRun().

FD_t rpmteFd | ( | rpmte | te | ) |

Retrieve file handle from transaction element.

Parameters

  te | transaction element

Returns
  file handle

Definition at line 545 of file rpmte.c.

Referenced by rpmpsmStage(), and rpmtsRun().

rpmfi rpmteFI | ( | rpmte | te,
|  | rpmTag | tag
| ) |  |

Retrieve file info tag set from transaction element.

Parameters

  te | transaction element
  tag | file info tag (RPMTAG_BASENAMES)

Returns
  file info tag set

Definition at line 562 of file rpmte.c.

References RPMTAG_BASENAMES.

Referenced by rpmte_FI(), rpmteColorDS(), rpmtsAddInstallElement(), rpmtsCheck(), rpmtsCheckDSIProblems(), and rpmtsOrder().

void rpmteFreeTSI | ( | rpmte | te | ) |

Destroy tsort info of transaction element.

Parameters

  te | transaction element

Definition at line 473 of file rpmte.c.

References _free(), and rpmteTSI().

Referenced by rpmteNewTSI(), and rpmtsOrder().

const char* rpmteHdrid | ( | rpmte | te | ) |

Retrieve hdrid string from transaction element.

Parameters

  te | transaction element

Returns
  hdrid string

Definition at line 535 of file rpmte.c.

Referenced by rpmpsmStage(), and rpmte_Hdrid().

Header rpmteHeader | ( | rpmte | te | ) |

Retrieve header from transaction element.

Parameters

  te | transaction element

Returns
  header

Definition at line 277 of file rpmte.c.

References headerLink().

Referenced by rpmgiNext().

int rpmteIsSource | ( | rpmte | te | ) |

Retrieve isSource attribute of transaction element.

Parameters

  te | transaction element

Returns
  isSource attribute

Definition at line 339 of file rpmte.c.

Referenced by rpmtsAddInstallElement(), and rpmtsRun().

fnpyKey rpmteKey | ( | rpmte | te | ) |

Retrieve key from transaction element.

Parameters

  te | transaction element

Returns
  key

Definition at line 552 of file rpmte.c.

Referenced by ensureOlder(), handleInstInstalledFiles(), handleOverlappedFiles(), relocateFileList(), rpmte_Key(), rpmtsAddInstallElement(), rpmtsCheckDSIProblems(), rpmtsNotify(), and rpmtsRun().

const char* rpmteN | ( | rpmte | te | ) |

Retrieve name string of transaction element.

Parameters

  te | transaction element

Returns
  name string

Definition at line 302 of file rpmte.c.

Referenced by ensureOlder(), ignoreDep(), rpmpsmStage(), rpmte_N(), rpmtsAddInstallElement(), rpmtsAddObsoletes(), rpmtsAddUpgrades(), rpmtsRun(), and runTriggers().

const char* rpmteNEVR | ( | rpmte | te | ) |

Retrieve name-version-release string from transaction element.

Parameters

  te | transaction element

Returns
  name-version-release string

Definition at line 520 of file rpmte.c.

Referenced by ensureOlder(), handleOverlappedFiles(), relocateFileList(), rpmpsmStage(), rpmte_NEVR(), rpmte_print(), rpmtsCheck(), rpmtsCheckDSIProblems(), and rpmtsRun().

const char* rpmteNEVRA | ( | rpmte | te | ) |

Retrieve name-version-release.arch string from transaction element.

Parameters

  te | transaction element

Returns
  name-version-release.arch string

Definition at line 525 of file rpmte.c.

Referenced by handleInstInstalledFiles(), rpmte_NEVRA(), rpmtsAddObsoletes(), rpmtsAddUpgrades(), rpmtsCheck(), rpmtsEraseDebuginfo(), rpmtsOrder(), rpmtsRollback(), and zapRelation().

void rpmteNewTSI | ( | rpmte | te | ) |

Initialize tsort info of transaction element.

Parameters

  te | transaction element

Definition at line 491 of file rpmte.c.

References rpmteFreeTSI(), and xcalloc().

Referenced by rpmtsOrder().

int rpmteNpreds | ( | rpmte | te | ) |

Retrieve tsort no.

of predecessors of transaction element.

Parameters

  te | transaction element

Returns
  no. of predecessors

Definition at line 404 of file rpmte.c.

Referenced by rpmte_Npreds(), and rpmtsOrder().

const char* rpmteO | ( | rpmte | te | ) |

Retrieve os string of transaction element.

Parameters

  te | transaction element

Returns
  os string

Definition at line 334 of file rpmte.c.

Referenced by rpmpsmStage(), rpmte_O(), rpmtsAddInstallElement(), rpmtsCheck(), and rpmtsRun().

rpmuint32_t* rpmteOriginTid | ( | rpmte | te | ) |

Retrieve transaction start time that package was first installed.

Parameters

  te | transaction element

Returns
  origin time

Definition at line 364 of file rpmte.c.

Referenced by populateInstallHeader().

rpmuint32_t* rpmteOriginTime | ( | rpmte | te | ) |

Retrieve time that package was first installed.

Parameters

  te | transaction element

Returns
  origin time

Definition at line 369 of file rpmte.c.

Referenced by populateInstallHeader().

rpmte rpmteParent | ( | rpmte | te | ) |

Retrieve parent transaction element.

Parameters

  te | transaction element

Returns
  parent transaction element

Definition at line 434 of file rpmte.c.

Referenced by rpmte_Parent().

rpmuint32_t rpmtePkgFileSize | ( | rpmte | te | ) |

Retrieve size in bytes of package file.

Todo:
  Signature header is estimated at 256b.

Parameters

  te | transaction element

Returns
  size in bytes of package file.

Definition at line 359 of file rpmte.c.

Referenced by rpmte_PkgFileSize(), and rpmtsOrder().

const char* rpmtePkgid | ( | rpmte | te | ) |

Retrieve pkgid string from transaction element.

Parameters

  te | transaction element

Returns
  pkgid string

Definition at line 530 of file rpmte.c.

Referenced by rpmte_Pkgid().

const char* rpmteR | ( | rpmte | te | ) |

Retrieve release string of transaction element.

Parameters

  te | transaction element

Returns
  release string

Definition at line 317 of file rpmte.c.

Referenced by ensureOlder(), rpmpsmStage(), rpmte_R(), and rpmtsRun().

int rpmteSetBreadth | ( | rpmte | te,
|  | int | nbreadth
| ) |  |

Set dependency tree breadth of transaction element.

Parameters

  te | transaction element
  nbreadth | new breadth

Returns
  previous breadth

Definition at line 394 of file rpmte.c.

Referenced by rpmtsOrder().

rpmuint32_t rpmteSetColor | ( | rpmte | te,
|  | rpmuint32_t | color
| ) |  |

Set color bits of transaction element.

Parameters

  te | transaction element
  color | new color bits

Returns
  previous color bits

Definition at line 349 of file rpmte.c.

void rpmteSetDBInstance | ( | rpmte | te,
|  | unsigned int | instance
| ) |  |

Set last instance installed to the database.

Parameters

  te | transaction element
  instance | Database instance of last install element.

Returns
  last install instance.

Definition at line 271 of file rpmte.c.

Referenced by rpmpsmStage().

int rpmteSetDegree | ( | rpmte | te,
|  | int | ndegree
| ) |  |

Set number of children of transaction element.

Parameters

  te | transaction element
  ndegree | new number of children

Returns
  previous number of children

Definition at line 456 of file rpmte.c.

Referenced by rpmtsOrder().

int rpmteSetDepth | ( | rpmte | te,
|  | int | ndepth
| ) |  |

Set dependency tree depth of transaction element.

Parameters

  te | transaction element
  ndepth | new depth

Returns
  previous depth

Definition at line 379 of file rpmte.c.

Referenced by addRelation(), and rpmtsOrder().

Header rpmteSetHeader | ( | rpmte | te,
|  | Header | h
| ) |  |

Save header into transaction element.

Parameters

  te | transaction element
  h | header

Returns
  NULL always

Definition at line 284 of file rpmte.c.

References headerFree(), and headerLink().

Referenced by rpmInstallSourcePackage(), rpmpsmStage(), and rpmtsAddInstallElement().

int rpmteSetNpreds | ( | rpmte | te,
|  | int | npreds
| ) |  |

Set tsort no.

of predecessors of transaction element.

Parameters

  te | transaction element
  npreds | new no. of predecessors

Returns
  previous no. of predecessors

Definition at line 409 of file rpmte.c.

Referenced by rpmtsOrder().

rpmte rpmteSetParent | ( | rpmte | te,
|  | rpmte | pte
| ) |  |

Set parent transaction element.

Parameters

  te | transaction element
  pte | new parent transaction element

Returns
  previous parent transaction element

Definition at line 439 of file rpmte.c.

Referenced by rpmtsOrder().

int rpmteSetTree | ( | rpmte | te,
|  | int | ntree
| ) |  |

Set tree index of transaction element.

Parameters

  te | transaction element
  ntree | new tree index

Returns
  previous tree index

Definition at line 424 of file rpmte.c.

Referenced by rpmtsOrder().

const char* rpmteSourcerpm | ( | rpmte | te | ) |

Retrieve sourcerpm string from transaction element.

Parameters

  te | transaction element

Returns
  sourcerpm string

Definition at line 540 of file rpmte.c.

Referenced by rpmtsEraseDebuginfo().

int rpmteTree | ( | rpmte | te | ) |

Retrieve tree index of transaction element.

Parameters

  te | transaction element

Returns
  tree index

Definition at line 419 of file rpmte.c.

Referenced by rpmte_Tree(), and rpmtsOrder().

tsortInfo rpmteTSI | ( | rpmte | te | ) |

Retrieve tsort info for transaction element.

Parameters

  te | transaction element

Returns
  tsort info

Definition at line 466 of file rpmte.c.

Referenced by addQ(), addRelation(), markLoop(), rpmteFreeTSI(), rpmtsOrder(), and zapRelation().

rpmElementType rpmteType | ( | rpmte | te | ) |

Retrieve type of transaction element.

Parameters

  te | transaction element

Returns
  type

Definition at line 297 of file rpmte.c.

Referenced by _processFailedPackage(), addQ(), addRelation(), fsmMapPath(), fsmSetup(), handleOverlappedFiles(), iosmMapPath(), iosmSetup(), rpmfiNew(), rpmfiTypeString(), rpmgiNext(), rpmte_print(), rpmte_TEType(), rpmtsAddInstallElement(), rpmtsOrder(), rpmtsRun(), and zapRelation().

const char* rpmteV | ( | rpmte | te | ) |

Retrieve version string of transaction element.

Parameters

  te | transaction element

Returns
  version string

Definition at line 312 of file rpmte.c.

Referenced by ensureOlder(), rpmpsmStage(), rpmte_V(), and rpmtsRun().

rpmtsi rpmtsiFree | ( | rpmtsi | tsi | ) |

Destroy transaction element iterator.

Parameters

  tsi | transaction element iterator

Returns
  NULL on last dereference

Referenced by addRelation(), markLinkedFailed(), rpmgiFini(), rpmgiNext(), rpmts_iternext(), rpmtsAddInstallElement(), rpmtsCheck(), rpmtsClean(), rpmtsEmpty(), rpmtsOrder(), rpmtsRollback(), and rpmtsRun().

rpmtsi rpmtsiInit | ( | rpmts | ts | ) |

Create transaction element iterator.

Parameters

  ts | transaction set

Returns
  transaction element iterator

Referenced by addRelation(), markLinkedFailed(), rpmgiNext(), rpmts_iternext(), rpmtsAddInstallElement(), rpmtsCheck(), rpmtsClean(), rpmtsEmpty(), rpmtsOrder(), rpmtsRollback(), and rpmtsRun().

rpmte rpmtsiNext | ( | rpmtsi | tsi,
|  | rpmElementType | type
| ) |  |

Return next transaction element of type.

Parameters

  tsi | transaction element iterator
  type | transaction element type selector (0 for any)

Returns
  next transaction element of type, NULL on termination

Definition at line 791 of file rpmte.c.

References rpmtsiNextElement().

Referenced by addRelation(), markLinkedFailed(), rpmgiNext(), rpmts_iternext(), rpmtsAddInstallElement(), rpmtsCheck(), rpmtsClean(), rpmtsEmpty(), rpmtsOrder(), rpmtsRollback(), and rpmtsRun().

int rpmtsiOc | ( | rpmtsi | tsi | ) |

Return transaction element index.

Parameters

  tsi | transaction element iterator

Returns
  transaction element index

Definition at line 717 of file rpmte.c.

Referenced by rpmtsOrder(), and rpmtsRun().

rpmtsi XrpmtsiInit | ( | rpmts | ts,
|  | const char * | fn,
|  | unsigned int | ln
| ) |  |

Create transaction element iterator.

Parameters

  ts | transaction set
  fn |
  ln |

Returns
  transaction element iterator

Definition at line 751 of file rpmte.c.

References rpmioLinkPoolItem(), rpmtsiGetPool(), rpmtsLink(), and rpmtsNElements().