ROSE 0.11.145.147
MemoryTime.h
1#ifndef ROSE_BinaryAnalysis_Concolic_Callback_MemoryTime_H
2#define ROSE_BinaryAnalysis_Concolic_Callback_MemoryTime_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_CONCOLIC_TESTING
5#include <Rose/BinaryAnalysis/Concolic/SharedMemory.h>
6
7namespace Rose {
8namespace BinaryAnalysis {
9namespace Concolic {
10namespace Callback {
11
20class MemoryTime: public SharedMemoryCallback {
21public:
23 using Ptr = MemoryTimePtr;
24
25private:
26 SymbolicExpression::Ptr prevRead_; // value previously read by this callback
27
28protected:
29 explicit MemoryTime(const std::string &name); // for factories
30 MemoryTime(const AddressInterval &where, const std::string &name);
31public:
32 ~MemoryTime();
33
34public:
36 static Ptr instance(const AddressInterval &where);
37
39 static Ptr factory();
40
41public:
42 virtual SharedMemoryCallbackPtr instanceFromFactory(const AddressInterval&, const Yaml::Node &config) const override;
43 virtual void handlePreSharedMemory(SharedMemoryContext&) override;
44 virtual void playback(SharedMemoryContext&) override;
45};
46
47} // namespace
48} // namespace
49} // namespace
50} // namespace
51
52#endif
53#endif
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.
The ROSE library.