1 /* 2 * Copyright (c) 2007-2009, Novell Inc. 3 * 4 * This program is licensed under the BSD license, read LICENSE.BSD 5 * for further information 6 */ 7 8 /* 9 * problems.h 10 * 11 */ 12 13 #ifndef LIBSOLV_PROBLEMS_H 14 #define LIBSOLV_PROBLEMS_H 15 16 #ifdef __cplusplus 17 extern "C" { 18 #endif 19 20 21 struct _Solver; 22 23 #define SOLVER_SOLUTION_JOB (0) 24 #define SOLVER_SOLUTION_DISTUPGRADE (-1) 25 #define SOLVER_SOLUTION_INFARCH (-2) 26 #define SOLVER_SOLUTION_BEST (-3) 27 #define SOLVER_SOLUTION_POOLJOB (-4) 28 29 void solver_disableproblem(struct _Solver *solv, Id v); 30 void solver_enableproblem(struct _Solver *solv, Id v); 31 int solver_prepare_solutions(struct _Solver *solv); 32 33 unsigned int solver_problem_count(struct _Solver *solv); 34 Id solver_next_problem(struct _Solver *solv, Id problem); 35 unsigned int solver_solution_count(struct _Solver *solv, Id problem); 36 Id solver_next_solution(struct _Solver *solv, Id problem, Id solution); 37 unsigned int solver_solutionelement_count(struct _Solver *solv, Id problem, Id solution); 38 Id solver_solutionelement_internalid(struct _Solver *solv, Id problem, Id solution); 39 Id solver_solutionelement_extrajobflags(struct _Solver *solv, Id problem, Id solution); 40 Id solver_next_solutionelement(struct _Solver *solv, Id problem, Id solution, Id element, Id *p, Id *rp); 41 42 void solver_take_solutionelement(struct _Solver *solv, Id p, Id rp, Id extrajobflags, Queue *job); 43 void solver_take_solution(struct _Solver *solv, Id problem, Id solution, Queue *job); 44 45 Id solver_findproblemrule(struct _Solver *solv, Id problem); 46 void solver_findallproblemrules(struct _Solver *solv, Id problem, Queue *rules); 47 48 #ifdef __cplusplus 49 } 50 #endif 51 52 #endif 53