AndroMeta  2.0.0
AndroMeta/include/AndroMeta/MCondition.h
Go to the documentation of this file.
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