satsolver 0.16.3
|
00001 /* 00002 * Copyright (c) 2007-2009, Novell Inc. 00003 * 00004 * This program is licensed under the BSD license, read LICENSE.BSD 00005 * for further information 00006 */ 00007 00008 /* 00009 * problems.h 00010 * 00011 */ 00012 00013 #ifndef SATSOLVER_PROBLEMS_H 00014 #define SATSOLVER_PROBLEMS_H 00015 00016 #ifdef __cplusplus 00017 extern "C" { 00018 #endif 00019 00020 00021 struct _Solver; 00022 00023 #define SOLVER_SOLUTION_JOB (0) 00024 #define SOLVER_SOLUTION_DISTUPGRADE (-1) 00025 #define SOLVER_SOLUTION_INFARCH (-2) 00026 00027 void solver_disableproblem(struct _Solver *solv, Id v); 00028 void solver_enableproblem(struct _Solver *solv, Id v); 00029 int solver_prepare_solutions(struct _Solver *solv); 00030 00031 unsigned int solver_problem_count(struct _Solver *solv); 00032 Id solver_next_problem(struct _Solver *solv, Id problem); 00033 unsigned int solver_solution_count(struct _Solver *solv, Id problem); 00034 Id solver_next_solution(struct _Solver *solv, Id problem, Id solution); 00035 unsigned int solver_solutionelement_count(struct _Solver *solv, Id problem, Id solution); 00036 Id solver_next_solutionelement(struct _Solver *solv, Id problem, Id solution, Id element, Id *p, Id *rp); 00037 00038 void solver_take_solutionelement(struct _Solver *solv, Id p, Id rp, Queue *job); 00039 void solver_take_solution(struct _Solver *solv, Id problem, Id solution, Queue *job); 00040 00041 Id solver_findproblemrule(struct _Solver *solv, Id problem); 00042 void solver_findallproblemrules(struct _Solver *solv, Id problem, Queue *rules); 00043 00044 #ifdef __cplusplus 00045 } 00046 #endif 00047 00048 #endif