1 #ifndef ROSE_BinaryAnalysis_Concolic_ConcreteExecutor_H
2 #define ROSE_BinaryAnalysis_Concolic_ConcreteExecutor_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_CONCOLIC_TESTING
5 #include <Rose/BinaryAnalysis/Concolic/BasicTypes.h>
7 #include <boost/filesystem.hpp>
8 #include <Sawyer/SharedObject.h>
9 #include <Sawyer/SharedPointer.h>
12 namespace BinaryAnalysis {
28 using Ptr = ConcreteExecutorPtr;
36 explicit ConcreteExecutor(
const std::string&);
37 explicit ConcreteExecutor(
const DatabasePtr&);
79 static Ptr forge(
const DatabasePtr&,
const std::string &name);
82 virtual bool matchFactory(
const std::string &name)
const = 0;
88 virtual Ptr instanceFromFactory(
const DatabasePtr&) = 0;
95 bool isFactory()
const;
107 const std::string& name()
const;
108 void name(
const std::string&);
112 DatabasePtr database()
const;
122 virtual ConcreteResultPtr execute(
const TestCasePtr&) = 0;
151 void executionMonitor(
const boost::filesystem::path& executorName)
153 execmon = executorName;
157 boost::filesystem::path executionMonitor()
const
165 boost::filesystem::path execmon;
Main namespace for the ROSE library.
std::vector< BasePtr > registeredFactories()
Returns all registered disassembler factories.
bool deregisterFactory(const BasePtr &)
Remove a disassembler factory from the registry.
Base class for reference counted objects.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.
void registerFactory(const BasePtr &)
Append a disassembler factory to the registry.