Imported Upstream version 0.7.27
[platform/upstream/libsolv.git] / src / rules.h
index 043d0a0..17af2df 100644 (file)
 #ifndef LIBSOLV_RULES_H
 #define LIBSOLV_RULES_H
 
+#include "pooltypes.h"
+#include "bitmap.h"
+#include "queue.h"
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+
 /* ----------------------------------------------
  * Rule
  *
@@ -60,6 +65,7 @@ typedef enum {
   SOLVER_RULE_PKG_INSTALLED_OBSOLETES,
   SOLVER_RULE_PKG_RECOMMENDS,
   SOLVER_RULE_PKG_CONSTRAINS,
+  SOLVER_RULE_PKG_SUPPLEMENTS,
   SOLVER_RULE_UPDATE = 0x200,
   SOLVER_RULE_FEATURE = 0x300,
   SOLVER_RULE_JOB = 0x400,
@@ -161,6 +167,11 @@ extern Id   solver_rule2job(struct s_Solver *solv, Id rid, Id *whatp);
 extern Id   solver_rule2solvable(struct s_Solver *solv, Id rid);
 extern void solver_rule2rules(struct s_Solver *solv, Id rid, Queue *q, int recursive);
 extern Id   solver_rule2pkgrule(struct s_Solver *solv, Id rid);
+extern const char *solver_ruleinfo2str(struct s_Solver *solv, SolverRuleinfo type, Id source, Id target, Id dep);
+
+/* rule infos for weakdep decisions */
+extern int  solver_allweakdepinfos(struct s_Solver *solv, Id p, Queue *rq);
+extern SolverRuleinfo solver_weakdepinfo(struct s_Solver *solv, Id p, Id *fromp, Id *top, Id *depp);
 
 /* orphan handling */
 extern void solver_breakorphans(struct s_Solver *solv);