rpm 6.1.90
The RPM Package Manager
Loading...
Searching...
No Matches
rpmtd.h
Go to the documentation of this file.
1#ifndef _RPMTD_H
2#define _RPMTD_H
3
9
10#include <rpm/rpmtag.h>
11#include <rpm/argv.h>
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
21 RPMTD_NONE = 0,
22 RPMTD_ALLOCED = (1 << 0), /* was memory allocated? */
23 RPMTD_PTR_ALLOCED = (1 << 1), /* were array pointers allocated? */
24 RPMTD_IMMUTABLE = (1 << 2), /* header data or modifiable? */
25 RPMTD_ARGV = (1 << 3), /* string array is NULL-terminated? */
26 RPMTD_INVALID = (1 << 4), /* invalid data (in header) */
27};
28
29typedef rpmFlags rpmtdFlags;
30
35struct rpmtd_s {
36 rpm_tag_t tag;
37 rpm_tagtype_t type;
38 rpm_count_t count;
39 rpm_data_t data;
40 rpmtdFlags flags;
41 int ix;
42 rpm_count_t size;
43};
44
49RPM_PUBLIC_API
50rpmtd rpmtdNew(void);
51
57RPM_PUBLIC_API
58rpmtd rpmtdFree(rpmtd td);
59
65RPM_PUBLIC_API
66void rpmtdReset(rpmtd td);
67
73RPM_PUBLIC_API
74void rpmtdFreeData(rpmtd td);
75
81RPM_PUBLIC_API
82rpm_count_t rpmtdCount(rpmtd td);
83
90RPM_PUBLIC_API
91rpm_count_t rpmtdSize(rpmtd td);
92
98RPM_PUBLIC_API
99rpmTagVal rpmtdTag(rpmtd td);
100
106RPM_PUBLIC_API
107rpmTagType rpmtdType(rpmtd td);
108
114RPM_PUBLIC_API
116
122RPM_PUBLIC_API
123rpmtdFlags rpmtdGetFlags(rpmtd td);
124
130RPM_PUBLIC_API
131int rpmtdGetIndex(rpmtd td);
132
141RPM_PUBLIC_API
142int rpmtdSetIndex(rpmtd td, int index);
143
149RPM_PUBLIC_API
150int rpmtdInit(rpmtd td);
151
157RPM_PUBLIC_API
158int rpmtdNext(rpmtd td);
159
165RPM_PUBLIC_API
166uint32_t *rpmtdNextUint32(rpmtd td);
167
173RPM_PUBLIC_API
174uint64_t *rpmtdNextUint64(rpmtd td);
175
181RPM_PUBLIC_API
182const char *rpmtdNextString(rpmtd td);
183
192RPM_PUBLIC_API
193char *rpmtdGetChar(rpmtd td);
194
203RPM_PUBLIC_API
204uint16_t * rpmtdGetUint16(rpmtd td);
205
214RPM_PUBLIC_API
215uint32_t * rpmtdGetUint32(rpmtd td);
216
225RPM_PUBLIC_API
226uint64_t * rpmtdGetUint64(rpmtd td);
227
236RPM_PUBLIC_API
237const char * rpmtdGetString(rpmtd td);
238
248RPM_PUBLIC_API
249uint64_t rpmtdGetNumber(rpmtd td);
250
254typedef enum rpmtdFormats_e {
255 RPMTD_FORMAT_STRING = 0, /* plain string (any type) */
256 RPMTD_FORMAT_ARMOR = 1, /* ascii armor format (bin types) */
257 RPMTD_FORMAT_BASE64 = 2, /* base64 encoding (bin types) */
258 RPMTD_FORMAT_PGPSIG = 3, /* pgp/gpg signature (bin types) */
259 RPMTD_FORMAT_DEPFLAGS = 4, /* dependency flags (int types) */
260 RPMTD_FORMAT_FFLAGS = 5, /* file flags (int types) */
261 RPMTD_FORMAT_PERMS = 6, /* permission string (int types) */
262 RPMTD_FORMAT_TRIGGERTYPE = 7, /* trigger types (int types) */
263 RPMTD_FORMAT_XML = 8, /* xml format (any type) */
264 RPMTD_FORMAT_OCTAL = 9, /* octal format (int types) */
265 RPMTD_FORMAT_HEX = 10, /* hex format (int types) */
266 RPMTD_FORMAT_DATE = 11, /* date format (int types) */
267 RPMTD_FORMAT_DAY = 12, /* day format (int types) */
268 RPMTD_FORMAT_SHESCAPE = 13, /* shell escaped (any type) */
269 RPMTD_FORMAT_ARRAYSIZE = 14, /* size of contained array (any type) */
270 RPMTD_FORMAT_DEPTYPE = 15, /* dependency types (int types) */
271 RPMTD_FORMAT_FSTATE = 16, /* file states (int types) */
272 RPMTD_FORMAT_VFLAGS = 17, /* file verify flags (int types) */
273 RPMTD_FORMAT_EXPAND = 18, /* macro expansion (string types) */
274 RPMTD_FORMAT_FSTATUS = 19, /* file verify status (int types) */
275 RPMTD_FORMAT_HUMANSI = 20, /* human readable value, K = 1000 (int types) */
276 RPMTD_FORMAT_HUMANIEC = 21, /* human readable value, K = 1024 (int types) */
277 RPMTD_FORMAT_TAGNAME = 22, /* tag name (any type) */
278 RPMTD_FORMAT_TAGNUM = 23, /* tag number (any type) */
279 RPMTD_FORMAT_JSON = 24, /* json format (any type) */
280 RPMTD_FORMAT_HASHALGO = 25, /* digest algorithm name (int types) */
282
294RPM_PUBLIC_API
295char *rpmtdFormat(rpmtd td, rpmtdFormats fmt, const char *errmsg);
296
305RPM_PUBLIC_API
306int rpmtdSetTag(rpmtd td, rpmTagVal tag);
307
319RPM_PUBLIC_API
320int rpmtdFromUint8(rpmtd td, rpmTagVal tag, uint8_t *data, rpm_count_t count);
321
332RPM_PUBLIC_API
333int rpmtdFromUint16(rpmtd td, rpmTagVal tag, uint16_t *data, rpm_count_t count);
334
345RPM_PUBLIC_API
346int rpmtdFromUint32(rpmtd td, rpmTagVal tag, uint32_t *data, rpm_count_t count);
347
358RPM_PUBLIC_API
359int rpmtdFromUint64(rpmtd td, rpmTagVal tag, uint64_t *data, rpm_count_t count);
360
369RPM_PUBLIC_API
370int rpmtdFromString(rpmtd td, rpmTagVal tag, const char *data);
371
382RPM_PUBLIC_API
383int rpmtdFromStringArray(rpmtd td, rpmTagVal tag, const char **data, rpm_count_t count);
384
394RPM_PUBLIC_API
395int rpmtdFromArgv(rpmtd td, rpmTagVal tag, ARGV_t argv);
396
406RPM_PUBLIC_API
407int rpmtdFromArgi(rpmtd td, rpmTagVal tag, ARGI_t argi);
408
417RPM_PUBLIC_API
418rpmtd rpmtdDup(rpmtd td);
419
426RPM_PUBLIC_API
427rpmsid * rpmtdToPool(rpmtd td, rpmstrPool pool);
428
429#ifdef __cplusplus
430}
431#endif
432
433#endif /* _RPMTD_H */
enum rpmTagClass_e rpmTagClass
RPM_PUBLIC_API void rpmtdReset(rpmtd td)
RPM_PUBLIC_API uint32_t * rpmtdNextUint32(rpmtd td)
RPM_PUBLIC_API rpmTagVal rpmtdTag(rpmtd td)
RPM_PUBLIC_API int rpmtdNext(rpmtd td)
RPM_PUBLIC_API uint16_t * rpmtdGetUint16(rpmtd td)
RPM_PUBLIC_API rpm_count_t rpmtdCount(rpmtd td)
RPM_PUBLIC_API rpmtd rpmtdFree(rpmtd td)
RPM_PUBLIC_API uint64_t * rpmtdGetUint64(rpmtd td)
RPM_PUBLIC_API int rpmtdFromUint8(rpmtd td, rpmTagVal tag, uint8_t *data, rpm_count_t count)
RPM_PUBLIC_API rpmTagType rpmtdType(rpmtd td)
RPM_PUBLIC_API rpmtd rpmtdNew(void)
RPM_PUBLIC_API int rpmtdFromUint32(rpmtd td, rpmTagVal tag, uint32_t *data, rpm_count_t count)
RPM_PUBLIC_API int rpmtdSetTag(rpmtd td, rpmTagVal tag)
RPM_PUBLIC_API int rpmtdFromUint16(rpmtd td, rpmTagVal tag, uint16_t *data, rpm_count_t count)
RPM_PUBLIC_API int rpmtdGetIndex(rpmtd td)
RPM_PUBLIC_API int rpmtdFromArgv(rpmtd td, rpmTagVal tag, ARGV_t argv)
RPM_PUBLIC_API int rpmtdFromString(rpmtd td, rpmTagVal tag, const char *data)
RPM_PUBLIC_API const char * rpmtdNextString(rpmtd td)
RPM_PUBLIC_API int rpmtdFromArgi(rpmtd td, rpmTagVal tag, ARGI_t argi)
RPM_PUBLIC_API int rpmtdFromStringArray(rpmtd td, rpmTagVal tag, const char **data, rpm_count_t count)
RPM_PUBLIC_API char * rpmtdGetChar(rpmtd td)
RPM_PUBLIC_API uint32_t * rpmtdGetUint32(rpmtd td)
RPM_PUBLIC_API char * rpmtdFormat(rpmtd td, rpmtdFormats fmt, const char *errmsg)
RPM_PUBLIC_API rpmtdFlags rpmtdGetFlags(rpmtd td)
RPM_PUBLIC_API rpm_count_t rpmtdSize(rpmtd td)
RPM_PUBLIC_API int rpmtdSetIndex(rpmtd td, int index)
RPM_PUBLIC_API uint64_t rpmtdGetNumber(rpmtd td)
RPM_PUBLIC_API rpmtd rpmtdDup(rpmtd td)
RPM_PUBLIC_API rpmTagClass rpmtdClass(rpmtd td)
RPM_PUBLIC_API void rpmtdFreeData(rpmtd td)
RPM_PUBLIC_API const char * rpmtdGetString(rpmtd td)
RPM_PUBLIC_API uint64_t * rpmtdNextUint64(rpmtd td)
RPM_PUBLIC_API int rpmtdFromUint64(rpmtd td, rpmTagVal tag, uint64_t *data, rpm_count_t count)
RPM_PUBLIC_API int rpmtdInit(rpmtd td)
RPM_PUBLIC_API rpmsid * rpmtdToPool(rpmtd td, rpmstrPool pool)
rpmtdFormats_e
Definition rpmtd.h:254
enum rpmtdFormats_e rpmtdFormats
rpmtdFlags_e
Definition rpmtd.h:20
Definition rpmtd.h:35
int ix
Definition rpmtd.h:41
rpm_data_t data
Definition rpmtd.h:39
rpm_count_t size
Definition rpmtd.h:42
rpm_tagtype_t type
Definition rpmtd.h:37
rpm_count_t count
Definition rpmtd.h:38
rpm_tag_t tag
Definition rpmtd.h:36
rpmtdFlags flags
Definition rpmtd.h:40