Observer.h 769 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef _OBSERVER_FBASICS_H
  2. #define _OBSERVER_FBASICS_H
  3. #include <string>
  4. namespace NICE {
  5. class Observable;
  6. /**
  7. * Base class for Observer as in Observer-pattern.
  8. *
  9. * @author Ferid Bajramovic (ferid [dot] bajramovic [at] informatik [dot] uni-jena [dot] de)
  10. */
  11. class Observer {
  12. public:
  13. inline Observer() : observed(NULL) {}
  14. virtual ~Observer();
  15. protected:
  16. inline Observable* getObserved() const { return observed; }
  17. /**
  18. * Called by Observable when its state has changed.
  19. */
  20. virtual void notified() = 0;
  21. private:
  22. Observable* observed;
  23. inline void setObserved(Observable* _observed) {
  24. observed = _observed;
  25. }
  26. friend class Observable;
  27. };
  28. } // namespace
  29. #include <core/basics/Observable.h>
  30. #endif // _OBSERVER_FBASICS_H