--- /dev/null
+#ifndef _EVENT_H_\r
+#define _EVENT_H_\r
+\r
+#include <iostream>\r
+#include <string>\r
+#include <pthread.h>\r
+#include "Mutex.h"\r
+#include "Condition.h"\r
+\r
+class Event {\r
+ public:\r
+ Event();\r
+ Event(std::string name);\r
+ Event(Mutex *mutex);\r
+ virtual ~Event();\r
+ virtual void notify();\r
+ virtual void notifyAll();\r
+ virtual void wait();\r
+ virtual void notifyAfterWait();\r
+\r
+ protected:\r
+ Mutex *_mutex;\r
+ Condition *_condition;\r
+ Mutex *_waitMutex;\r
+ Condition *_waitCondition;\r
+ bool _pendingWait;\r
+ std::string _name;\r
+};\r
+\r
+#endif\r