|
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 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
1.7.6.1