00001
00002
00003 #ifndef NMWR_GB_MUTATOR_BASE_H
00004 #define NMWR_GB_MUTATOR_BASE_H
00005
00011 #include <iosfwd>
00012 #include <string>
00013
00020 class Mutator {
00021 public:
00022 virtual void read (std::istream& in) = 0;
00023 virtual void print(std::ostream& out) const = 0;
00024 virtual void print(std::ostream& out, const std::string& name) const = 0;
00025 virtual std::string description() const;
00026 virtual ~Mutator() {}
00027 };
00028
00029 class ControlDevice;
00030
00038 class controlable {
00039 public:
00040 virtual void register_at(ControlDevice&,const std::string& ) {}
00041 virtual void register_at(ControlDevice&) {}
00042
00043
00044 virtual void notify() {}
00045 virtual ~controlable() {}
00046 };
00047
00048
00049 #endif