adevs
adevs_msg_manager.h
1 
31 #ifndef __adevs_msg_manager_h_
32 #define __adevs_msg_manager_h_
33 
34 namespace adevs
35 {
36 
41 template <typename X> class MessageManager
42 {
43  public:
48  virtual X clone(X& value) = 0;
55  virtual void destroy(X& value) = 0;
56  virtual ~MessageManager(){}
57 };
58 
63 template <typename X> class NullMessageManager:
64  public MessageManager<X>
65 {
66  public:
68  X clone(X& value) { return value; }
70  void destroy(X& value){}
71 };
72 
73 }
74 
75 #endif
Definition: adevs_msg_manager.h:63
Definition: adevs_msg_manager.h:41
void destroy(X &value)
Takes no action on the value.
Definition: adevs_msg_manager.h:70
virtual X clone(X &value)=0
virtual void destroy(X &value)=0
X clone(X &value)
Uses the objects default copy constructor.
Definition: adevs_msg_manager.h:68