|
rpm 6.1.90
The RPM Package Manager
|
How to retrieve data from package headers. More...

Files | |
| file | rpmtd.h |
Data Structures | |
| struct | rpmtd_s |
Functions | |
| RPM_PUBLIC_API rpmtd | rpmtdNew (void) |
| RPM_PUBLIC_API rpmtd | rpmtdFree (rpmtd td) |
| RPM_PUBLIC_API void | rpmtdReset (rpmtd td) |
| RPM_PUBLIC_API void | rpmtdFreeData (rpmtd td) |
| RPM_PUBLIC_API rpm_count_t | rpmtdCount (rpmtd td) |
| RPM_PUBLIC_API rpm_count_t | rpmtdSize (rpmtd td) |
| RPM_PUBLIC_API rpmTagVal | rpmtdTag (rpmtd td) |
| RPM_PUBLIC_API rpmTagType | rpmtdType (rpmtd td) |
| RPM_PUBLIC_API rpmTagClass | rpmtdClass (rpmtd td) |
| RPM_PUBLIC_API rpmtdFlags | rpmtdGetFlags (rpmtd td) |
| RPM_PUBLIC_API int | rpmtdGetIndex (rpmtd td) |
| RPM_PUBLIC_API int | rpmtdSetIndex (rpmtd td, int index) |
| RPM_PUBLIC_API int | rpmtdInit (rpmtd td) |
| RPM_PUBLIC_API int | rpmtdNext (rpmtd td) |
| RPM_PUBLIC_API uint32_t * | rpmtdNextUint32 (rpmtd td) |
| RPM_PUBLIC_API uint64_t * | rpmtdNextUint64 (rpmtd td) |
| RPM_PUBLIC_API const char * | rpmtdNextString (rpmtd td) |
| RPM_PUBLIC_API char * | rpmtdGetChar (rpmtd td) |
| RPM_PUBLIC_API uint16_t * | rpmtdGetUint16 (rpmtd td) |
| RPM_PUBLIC_API uint32_t * | rpmtdGetUint32 (rpmtd td) |
| RPM_PUBLIC_API uint64_t * | rpmtdGetUint64 (rpmtd td) |
| RPM_PUBLIC_API const char * | rpmtdGetString (rpmtd td) |
| RPM_PUBLIC_API uint64_t | rpmtdGetNumber (rpmtd td) |
| RPM_PUBLIC_API char * | rpmtdFormat (rpmtd td, rpmtdFormats fmt, const char *errmsg) |
| RPM_PUBLIC_API int | rpmtdSetTag (rpmtd td, rpmTagVal tag) |
| RPM_PUBLIC_API int | rpmtdFromUint8 (rpmtd td, rpmTagVal tag, uint8_t *data, rpm_count_t count) |
| RPM_PUBLIC_API int | rpmtdFromUint16 (rpmtd td, rpmTagVal tag, uint16_t *data, rpm_count_t count) |
| RPM_PUBLIC_API int | rpmtdFromUint32 (rpmtd td, rpmTagVal tag, uint32_t *data, rpm_count_t count) |
| RPM_PUBLIC_API int | rpmtdFromUint64 (rpmtd td, rpmTagVal tag, uint64_t *data, rpm_count_t count) |
| RPM_PUBLIC_API int | rpmtdFromString (rpmtd td, rpmTagVal tag, const char *data) |
| RPM_PUBLIC_API int | rpmtdFromStringArray (rpmtd td, rpmTagVal tag, const char **data, rpm_count_t count) |
| RPM_PUBLIC_API int | rpmtdFromArgv (rpmtd td, rpmTagVal tag, ARGV_t argv) |
| RPM_PUBLIC_API int | rpmtdFromArgi (rpmtd td, rpmTagVal tag, ARGI_t argi) |
| RPM_PUBLIC_API rpmtd | rpmtdDup (rpmtd td) |
| RPM_PUBLIC_API rpmsid * | rpmtdToPool (rpmtd td, rpmstrPool pool) |
How to retrieve data from package headers.
| RPM_PUBLIC_API rpmTagClass rpmtdClass | ( | rpmtd | td | ) |
Retrieve class of the container.
| td | Tag data container |
| RPM_PUBLIC_API rpm_count_t rpmtdCount | ( | rpmtd | td | ) |
Retrieve array size of the container. For non-array types this is always 1.
| td | Tag data container |
| RPM_PUBLIC_API rpmtd rpmtdDup | ( | rpmtd | td | ) |
Perform deep copy of container. Create a modifiable copy of tag data container (on string arrays each string is separately allocated)
| td | Container to copy |
| RPM_PUBLIC_API char * rpmtdFormat | ( | rpmtd | td, |
| rpmtdFormats | fmt, | ||
| const char * | errmsg ) |
Format data from tag container to string presentation of given format. Return malloced string presentation of current data in container, converting from integers etc as necessary. On array types, data from current iteration index is used for formatting.
| td | Tag data container |
| fmt | Format to apply |
| errmsg | Error message from conversion (or NULL) |
| RPM_PUBLIC_API rpmtd rpmtdFree | ( | rpmtd | td | ) |
Destroy tag data container.
| td | Tag data container |
| RPM_PUBLIC_API void rpmtdFreeData | ( | rpmtd | td | ) |
Free contained data. This is always safe to call as the container knows if data was malloc'ed or not. Container is reinitialized.
| td | Tag data container |
| RPM_PUBLIC_API int rpmtdFromArgi | ( | rpmtd | td, |
| rpmTagVal | tag, | ||
| ARGI_t | argi ) |
Construct tag container from ARGI_t array. Tag type is checked to be of integer array type and array is checked to be non-empty.
| td | Tag data container |
| tag | Rpm tag to construct |
| argi | ARGI array |
| RPM_PUBLIC_API int rpmtdFromArgv | ( | rpmtd | td, |
| rpmTagVal | tag, | ||
| ARGV_t | argv ) |
Construct tag container from ARGV_t array. Tag type is checked to be of string array type and array is checked to be non-empty.
| td | Tag data container |
| tag | Rpm tag to construct |
| argv | ARGV array |
| RPM_PUBLIC_API int rpmtdFromString | ( | rpmtd | td, |
| rpmTagVal | tag, | ||
| const char * | data ) |
Construct tag container from a string. Tag type is checked to be of string type.
| td | Tag data container |
| tag | Rpm tag to construct |
| data | String to use |
| RPM_PUBLIC_API int rpmtdFromStringArray | ( | rpmtd | td, |
| rpmTagVal | tag, | ||
| const char ** | data, | ||
| rpm_count_t | count ) |
Construct tag container from a string array. Tag type is checked to be of string or string array type. For non-array types count must be exactly 1.
| td | Tag data container |
| tag | Rpm tag to construct |
| data | Pointer to string array |
| count | Number of entries |
| RPM_PUBLIC_API int rpmtdFromUint16 | ( | rpmtd | td, |
| rpmTagVal | tag, | ||
| uint16_t * | data, | ||
| rpm_count_t | count ) |
Construct tag container from uint16_t pointer. Tag type is checked to be of INT16 type. For non-array types count must be exactly 1.
| td | Tag data container |
| tag | Rpm tag to construct |
| data | Pointer to uint16_t (value or array) |
| count | Number of entries |
| RPM_PUBLIC_API int rpmtdFromUint32 | ( | rpmtd | td, |
| rpmTagVal | tag, | ||
| uint32_t * | data, | ||
| rpm_count_t | count ) |
Construct tag container from uint32_t pointer. Tag type is checked to be of INT32 type. For non-array types count must be exactly 1.
| td | Tag data container |
| tag | Rpm tag to construct |
| data | Pointer to uint32_t (value or array) |
| count | Number of entries |
| RPM_PUBLIC_API int rpmtdFromUint64 | ( | rpmtd | td, |
| rpmTagVal | tag, | ||
| uint64_t * | data, | ||
| rpm_count_t | count ) |
Construct tag container from uint64_t pointer. Tag type is checked to be of INT64 type. For non-array types count must be exactly 1.
| td | Tag data container |
| tag | Rpm tag to construct |
| data | Pointer to uint64_t (value or array) |
| count | Number of entries |
| RPM_PUBLIC_API int rpmtdFromUint8 | ( | rpmtd | td, |
| rpmTagVal | tag, | ||
| uint8_t * | data, | ||
| rpm_count_t | count ) |
Construct tag container from uint8_t pointer. Tag type is checked to be of compatible type (CHAR, INT8 or BIN). For non-array types (BIN is a special case of INT8 array) count must be exactly 1.
| td | Tag data container |
| tag | Rpm tag to construct |
| data | Pointer to uint8_t (value or array) |
| count | Number of entries |
| RPM_PUBLIC_API char * rpmtdGetChar | ( | rpmtd | td | ) |
Return char data from tag container. For scalar return type, just return pointer to the integer. On array types, return pointer to current iteration index. If the tag container is not for char type, NULL is returned.
| td | Tag data container |
| RPM_PUBLIC_API rpmtdFlags rpmtdGetFlags | ( | rpmtd | td | ) |
Retrieve flags of the container (allocation details etc)
| td | Tag data container |
| RPM_PUBLIC_API int rpmtdGetIndex | ( | rpmtd | td | ) |
Retrieve current iteration index of the container.
| td | Tag data container |
| RPM_PUBLIC_API uint64_t rpmtdGetNumber | ( | rpmtd | td | ) |
Return numeric value from tag container. Returns the value of numeric container (RPM_NUMERIC_CLASS) from current iteration index as uint64_t regardless of its internal presentation (8/16/32/64-bit integer).
| td | Tag data container |
| RPM_PUBLIC_API const char * rpmtdGetString | ( | rpmtd | td | ) |
Return string data from tag container. For string types, just return the string. On string array types, return the string from current iteration index. If the tag container is not for a string type, NULL is returned.
| td | Tag data container |
| RPM_PUBLIC_API uint16_t * rpmtdGetUint16 | ( | rpmtd | td | ) |
Return uint16_t data from tag container. For scalar return type, just return pointer to the integer. On array types, return pointer to current iteration index. If the tag container is not for int16 type, NULL is returned.
| td | Tag data container |
| RPM_PUBLIC_API uint32_t * rpmtdGetUint32 | ( | rpmtd | td | ) |
Return uint32_t data from tag container. For scalar return type, just return pointer to the integer. On array types, return pointer to current iteration index. If the tag container is not for int32 type, NULL is returned.
| td | Tag data container |
| RPM_PUBLIC_API uint64_t * rpmtdGetUint64 | ( | rpmtd | td | ) |
Return uint64_t data from tag container. For scalar return type, just return pointer to the integer. On array types, return pointer to current iteration index. If the tag container is not for int64 type, NULL is returned.
| td | Tag data container |
| RPM_PUBLIC_API int rpmtdInit | ( | rpmtd | td | ) |
Initialize tag container for iteration
| td | Tag data container |
| RPM_PUBLIC_API rpmtd rpmtdNew | ( | void | ) |
Create new tag data container
| RPM_PUBLIC_API int rpmtdNext | ( | rpmtd | td | ) |
Iterate over tag data container.
| td | Tag data container |
| RPM_PUBLIC_API const char * rpmtdNextString | ( | rpmtd | td | ) |
Iterate over string / string array type tag data container.
| td | Tag data container |
| RPM_PUBLIC_API uint32_t * rpmtdNextUint32 | ( | rpmtd | td | ) |
Iterate over uint32_t type tag data container.
| td | Tag data container |
| RPM_PUBLIC_API uint64_t * rpmtdNextUint64 | ( | rpmtd | td | ) |
Iterate over uint64_t type tag data container.
| td | Tag data container |
| RPM_PUBLIC_API void rpmtdReset | ( | rpmtd | td | ) |
(Re-)initialize tag data container. Contents will be zeroed out and iteration index reset.
| td | Tag data container |
| RPM_PUBLIC_API int rpmtdSetIndex | ( | rpmtd | td, |
| int | index ) |
Set iteration index of the container. If new index is out of bounds for the container, -1 is returned and iteration index is left untouched.
| td | Tag data container |
| index | New index |
| RPM_PUBLIC_API int rpmtdSetTag | ( | rpmtd | td, |
| rpmTagVal | tag ) |
Set container tag and type. For empty container, any valid tag can be set. If the container has data, changing is only permitted to tag of same type.
| td | Tag data container |
| tag | New tag |
| RPM_PUBLIC_API rpm_count_t rpmtdSize | ( | rpmtd | td | ) |
Retrieve container data size (eg required for allocation). Note this currently only works for RPMTD_IMMUTABLE data.
| td | Tag data container |
| RPM_PUBLIC_API rpmTagVal rpmtdTag | ( | rpmtd | td | ) |
Retrieve tag of the container.
| td | Tag data container |
| RPM_PUBLIC_API rpmsid * rpmtdToPool | ( | rpmtd | td, |
| rpmstrPool | pool ) |
Push string array container contents to a string pool, return string ids.
| td | Tag data container |
| pool | String pool |
| RPM_PUBLIC_API rpmTagType rpmtdType | ( | rpmtd | td | ) |
Retrieve type of the container.
| td | Tag data container |