AndroMeta  2.0.0
AndroMeta/include/AndroMeta/MRecGuard.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 
00019 #ifndef ANDROMETA_M_REC_GUARD_H
00020 #define ANDROMETA_M_REC_GUARD_H
00021 
00022 namespace Meta{
00023   
00024   class MRecMutex;
00025   
00036   class MRecGuard{
00037   public:
00038     
00044     MRecGuard(MRecMutex& mutex);
00045     
00051     MRecGuard(MRecMutex* mutex);
00052     
00056     ~MRecGuard();
00057     
00061     void release();
00062     
00066     void acquire();
00067     
00068   private:  
00069     MRecGuard(const MRecGuard&);
00070     MRecGuard& operator=(const MRecGuard&);
00071     
00072     class MRecGuard_* x_;
00073   };
00074   
00075 } // end namespace Meta
00076 
00077 #endif // ANDROMETA_M_REC_GUARD_H