00001 00031 #ifndef __adevs_msg_manager_h_ 00032 #define __adevs_msg_manager_h_ 00033 00034 namespace adevs 00035 { 00036 00041 template <typename X> class MessageManager 00042 { 00043 public: 00048 virtual X clone(X& value) = 0; 00055 virtual void destroy(X& value) = 0; 00056 virtual ~MessageManager(){} 00057 }; 00058 00063 template <typename X> class NullMessageManager: 00064 public MessageManager<X> 00065 { 00066 public: 00068 X clone(X& value) { return value; } 00070 void destroy(X& value){} 00071 }; 00072 00073 } 00074 00075 #endif