BeRTOS
observer.h
Go to the documentation of this file.
00001 
00037 #ifndef MWARE_OBSERVER_H
00038 #define MWARE_OBSERVER_H
00039 
00040 #include <struct/list.h>
00041 
00066 typedef struct Observer
00067 {
00068     Node link;
00069     void (*event)(int event_id, void *param);
00070 } Observer;
00071 
00072 typedef struct Subject
00073 {
00075     List observers;
00076 
00077 } Subject;
00078 
00079 void observer_SetEvent(Observer *observer, void (*event)(int event_id, void *param));
00080 
00081 #define OBSERVER_INITIALIZER(callback) { { NULL, NULL }, callback }
00082 
00083 void observer_InitSubject(Subject *subject);
00084 
00086 void observer_Subscribe(Subject *subject, Observer *observer);
00087 
00089 void observer_Unsubscribe(Subject *subject, Observer *observer);
00090 
00093 void observer_notify(Subject *subject, int event_id, void *param);
00094 
00095 #endif /* MWARE_OBSERVER_H */