ROSE 0.11.145.147
MemoryExit.h
1#ifndef ROSE_BinaryAnalysis_Concolic_Callback_MemoryExit_H
2#define ROSE_BinaryAnalysis_Concolic_Callback_MemoryExit_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_CONCOLIC_TESTING
5#include <Rose/BinaryAnalysis/Concolic/SharedMemory.h>
6
7#include <Sawyer/Optional.h>
8
9namespace Rose {
10namespace BinaryAnalysis {
11namespace Concolic {
12namespace Callback {
13
26class MemoryExit: public SharedMemoryCallback {
27public:
29 using Ptr = MemoryExitPtr;
30
31private:
33
34protected:
35 explicit MemoryExit(const std::string &name);
36 MemoryExit(const AddressInterval&, const std::string &name, const Sawyer::Optional<uint8_t> &status);
37public:
38 ~MemoryExit();
39
40public:
42 static Ptr instance(const AddressInterval&);
43
45 static Ptr instance(const AddressInterval&, const Sawyer::Optional<uint8_t> &status);
46
48 static Ptr factory();
49
55 const Sawyer::Optional<uint8_t>& status() const;
56 void status(const Sawyer::Optional<uint8_t>&);
59public:
60 virtual SharedMemoryCallbackPtr instanceFromFactory(const AddressInterval&, const Yaml::Node &config) const override;
61 virtual void playback(SharedMemoryContext&) override;
62 virtual void handlePreSharedMemory(SharedMemoryContext &ctx) override;
63};
64
65} // namespace
66} // namespace
67} // namespace
68} // namespace
69
70#endif
71#endif
Holds a value or nothing.
Definition Optional.h:56
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.
The ROSE library.