+ virtual unsigned add_signal(unsigned, const SignalType &);
+ virtual void remove_signal(unsigned);
+ virtual void set_signal(unsigned, unsigned);
+ virtual unsigned get_signal(unsigned) const;
+
+private:
+ MagnetAccessory &add_accessory(unsigned, MagnetAccessory::Type, MagnetAccessory::Symbol);
+ void remove_accessory(unsigned);
+ void set_accessory_state(unsigned, MagnetAccessory::Type, unsigned);
+ unsigned get_accessory_state(unsigned, MagnetAccessory::Type) const;
+ void accessory_state_changed(const MagnetAccessory &) const;
+
+public:
+ virtual unsigned add_sensor(unsigned);
+ virtual void remove_sensor(unsigned);