00001 /******************************************************************************* 00002 * Condition.h 00003 * 00004 * (C) 2006 AG Aktives Sehen <agas@uni-koblenz.de> 00005 * Universitaet Koblenz-Landau 00006 * 00007 * Information on Code Review state: 00008 * §Author: R5; DevelTest: Date; Reviewer: R5; Review: Date; State: OK§ 00009 * 00010 * Additional information: 00011 * $Id: Condition.h 44313 2011-04-06 22:46:28Z agas $ 00012 ******************************************************************************/ 00013 00014 00015 #ifndef CONDITION_H 00016 #define CONDITION_H 00017 00018 #include "Types.h" 00019 #include "Mutex.h" 00020 00053 class Condition 00054 { 00055 00056 public: 00057 00062 Condition(); 00063 00068 virtual ~Condition(); 00069 00076 void wait ( Mutex& mutex ); 00077 00078 00084 void wait( Mutex& mutex, unsigned int maxTime ); 00085 00090 void signal(); 00091 00096 void broadcast(); 00097 00098 private: 00099 00103 TCondition* m_Condition; 00104 00109 bool m_SignalArrived; 00110 00116 Mutex m_SignalArrivedMutex; 00117 00118 }; 00119 00120 #endif