8 #include <rpm/rpmtypes.h>
17 extern int _rpmgi_debug;
21 typedef enum rpmgiFlags_e {
23 RPMGI_TSADD = (1 << 0),
24 RPMGI_TSORDER = (1 << 1),
25 RPMGI_NOGLOB = (1 << 2),
26 RPMGI_NOMANIFEST = (1 << 3),
27 RPMGI_NOHEADER = (1 << 4)
33 #define RPMGI_COMFOLLOW 0x0001 /* follow command line symlinks */
34 #define RPMGI_LOGICAL 0x0002 /* logical walk */
35 #define RPMGI_NOCHDIR 0x0004 /* don't change directories */
36 #define RPMGI_NOSTAT 0x0008 /* don't get stat info */
37 #define RPMGI_PHYSICAL 0x0010 /* physical walk */
38 #define RPMGI_SEEDOT 0x0020 /* return dot and dot-dot */
39 #define RPMGI_XDEV 0x0040 /* don't cross devices */
40 #define RPMGI_WHITEOUT 0x0080 /* return whiteout information */
42 extern rpmgiFlags giFlags;
45 * Unreference a generalized iterator instance.
46 * @param gi generalized iterator
50 rpmgi rpmgiUnlink (rpmgi gi, const char * msg);
53 * Reference a generalized iterator instance.
54 * @param gi generalized iterator
56 * @return new generalized iterator reference
58 rpmgi rpmgiLink (rpmgi gi, const char * msg);
61 * Destroy a generalized iterator.
62 * @param gi generalized iterator
65 rpmgi rpmgiFree(rpmgi gi);
68 * Return a generalized iterator.
69 * @param ts transaction set
71 * @param keyp key data (NULL for sequential access)
72 * @param keylen key data length (0 will use strlen(keyp))
73 * @return new iterator
75 rpmgi rpmgiNew(rpmts ts, rpmTag tag, const void * keyp,
79 * Perform next iteration step.
80 * @param gi generalized iterator
81 * @returns RPMRC_OK on success, RPMRC_NOTFOUND on EOI
83 rpmRC rpmgiNext(rpmgi gi);
86 * Return current header path.
87 * @param gi generalized iterator
88 * @returns header path
90 const char * rpmgiHdrPath(rpmgi gi);
93 * Return current iteration header.
94 * @param gi generalized iterator
97 Header rpmgiHeader(rpmgi gi);
100 * Return current iteration transaction set.
101 * @param gi generalized iterator
102 * @returns transaction set
104 rpmts rpmgiTs(rpmgi gi);
107 * Load iterator args.
108 * @param gi generalized iterator
109 * @param argv arg list
110 * @param ftsOpts fts(3) flags
111 * @param flags iterator flags
112 * @return RPMRC_OK on success
114 rpmRC rpmgiSetArgs(rpmgi gi, ARGV_const_t argv,
115 int ftsOpts, rpmgiFlags flags);
119 * Retrieve iterator flags
120 * @param gi generalized iterator
121 * @return iterator flags
123 rpmgiFlags rpmgiGetFlags(rpmgi gi);
126 * Return number of errors (file not found etc) encountered during iteration
127 * @param gi generalized iterator
128 * @return number of errors
130 int rpmgiNumErrors(rpmgi gi);