blob: 4fcf8f8445b780583caf5b965864d5ead38031e5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
#ifndef H_RPMGI
#define H_RPMGI
/** \ingroup rpmio
* \file lib/rpmgi.h
*/
#include <rpm/rpmtypes.h>
#include <rpm/argv.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
*/
extern int _rpmgi_debug;
/** \ingroup rpmgi
*/
typedef enum rpmgiFlags_e {
RPMGI_NONE = 0,
RPMGI_NOGLOB = (1 << 2),
RPMGI_NOMANIFEST = (1 << 3),
RPMGI_NOHEADER = (1 << 4)
} rpmgiFlags;
/** \ingroup rpmgi
* rpmgi FTS-flags
*/
#define RPMGI_COMFOLLOW 0x0001 /* follow command line symlinks */
#define RPMGI_LOGICAL 0x0002 /* logical walk */
#define RPMGI_NOCHDIR 0x0004 /* don't change directories */
#define RPMGI_NOSTAT 0x0008 /* don't get stat info */
#define RPMGI_PHYSICAL 0x0010 /* physical walk */
#define RPMGI_SEEDOT 0x0020 /* return dot and dot-dot */
#define RPMGI_XDEV 0x0040 /* don't cross devices */
#define RPMGI_WHITEOUT 0x0080 /* return whiteout information */
extern rpmgiFlags giFlags;
/** \ingroup rpmgi
* Destroy a generalized iterator.
* @param gi generalized iterator
* @return NULL always
*/
rpmgi rpmgiFree(rpmgi gi);
/** \ingroup rpmgi
* Return a generalized iterator.
* @param ts transaction set
* @param tag rpm tag
* @param keyp key data (NULL for sequential access)
* @param keylen key data length (0 will use strlen(keyp))
* @return new iterator
*/
rpmgi rpmgiNew(rpmts ts, rpmTag tag, const void * keyp,
size_t keylen);
/** \ingroup rpmgi
* Perform next iteration step.
* @param gi generalized iterator
* @returns RPMRC_OK on success, RPMRC_NOTFOUND on EOI
*/
rpmRC rpmgiNext(rpmgi gi);
/** \ingroup rpmgi
* Return current header path.
* @param gi generalized iterator
* @returns header path
*/
const char * rpmgiHdrPath(rpmgi gi);
/** \ingroup rpmgi
* Return current iteration header.
* @param gi generalized iterator
* @returns header
*/
Header rpmgiHeader(rpmgi gi);
/** \ingroup rpmgi
* Load iterator args.
* @param gi generalized iterator
* @param argv arg list
* @param ftsOpts fts(3) flags
* @param flags iterator flags
* @return RPMRC_OK on success
*/
rpmRC rpmgiSetArgs(rpmgi gi, ARGV_const_t argv,
int ftsOpts, rpmgiFlags flags);
/** \ingroup rpmgi
* Return number of errors (file not found etc) encountered during iteration
* @param gi generalized iterator
* @return number of errors
*/
int rpmgiNumErrors(rpmgi gi);
#ifdef __cplusplus
}
#endif
#endif /* H_RPMGI */
|