rpm
4.11.1-rc1
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
lib
rpmtd.h
Go to the documentation of this file.
1
#ifndef _RPMTD_H
2
#define _RPMTD_H
3
4
#include <rpm/rpmtypes.h>
5
#include <rpm/argv.h>
6
7
#ifdef __cplusplus
8
extern
"C"
{
9
#endif
10
11
enum
rpmtdFlags_e
{
12
RPMTD_NONE
= 0,
13
RPMTD_ALLOCED
= (1 << 0),
/* was memory allocated? */
14
RPMTD_PTR_ALLOCED
= (1 << 1),
/* were array pointers allocated? */
15
RPMTD_IMMUTABLE
= (1 << 2),
/* header data or modifiable? */
16
RPMTD_ARGV
= (1 << 3),
/* string array is NULL-terminated? */
17
RPMTD_INVALID
= (1 << 4),
/* invalid data (in header) */
18
};
19
20
typedef
rpmFlags
rpmtdFlags
;
21
26
struct
rpmtd_s
{
27
rpm_tag_t
tag
;
/* rpm tag of this data entry*/
28
rpm_tagtype_t
type
;
/* data type */
29
rpm_count_t
count
;
/* number of entries */
30
rpm_data_t
data
;
/* pointer to actual data */
31
rpmtdFlags
flags
;
/* flags on memory allocation etc */
32
int
ix
;
/* iteration index */
33
};
34
39
rpmtd
rpmtdNew
(
void
);
40
46
rpmtd
rpmtdFree
(
rpmtd
td);
47
53
void
rpmtdReset
(
rpmtd
td);
54
60
void
rpmtdFreeData
(
rpmtd
td);
61
67
rpm_count_t
rpmtdCount
(
rpmtd
td);
68
74
rpmTagVal
rpmtdTag
(
rpmtd
td);
75
81
rpmTagType
rpmtdType
(
rpmtd
td);
82
88
rpmTagClass
rpmtdClass
(
rpmtd
td);
89
95
rpmtdFlags
rpmtdGetFlags
(
rpmtd
td);
96
102
int
rpmtdGetIndex
(
rpmtd
td);
103
112
int
rpmtdSetIndex
(
rpmtd
td,
int
index);
113
119
int
rpmtdInit
(
rpmtd
td);
120
126
int
rpmtdNext
(
rpmtd
td);
127
133
uint32_t *
rpmtdNextUint32
(
rpmtd
td);
134
140
uint64_t *
rpmtdNextUint64
(
rpmtd
td);
141
147
const
char
*
rpmtdNextString
(
rpmtd
td);
148
157
char
*
rpmtdGetChar
(
rpmtd
td);
158
167
uint16_t *
rpmtdGetUint16
(
rpmtd
td);
168
177
uint32_t *
rpmtdGetUint32
(
rpmtd
td);
178
187
uint64_t *
rpmtdGetUint64
(
rpmtd
td);
188
197
const
char
*
rpmtdGetString
(
rpmtd
td);
198
208
uint64_t
rpmtdGetNumber
(
rpmtd
td);
209
210
typedef
enum
rpmtdFormats_e
{
211
RPMTD_FORMAT_STRING
= 0,
/* plain string (any type) */
212
RPMTD_FORMAT_ARMOR
= 1,
/* ascii armor format (bin types) */
213
RPMTD_FORMAT_BASE64
= 2,
/* base64 encoding (bin types) */
214
RPMTD_FORMAT_PGPSIG
= 3,
/* pgp/gpg signature (bin types) */
215
RPMTD_FORMAT_DEPFLAGS
= 4,
/* dependency flags (int types) */
216
RPMTD_FORMAT_FFLAGS
= 5,
/* file flags (int types) */
217
RPMTD_FORMAT_PERMS
= 6,
/* permission string (int types) */
218
RPMTD_FORMAT_TRIGGERTYPE
= 7,
/* trigger types (int types) */
219
RPMTD_FORMAT_XML
= 8,
/* xml format (any type) */
220
RPMTD_FORMAT_OCTAL
= 9,
/* octal format (int types) */
221
RPMTD_FORMAT_HEX
= 10,
/* hex format (int types) */
222
RPMTD_FORMAT_DATE
= 11,
/* date format (int types) */
223
RPMTD_FORMAT_DAY
= 12,
/* day format (int types) */
224
RPMTD_FORMAT_SHESCAPE
= 13,
/* shell escaped (any type) */
225
RPMTD_FORMAT_ARRAYSIZE
= 14,
/* size of contained array (any type) */
226
RPMTD_FORMAT_DEPTYPE
= 15,
/* dependency types (int types) */
227
RPMTD_FORMAT_FSTATE
= 16,
/* file states (int types) */
228
RPMTD_FORMAT_VFLAGS
= 17,
/* file verify flags (int types) */
229
RPMTD_FORMAT_EXPAND
= 18,
/* macro expansion (string types) */
230
RPMTD_FORMAT_FSTATUS
= 19,
/* file verify status (int types) */
231
}
rpmtdFormats
;
232
244
char
*
rpmtdFormat
(
rpmtd
td,
rpmtdFormats
fmt,
const
char
*errmsg);
245
254
int
rpmtdSetTag
(
rpmtd
td,
rpmTagVal
tag);
255
267
int
rpmtdFromUint8
(
rpmtd
td,
rpmTagVal
tag, uint8_t *data,
rpm_count_t
count);
268
279
int
rpmtdFromUint16
(
rpmtd
td,
rpmTagVal
tag, uint16_t *data,
rpm_count_t
count);
280
291
int
rpmtdFromUint32
(
rpmtd
td,
rpmTagVal
tag, uint32_t *data,
rpm_count_t
count);
292
303
int
rpmtdFromUint64
(
rpmtd
td,
rpmTagVal
tag, uint64_t *data,
rpm_count_t
count);
304
313
int
rpmtdFromString
(
rpmtd
td,
rpmTagVal
tag,
const
char
*data);
314
325
int
rpmtdFromStringArray
(
rpmtd
td,
rpmTagVal
tag,
const
char
**data,
rpm_count_t
count);
326
336
int
rpmtdFromArgv
(
rpmtd
td,
rpmTagVal
tag,
ARGV_t
argv);
337
347
int
rpmtdFromArgi
(
rpmtd
td,
rpmTagVal
tag,
ARGI_t
argi);
348
349
/* \ingroup rpmtd
350
* Perform deep copy of container.
351
* Create a modifiable copy of tag data container (on string arrays each
352
* string is separately allocated)
353
* @todo Only string arrays types are supported currently
354
* @param td Container to copy
355
* @return New container or NULL on error
356
*/
357
rpmtd
rpmtdDup
(
rpmtd
td);
358
359
/* \ingroup rpmtd
360
* Push string array container contents to a string pool, return string ids.
361
* @param td Tag data container
362
* @param pool String pool
363
* @return Array of string id's (malloced)
364
*/
365
rpmsid
*
rpmtdToPool
(
rpmtd
td,
rpmstrPool
pool);
366
367
#ifdef __cplusplus
368
}
369
#endif
370
371
#endif
/* _RPMTD_H */
Generated by
1.8.3.1