1 #ifndef INCLUDED_DYNAMIC_OBJECT_H 2 #define INCLUDED_DYNAMIC_OBJECT_H 3 4 #include "dynamic-parameters.h" 5 #include "eca-object.h" 6 7 /** 8 * Virtual class for objects supporting dynamic parameter 9 * control. 10 * 11 * Related design patterns: 12 * - Factory Method / Virtual Constructor (GoF107) 13 * 14 * @author Kai Vehmanen 15 */ 16 template<class T> 17 class DYNAMIC_OBJECT : public DYNAMIC_PARAMETERS<T>, 18 public ECA_OBJECT { 19 20 public: 21 ~DYNAMIC_OBJECT(void)22 virtual ~DYNAMIC_OBJECT (void) {} 23 24 /** 25 * Virtual method that clones the current object and returns 26 * a pointer to it. This must be implemented by all subclasses! 27 */ 28 virtual DYNAMIC_OBJECT<T>* clone(void) const = 0; 29 30 /** 31 * Virtual method that creates a new object of current type. 32 * This must be implemented by all subclasses! 33 */ 34 virtual DYNAMIC_OBJECT<T>* new_expr(void) const = 0; 35 }; 36 37 #endif 38