4 /** \ingroup rpmts rpmte
6 * Structures used for an "rpmte" transaction element.
9 #include <rpm/rpmtypes.h>
17 extern int _rpmte_debug;
20 * Transaction element type.
22 typedef enum rpmElementType_e {
23 TR_ADDED = 1, /*!< Package will be installed. */
24 TR_REMOVED = 2, /*!< Package will be removed. */
28 * Destroy a transaction element.
29 * @param te transaction element
32 rpmte rpmteFree(rpmte te);
35 * Create a transaction element.
38 * @param type TR_ADDED/TR_REMOVED
39 * @param key (TR_ADDED) package retrieval key (e.g. file name)
40 * @param relocs (TR_ADDED) package file relocations
41 * @param dboffset unused
42 * @return new transaction element
44 rpmte rpmteNew(const rpmts ts, Header h, rpmElementType type,
46 rpmRelocation * relocs,
50 * Retrieve header from transaction element.
51 * @param te transaction element
54 Header rpmteHeader(rpmte te);
57 * Save header into transaction element.
58 * @param te transaction element
62 Header rpmteSetHeader(rpmte te, Header h);
65 * Retrieve type of transaction element.
66 * @param te transaction element
69 rpmElementType rpmteType(rpmte te);
72 * Retrieve name string of transaction element.
73 * @param te transaction element
76 const char * rpmteN(rpmte te);
79 * Retrieve epoch string of transaction element.
80 * @param te transaction element
81 * @return epoch string
83 const char * rpmteE(rpmte te);
86 * Retrieve version string of transaction element.
87 * @param te transaction element
88 * @return version string
90 const char * rpmteV(rpmte te);
93 * Retrieve release string of transaction element.
94 * @param te transaction element
95 * @return release string
97 const char * rpmteR(rpmte te);
100 * Retrieve arch string of transaction element.
101 * @param te transaction element
102 * @return arch string
104 const char * rpmteA(rpmte te);
107 * Retrieve os string of transaction element.
108 * @param te transaction element
111 const char * rpmteO(rpmte te);
114 * Retrieve isSource attribute of transaction element.
115 * @param te transaction element
116 * @return isSource attribute
118 int rpmteIsSource(rpmte te);
121 * Retrieve color bits of transaction element.
122 * @param te transaction element
125 rpm_color_t rpmteColor(rpmte te);
128 * Set color bits of transaction element.
129 * @param te transaction element
130 * @param color new color bits
131 * @return previous color bits
133 rpm_color_t rpmteSetColor(rpmte te, rpm_color_t color);
136 * Retrieve last instance installed to the database.
137 * @param te transaction element
138 * @return last install instance.
140 unsigned int rpmteDBInstance(rpmte te);
143 * Set last instance installed to the database.
144 * @param te transaction element
145 * @param instance Database instance of last install element.
146 * @return last install instance.
148 void rpmteSetDBInstance(rpmte te, unsigned int instance);
151 * Retrieve size in bytes of package file.
152 * @todo Signature header is estimated at 256b.
153 * @param te transaction element
154 * @return size in bytes of package file.
156 rpm_loff_t rpmtePkgFileSize(rpmte te);
159 * Retrieve parent transaction element.
160 * @param te transaction element
161 * @return parent transaction element
163 rpmte rpmteParent(rpmte te);
166 * Set parent transaction element.
167 * @param te transaction element
168 * @param pte new parent transaction element
169 * @return previous parent transaction element
171 rpmte rpmteSetParent(rpmte te, rpmte pte);
174 * Return problem set info of transaction element.
175 * @param te transaction element
176 * @return problem set (or NULL if none)
178 rpmps rpmteProblems(rpmte te);
181 * Destroy problem set info of transaction element.
182 * @param te transaction element
184 void rpmteCleanProblems(rpmte te);
187 * Destroy dependency set info of transaction element.
188 * @param te transaction element
190 void rpmteCleanDS(rpmte te);
193 * Set dependent element of TR_REMOVED transaction element.
194 * @param te transaction element
195 * @param depends dependent transaction element
197 void rpmteSetDependsOn(rpmte te, rpmte depends);
200 * Retrieve dependent element of TR_REMOVED transaction element.
201 * @param te transaction element
202 * @return dependent transaction element
204 rpmte rpmteDependsOn(rpmte te);
207 * Retrieve rpmdb instance of TR_REMOVED transaction element.
208 * @param te transaction element
209 * @return rpmdb instance
211 int rpmteDBOffset(rpmte te);
214 * Retrieve [epoch:]version-release string from transaction element.
215 * @param te transaction element
216 * @return [epoch:]version-release string
218 const char * rpmteEVR(rpmte te);
221 * Retrieve name-[epoch:]version-release string from transaction element.
222 * @param te transaction element
223 * @return name-[epoch:]version-release string
225 const char * rpmteNEVR(rpmte te);
228 * Retrieve name-[epoch:]version-release.arch string from transaction element.
229 * @param te transaction element
230 * @return name-[epoch:]version-release.arch string
232 const char * rpmteNEVRA(rpmte te);
235 * Retrieve key from transaction element.
236 * @param te transaction element
239 fnpyKey rpmteKey(rpmte te);
242 * Return failure status of transaction element.
243 * If the element itself failed, this is 1, larger count means one of
244 * it's parents failed.
245 * @param te transaction element
246 * @return number of failures for this transaction element
248 int rpmteFailed(rpmte te);
251 * Retrieve dependency tag set from transaction element.
252 * @param te transaction element
253 * @param tag dependency tag
254 * @return dependency tag set
256 rpmds rpmteDS(rpmte te, rpmTag tag);
259 * Retrieve file info tag set from transaction element.
260 * @param te transaction element
261 * @return file info tag set
263 rpmfi rpmteFI(rpmte te);
266 * Calculate transaction element dependency colors/refs from file info.
267 * @param te transaction element
268 * @param tag dependency tag (RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME)
270 void rpmteColorDS(rpmte te, rpmTag tag);