00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __OBSERVER_CONNECTOR_HPP__
00021 #define __OBSERVER_CONNECTOR_HPP__
00022
00028 class ObserverConnectorInt {
00029 public:
00030 virtual ~ObserverConnectorInt() {};
00031 virtual void probe() = 0;
00032 };
00033
00051 template<class Subject, class Observer>
00052 class ObserverConnector : public ObserverConnectorInt {
00053 private:
00054 Subject &sub_;
00055 Observer &obs_;
00056 public:
00057 ObserverConnector(Subject &s, Observer &o)
00058 : sub_(s), obs_(o) {}
00059
00060 virtual ~ObserverConnector() {}
00061
00062 virtual void probe() {
00063 obs_.update(sub_);
00064 }
00065 };
00066 #endif