Imported Upstream version 0.6.35
[platform/upstream/libsolv.git] / src / policy.h
index 7dea8ce..68f4db9 100644 (file)
@@ -7,23 +7,44 @@
 
 /*
  * Generic policy interface for SAT solver
- * 
+ * The policy* function can be "overloaded" by defining a callback in the solver struct.
  */
 
 #include "solver.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define POLICY_MODE_CHOOSE     0
 #define POLICY_MODE_RECOMMEND  1
 #define POLICY_MODE_SUGGEST    2
+#define POLICY_MODE_CHOOSE_NOREORDER   3       /* internal, do not use */
+#define POLICY_MODE_SUPPLEMENT 4       /* internal, do not use */
+
+
+#define POLICY_ILLEGAL_DOWNGRADE       1
+#define POLICY_ILLEGAL_ARCHCHANGE      2
+#define POLICY_ILLEGAL_VENDORCHANGE    4
+#define POLICY_ILLEGAL_NAMECHANGE      8
+
+extern void policy_filter_unwanted(Solver *solv, Queue *plist, int mode);
+extern int  policy_illegal_archchange(Solver *solv, Solvable *s1, Solvable *s2);
+extern int  policy_illegal_vendorchange(Solver *solv, Solvable *s1, Solvable *s2);
+extern int  policy_is_illegal(Solver *solv, Solvable *s1, Solvable *s2, int ignore);
+extern void policy_findupdatepackages(Solver *solv, Solvable *s, Queue *qs, int allowall);
+extern const char *policy_illegal2str(Solver *solv, int illegal, Solvable *s, Solvable *rs);
+extern void policy_update_recommendsmap(Solver *solv);
+
+extern void policy_create_obsolete_index(Solver *solv);
+
+extern void pool_best_solvables(Pool *pool, Queue *plist, int flags);
 
-/* legacy, do not use! */
-extern void prune_best_version_arch(Pool *pool, Queue *plist);
+/* internal, do not use */
+extern void prune_to_best_version(Pool *pool, Queue *plist);
+extern void policy_prefer_favored(Solver *solv, Queue *plist);
 
-extern void policy_filter_unwanted(Solver *solv, Queue *plist, Id inst, int mode);
 
-extern int  policy_illegal_archchange(Pool *pool, Solvable *s1, Solvable *s2);
-extern int  policy_illegal_vendorchange(Pool *pool, Solvable *s1, Solvable *s2);
-extern void policy_findupdatepackages(Solver *solv,
-                                     Solvable *s,
-                                     Queue *qs,
-                                     int allowall); /* do not regard policies for vendor,architecuture,... change */
+#ifdef __cplusplus
+}
+#endif