diff options
Diffstat (limited to 'lib/Core/Searcher.h')
-rw-r--r-- | lib/Core/Searcher.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/Core/Searcher.h b/lib/Core/Searcher.h index 27c8aed1..47026410 100644 --- a/lib/Core/Searcher.h +++ b/lib/Core/Searcher.h @@ -180,6 +180,32 @@ namespace klee { } }; + class MergeHandler; + class MergingSearcher : public Searcher { + friend class MergeHandler; + + private: + + Executor &executor; + Searcher *baseSearcher; + + public: + MergingSearcher(Executor &executor, Searcher *baseSearcher); + ~MergingSearcher(); + + ExecutionState &selectState(); + + void update(ExecutionState *current, + const std::vector<ExecutionState *> &addedStates, + const std::vector<ExecutionState *> &removedStates) { + baseSearcher->update(current, addedStates, removedStates); + } + bool empty() { return baseSearcher->empty(); } + void printName(llvm::raw_ostream &os) { + os << "MergingSearcher\n"; + } + }; + class BatchingSearcher : public Searcher { Searcher *baseSearcher; double timeBudget; |