4 /** \ingroup rpmts rpmte
6 * Structures used for an "rpmte" transaction element.
9 #include <rpm/rpmtypes.h>
17 * Transaction element type.
19 typedef enum rpmElementType_e {
20 TR_ADDED = (1 << 0), /*!< Package will be installed. */
21 TR_REMOVED = (1 << 1) /*!< Package will be removed. */
24 typedef rpmFlags rpmElementTypes;
27 * Retrieve header from transaction element.
28 * @param te transaction element
29 * @return header (new reference)
31 Header rpmteHeader(rpmte te);
34 * Save header into transaction element.
35 * @param te transaction element
39 Header rpmteSetHeader(rpmte te, Header h);
42 * Retrieve type of transaction element.
43 * @param te transaction element
46 rpmElementType rpmteType(rpmte te);
49 * Retrieve name string of transaction element.
50 * @param te transaction element
53 const char * rpmteN(rpmte te);
56 * Retrieve epoch string of transaction element.
57 * @param te transaction element
58 * @return epoch string
60 const char * rpmteE(rpmte te);
63 * Retrieve version string of transaction element.
64 * @param te transaction element
65 * @return version string
67 const char * rpmteV(rpmte te);
70 * Retrieve release string of transaction element.
71 * @param te transaction element
72 * @return release string
74 const char * rpmteR(rpmte te);
77 * Retrieve arch string of transaction element.
78 * @param te transaction element
81 const char * rpmteA(rpmte te);
84 * Retrieve os string of transaction element.
85 * @param te transaction element
88 const char * rpmteO(rpmte te);
91 * Retrieve isSource attribute of transaction element.
92 * @param te transaction element
93 * @return isSource attribute
95 int rpmteIsSource(rpmte te);
98 * Retrieve color bits of transaction element.
99 * @param te transaction element
102 rpm_color_t rpmteColor(rpmte te);
105 * Set color bits of transaction element.
106 * @param te transaction element
107 * @param color new color bits
108 * @return previous color bits
110 rpm_color_t rpmteSetColor(rpmte te, rpm_color_t color);
113 * Retrieve last instance installed to the database.
114 * @param te transaction element
115 * @return last install instance.
117 unsigned int rpmteDBInstance(rpmte te);
120 * Set last instance installed to the database.
121 * @param te transaction element
122 * @param instance Database instance of last install element.
123 * @return last install instance.
125 void rpmteSetDBInstance(rpmte te, unsigned int instance);
128 * Retrieve size in bytes of package file.
129 * @todo Signature header is estimated at 256b.
130 * @param te transaction element
131 * @return size in bytes of package file.
133 rpm_loff_t rpmtePkgFileSize(rpmte te);
136 * Retrieve parent transaction element.
137 * @param te transaction element
138 * @return parent transaction element
140 rpmte rpmteParent(rpmte te);
143 * Set parent transaction element.
144 * @param te transaction element
145 * @param pte new parent transaction element
146 * @return previous parent transaction element
148 rpmte rpmteSetParent(rpmte te, rpmte pte);
151 * Return problem set info of transaction element.
152 * @param te transaction element
153 * @return problem set (or NULL if none)
155 rpmps rpmteProblems(rpmte te);
158 * Destroy problem set info of transaction element.
159 * @param te transaction element
161 void rpmteCleanProblems(rpmte te);
164 * Destroy dependency set info of transaction element.
165 * @param te transaction element
167 void rpmteCleanDS(rpmte te);
170 * Set dependent element of TR_REMOVED transaction element.
171 * @param te transaction element
172 * @param depends dependent transaction element
174 void rpmteSetDependsOn(rpmte te, rpmte depends);
177 * Retrieve dependent element of TR_REMOVED transaction element.
178 * @param te transaction element
179 * @return dependent transaction element
181 rpmte rpmteDependsOn(rpmte te);
184 * Retrieve rpmdb instance of TR_REMOVED transaction element.
185 * @param te transaction element
186 * @return rpmdb instance
188 int rpmteDBOffset(rpmte te);
191 * Retrieve [epoch:]version-release string from transaction element.
192 * @param te transaction element
193 * @return [epoch:]version-release string
195 const char * rpmteEVR(rpmte te);
198 * Retrieve name-[epoch:]version-release string from transaction element.
199 * @param te transaction element
200 * @return name-[epoch:]version-release string
202 const char * rpmteNEVR(rpmte te);
205 * Retrieve name-[epoch:]version-release.arch string from transaction element.
206 * @param te transaction element
207 * @return name-[epoch:]version-release.arch string
209 const char * rpmteNEVRA(rpmte te);
212 * Retrieve key from transaction element.
213 * @param te transaction element
216 fnpyKey rpmteKey(rpmte te);
219 * Return failure status of transaction element.
220 * If the element itself failed, this is 1, larger count means one of
221 * it's parents failed.
222 * @param te transaction element
223 * @return number of failures for this transaction element
225 int rpmteFailed(rpmte te);
228 * Retrieve dependency tag set from transaction element.
229 * @param te transaction element
230 * @param tag dependency tag
231 * @return dependency tag set
233 rpmds rpmteDS(rpmte te, rpmTagVal tag);
236 * Retrieve file info tag set from transaction element.
237 * @param te transaction element
238 * @return file info tag set
240 rpmfi rpmteFI(rpmte te);
243 * Retrieve list of collections
244 * @param te transaction element
245 * @return list of collections
247 ARGV_const_t rpmteCollections(rpmte te);
250 * Determine a transaction element is part of a collection
251 * @param te transaction element
252 * @param collname collection name
253 * @return 1 if collname is part of a collection, 0 if not
255 int rpmteHasCollection(rpmte te, const char * collname);