ROSE  0.11.145.0
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 
7 namespace Rose {
8 namespace BinaryAnalysis {
9 namespace Concolic {
10 namespace Callback {
11 
20 class MemoryTime: public SharedMemoryCallback {
21 public:
23  using Ptr = MemoryTimePtr;
24 
25 private:
26  SymbolicExpression::Ptr prevRead_; // value previously read by this callback
27 
28 protected:
29  explicit MemoryTime(const std::string &name); // for factories
30  MemoryTime(const AddressInterval &where, const std::string &name);
31 public:
32  ~MemoryTime();
33 
34 public:
36  static Ptr instance(const AddressInterval &where);
37 
39  static Ptr factory();
40 
41 public:
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
Main namespace for the ROSE library.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.