Imported Upstream version 0.6.35
[platform/upstream/libsolv.git] / ext / repo_rpmdb.h
index 79e35c7..554d48a 100644 (file)
@@ -11,9 +11,8 @@
 struct headerToken_s;
 
 extern int repo_add_rpmdb(Repo *repo, Repo *ref, int flags);
+extern int repo_add_rpmdb_reffp(Repo *repo, FILE *reffp, int flags);
 extern Id repo_add_rpm(Repo *repo, const char *rpm, int flags);
-extern int repo_add_rpmdb_pubkeys(Repo *repo, int flags);
-extern Id repo_add_pubkey(Repo *repo, const char *key, int flags);
 
 #define RPMDB_REPORT_PROGRESS  (1 << 8)
 #define RPM_ADD_WITH_PKGID     (1 << 9)
@@ -24,7 +23,11 @@ extern Id repo_add_pubkey(Repo *repo, const char *key, int flags);
 #define RPM_ADD_TRIGGERS       (1 << 14)
 #define RPM_ADD_WITH_HDRID     (1 << 15)
 #define RPM_ADD_WITH_LEADSIGID (1 << 16)
-#define RPM_ADD_WITH_CHANGELOG  (1 << 17)
+#define RPM_ADD_WITH_CHANGELOG (1 << 17)
+#define RPM_ADD_FILTERED_FILELIST (1 << 18)
+#define RPMDB_KEEP_GPG_PUBKEY   (1 << 19)
+
+#define RPMDB_EMPTY_REFREPO    (1 << 30)       /* internal */
 
 #define RPM_ITERATE_FILELIST_ONLYDIRS  (1 << 0)
 #define RPM_ITERATE_FILELIST_WITHMD5   (1 << 1)
@@ -32,7 +35,7 @@ extern Id repo_add_pubkey(Repo *repo, const char *key, int flags);
 #define RPM_ITERATE_FILELIST_NOGHOSTS  (1 << 3)
 
 /* create and free internal state, rootdir is the rootdir of the rpm database */
-extern void *rpm_state_create(const char *rootdir);
+extern void *rpm_state_create(Pool *pool, const char *rootdir);
 extern void *rpm_state_free(void *rpmstate);
 
 /* return all matching rpmdbids */
@@ -44,6 +47,16 @@ extern void *rpm_byfp(void *rpmstate, FILE *fp, const char *name);
 extern void *rpm_byrpmh(void *rpmstate, struct headerToken_s *h);
 
 /* operations on a rpm header handle */
+
+struct filelistinfo {
+  unsigned int dirlen;
+  unsigned int diridx;
+  const char *digest;
+  unsigned int mode;
+  unsigned int color;
+};
+
 extern char *rpm_query(void *rpmhandle, Id what);
-extern void rpm_iterate_filelist(void *rpmhandle, int flags, void (*cb)(void *, const char *, int, const char *), void *cbdata);
+extern unsigned long long rpm_query_num(void *rpmhandle, Id what, unsigned long long notfound);
+extern void rpm_iterate_filelist(void *rpmhandle, int flags, void (*cb)(void *, const char *, struct filelistinfo *), void *cbdata);
 extern Id   repo_add_rpm_handle(Repo *repo, void *rpmhandle, int flags);