Imported Upstream version 0.7.20
[platform/upstream/libsolv.git] / src / selection.h
index 0bd6a4d..8e60a27 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, Novell Inc.
+ * Copyright (c) 2012, Novell Inc.
  *
  * This program is licensed under the BSD license, read LICENSE.BSD
  * for further information
@@ -7,7 +7,7 @@
 
 /*
  * selection.h
- * 
+ *
  */
 
 #ifndef LIBSOLV_SELECTION_H
 
 #include "pool.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* what to match */
 #define SELECTION_NAME                 (1 << 0)
 #define SELECTION_PROVIDES             (1 << 1)
 #define SELECTION_FILELIST             (1 << 2)
+#define SELECTION_CANON                        (1 << 3)
 
-#define SELECTION_INSTALLED_ONLY       (1 << 8)
+/* match extensions */
+#define SELECTION_DOTARCH              (1 << 4)        /* allow ".arch" suffix */
+#define SELECTION_REL                  (1 << 5)        /* allow "<=> rel" suffix */
+
+/* string comparison modifiers */
 #define SELECTION_GLOB                 (1 << 9)
-#define SELECTION_FLAT                 (1 << 10)
 #define SELECTION_NOCASE               (1 << 11)
 
+/* extra flags */
+#define SELECTION_FLAT                 (1 << 10)       /* flatten the resulting selection */
+#define SELECTION_SKIP_KIND            (1 << 14)       /* remove kind: name prefix in SELECTION_NAME matches */
+#define SELECTION_MATCH_DEPSTR         (1 << 15)       /* match dep2str result */
+
+/* package selection */
+#define SELECTION_INSTALLED_ONLY       (1 << 8)
+#define SELECTION_SOURCE_ONLY          (1 << 12)
+#define SELECTION_WITH_SOURCE          (1 << 13)
+#define SELECTION_WITH_DISABLED                (1 << 16)
+#define SELECTION_WITH_BADARCH         (1 << 17)
+#define SELECTION_WITH_ALL             (SELECTION_WITH_SOURCE | SELECTION_WITH_DISABLED | SELECTION_WITH_BADARCH)
+
+/* result operator */
+#define SELECTION_REPLACE              (0 << 28)
+#define SELECTION_ADD                  (1 << 28)
+#define SELECTION_SUBTRACT             (2 << 28)
+#define SELECTION_FILTER               (3 << 28)
+
+
+/* extra SELECTION_FILTER bits */
+#define SELECTION_FILTER_KEEP_IFEMPTY  (1 << 30)
+#define SELECTION_FILTER_SWAPPED       (1 << 31)
+
+/* internal */
+#define SELECTION_MODEBITS             (3 << 28)
+
 extern int  selection_make(Pool *pool, Queue *selection, const char *name, int flags);
-extern void selection_limit(Pool *pool, Queue *sel1, Queue *sel2);
+extern int  selection_make_matchdeps(Pool *pool, Queue *selection, const char *name, int flags, int keyname, int marker);
+extern int  selection_make_matchdepid(Pool *pool, Queue *selection, Id dep, int flags, int keyname, int marker);
+extern int selection_make_matchsolvable(Pool *pool, Queue *selection, Id solvid, int flags, int keyname, int marker);
+extern int selection_make_matchsolvablelist(Pool *pool, Queue *selection, Queue *solvidq, int flags, int keyname, int marker);
+
+extern void selection_filter(Pool *pool, Queue *sel1, Queue *sel2);
 extern void selection_add(Pool *pool, Queue *sel1, Queue *sel2);
+extern void selection_subtract(Pool *pool, Queue *sel1, Queue *sel2);
+
 extern void selection_solvables(Pool *pool, Queue *selection, Queue *pkgs);
 
+extern const char *pool_selection2str(Pool *pool, Queue *selection, Id flagmask);
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif