1 #ifndef ROSE_BinaryAnalysis_ModelChecker_PathQueue_H
2 #define ROSE_BinaryAnalysis_ModelChecker_PathQueue_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_MODEL_CHECKER
6 #include <Rose/BinaryAnalysis/ModelChecker/Types.h>
9 namespace BinaryAnalysis {
10 namespace ModelChecker {
16 class PathQueue final {
27 virtual bool operator()(
const PathPtr&) = 0;
31 mutable SAWYER_THREAD_TRAITS::Mutex mutex_;
32 PathPrioritizerPtr prioritizer_;
33 std::vector<PathPtr> paths_;
41 PathQueue(
const PathPrioritizerPtr&);
56 PathPrioritizerPtr prioritizer()
const;
57 void prioritizer(
const PathPrioritizerPtr&);
86 void insert(
const PathPtr&);
103 void traverse(Visitor&)
const;
Main namespace for the ROSE library.