00001 #ifndef NMWR_GB_MUTATOR_BASE_H 00002 #define NMWR_GB_MUTATOR_BASE_H 00003 00004 00005 // $LICENSE 00006 00007 #include <iostream.h> 00008 #include <string> 00009 00010 00011 00013 00018 class Mutator { 00019 public: 00020 virtual void read (std::istream& in) = 0; 00021 virtual void print(std::ostream& out) const = 0; 00022 virtual void print(std::ostream& out, const std::string& name) const = 0; 00023 00024 virtual std::string vartypename() const = 0; 00025 virtual std::string description() const; 00026 virtual ~Mutator() {} 00027 }; 00028 00029 00030 class ControlDevice; 00031 00032 00039 class controlable { 00040 public: 00041 virtual void init() {} 00042 virtual void update() {} 00043 virtual void finish() {} 00044 00046 virtual void register_at(ControlDevice& Ctrl) {} 00048 virtual void register_at(ControlDevice& Ctrl, const std::string& /*prefix*/) {} 00049 00051 virtual void notify() {} 00052 00053 virtual ~controlable() {} 00054 }; 00055 00056 00057 #endif