00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef _CELUTIL_WATCHER_H_
00011 #define _CELUTIL_WATCHER_H_
00012
00013 template<class T> class Watcher
00014 {
00015 private:
00016 T& watched;
00017
00018 public:
00019 Watcher(T& _watched) : watched(_watched)
00020 {
00021 watched.addWatcher(this);
00022 };
00023
00024 virtual ~Watcher()
00025 {
00026 watched.removeWatcher(this);
00027 }
00028
00029 virtual void notifyChange(T*, int) = 0;
00030 };
00031
00032 #endif // _CELUTIL_WATCHER_H_