|
AndroMeta
2.0.0
|
00001 /* 00002 * Copyright 2009-2012 AndroMeta LLC. All rights reserved. 00003 * 00004 * AndroMeta LLC retains all intellectual property and proprietary 00005 * rights to this software and related documentation and any modifications 00006 * thereto. Any use, reproduction, disclosure, or distribution of this 00007 * software and related documentation without an express license agreement 00008 * from AndroMeta LLC is strictly prohibited. 00009 * 00010 */ 00011 00018 #ifndef ANDROMETA_M_CONDITION_H 00019 #define ANDROMETA_M_CONDITION_H 00020 00021 #include <AndroMeta/MTime.h> 00022 00023 namespace Meta{ 00024 00025 class MMutex; 00026 00034 class MCondition{ 00035 public: 00036 00042 MCondition(MMutex* mutex); 00043 00047 ~MCondition(); 00048 00053 void await(); 00054 00061 bool await(const mtime& timeout); 00062 00066 void signal(); 00067 00071 void broadcast(); 00072 00077 MMutex* mutex(); 00078 00079 private: 00080 MCondition(const MCondition&); 00081 MCondition& operator=(const MCondition&); 00082 00083 class MCondition_* x_; 00084 }; 00085 00086 } // end namespace Meta 00087 00088 #endif // ANDROMETA_M_CONDITION_H
1.7.6.1