00001 #ifndef Operator_h 00002 #define Operator_h 00003 00010 class Operator 00011 { 00012 public: 00013 virtual bool operate(StateP) = 0; 00014 00020 virtual bool initialize(StateP) 00021 { return true; } 00022 00027 virtual void registerParameters(StateP) 00028 { } 00029 00034 virtual void write(XMLNode&) 00035 { } 00036 00041 virtual void read(XMLNode&) 00042 { } 00043 00044 virtual ~Operator() 00045 { } 00046 }; 00047 typedef boost::shared_ptr<Operator> OperatorP; 00048 00049 #endif // Operator_h