retdec
observer.h
Go to the documentation of this file.
1 
7 #ifndef RETDEC_LLVMIR2HLL_SUPPORT_OBSERVER_H
8 #define RETDEC_LLVMIR2HLL_SUPPORT_OBSERVER_H
9 
11 
12 namespace retdec {
13 namespace llvmir2hll {
14 
40 template<typename SubjectType, typename ArgType = SubjectType>
41 class Observer {
42 public:
46  Observer() = default;
47 
51  virtual ~Observer() = default;
52 
63  virtual void update(ShPtr<SubjectType> subject,
64  ShPtr<ArgType> arg = nullptr) {}
65 };
66 
67 } // namespace llvmir2hll
68 } // namespace retdec
69 
70 #endif
Implementation of a generic typed observer using shared pointers (observer part).
Definition: observer.h:41
Observer()=default
Creates a new observer.
virtual ~Observer()=default
Destructs the observer.
virtual void update(ShPtr< SubjectType > subject, ShPtr< ArgType > arg=nullptr)
Subject has changed its state.
Definition: observer.h:63
A library providing API for working with back-end IR.
std::shared_ptr< T > ShPtr
An alias for a shared pointer.
Definition: smart_ptr.h:18
Definition: archive_wrapper.h:19
Declarations, aliases, macros, etc. for the use of smart pointers.