Painless
A framework to ease parallelization of sequential CDCL SAT solvers
Loading...
Searching...
No Matches
WorkingStrategy.hpp
1
2#pragma once
3
4#include "solvers/SolverInterface.hpp"
5
6#include <vector>
7
18{
19 public:
20 WorkingStrategy() { parent = NULL; }
21
22 virtual void solve(const std::vector<int>& cube) = 0;
23
24 virtual void join(WorkingStrategy* winner, SatResult res, const std::vector<int>& model) = 0;
25
26 virtual void setSolverInterrupt() = 0;
27
28 virtual void unsetSolverInterrupt() = 0;
29
30 virtual void waitInterrupt() = 0;
31
32 virtual void addSlave(WorkingStrategy* slave)
33 {
34 slaves.push_back(slave);
35 slave->parent = this;
36 }
37
38 virtual ~WorkingStrategy() {}
39
40 protected:
41 WorkingStrategy* parent;
42
43 std::vector<WorkingStrategy*> slaves;
44};
45
Base Interface for Working Strategies.
Definition WorkingStrategy.hpp:18
SatResult
Enumeration for SAT solver results.
Definition SolverInterface.hpp:39