1 ///////////////////////////////////////////////////////////////////////////
2 // Workfile: Observer.h
3 // Author: Daniel Giritzer <daniel@giritzer.eu>
5 // Description: Interface für eine Observer Klasse.
7 ///////////////////////////////////////////////////////////////////////////
8 #ifndef OBSERVER_H_INCLUDED
9 #define OBSERVER_H_INCLUDED
17 /////////////////////////////////////////////////
18 /// \brief Interface fuer einen Observer.
19 /////////////////////////////////////////////////
20 class Observer : public Object
23 /////////////////////////////////////////////////
24 /// \brief Diese Funktion wird in der Implementierung
25 /// bei änderungen eines überwachten Objektes
27 /// \param s Objekt mit änderungen.
28 /////////////////////////////////////////////////
29 virtual void updatedBySubject(Subject* s) = 0;
31 /////////////////////////////////////////////////
32 /// \brief Füge ein zu überwachendes Objekt hinzu.
33 /// \param s Zu überwachendes Objekt.
34 /////////////////////////////////////////////////
35 void subscribeSubject(Subject* s);
37 /////////////////////////////////////////////////
38 /// \brief Entferne ein überwachtes Objekt.
39 /// \param s Bereits überwachetes Objekt.
40 /////////////////////////////////////////////////
41 void unsubscribeSubject(Subject* s);
43 /////////////////////////////////////////////////
44 /// \brief Von Subject Klassen verwendete funktion
45 /// um Observer über änderungen zu
47 /// \param s Objekt mit änderungen.
48 /////////////////////////////////////////////////
49 void updateObserver(Subject* s);
53 std::list<Subject*> mSubjects;
57 #endif // OBSERVER_H_INCLUDED