BUG FIX when there is no usedSettings
[satune.git] / src / Backend / inc_solver.h
index ead727fba25395146b7ae64fa57e3d0d8d91bc9c..3562a4270b76b6dfb2a8a0c3515e188eac632165 100644 (file)
 #include "solver_interface.h"
 #include "classlist.h"
 
+#define NOTIMEOUT -1
+
 struct IncrementalSolver {
-       int * buffer;
-       int * solution;
+       int *buffer;
+       int *solution;
        int solutionsize;
-       int offset;
+       uint offset;
        pid_t solver_pid;
        int to_solver_fd;
        int from_solver_fd;
+       long timeout;
 };
 
-IncrementalSolver * allocIncrementalSolver();
-void deleteIncrementalSolver(IncrementalSolver * this);
-void addClauseLiteral(IncrementalSolver * this, int literal);
-void finishedClauses(IncrementalSolver * this);
-void freeze(IncrementalSolver * this, int variable);
-int solve(IncrementalSolver * this);
-void startSolve(IncrementalSolver * this);
-int getSolution(IncrementalSolver * this);
-bool getValueSolver(IncrementalSolver * this, int variable);
-void resetSolver(IncrementalSolver * this);
-void createSolver(IncrementalSolver * this);
-void killSolver(IncrementalSolver * this);
-void flushBufferSolver(IncrementalSolver * this);
-int readIntSolver(IncrementalSolver * this);
-void readSolver(IncrementalSolver * this, void * buffer, ssize_t size);
+IncrementalSolver *allocIncrementalSolver();
+void deleteIncrementalSolver(IncrementalSolver *This);
+void addClauseLiteral(IncrementalSolver *This, int literal);
+void addArrayClauseLiteral(IncrementalSolver *This, uint numliterals, int *literals);
+void finishedClauses(IncrementalSolver *This);
+void freeze(IncrementalSolver *This, int variable);
+int solve(IncrementalSolver *This);
+void startSolve(IncrementalSolver *This);
+int getSolution(IncrementalSolver *This);
+bool getValueSolver(IncrementalSolver *This, int variable);
+void resetSolver(IncrementalSolver *This);
+void createSolver(IncrementalSolver *This);
+void killSolver(IncrementalSolver *This);
+void flushBufferSolver(IncrementalSolver *This);
+int readIntSolver(IncrementalSolver *This);
+int readStatus(IncrementalSolver *This);
+void readSolver(IncrementalSolver *This, void *buffer, ssize_t size);
 #endif