CriticalSection.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:1k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /********************************************************************
  2. created: 2003/02/13
  3. file base: CriticalSection
  4. file ext: h
  5. author: liupeng
  6. purpose: Header file for CRITICAL_SECTION class
  7. *********************************************************************/
  8. #ifndef __INCLUDE_CRITICALSECTION_H__
  9. #define __INCLUDE_CRITICALSECTION_H__
  10. #if defined (_MSC_VER) && (_MSC_VER >= 1020)
  11. #pragma once
  12. #endif
  13. #ifndef _WINDOWS_
  14. #define WIN32_LEAN_AND_MEAN
  15. #include <windows.h>
  16. #undef WIN32_LEAN_AND_MEAN
  17. #endif
  18. /*
  19.  * namespace OnlineGameLib::Win32
  20.  */
  21. namespace OnlineGameLib {
  22. namespace Win32 {
  23. /*
  24.  * CCriticalSection
  25.  */
  26. class CCriticalSection 
  27. {
  28. public:
  29.       class Owner
  30.       {
  31.   public:
  32.             explicit Owner( CCriticalSection &crit );
  33.             ~Owner();
  34.       
  35.   private:
  36.             CCriticalSection &m_crit;
  37.             /*
  38.  * No copies do not implement
  39.  */
  40.             Owner( const Owner &rhs );
  41.             Owner &operator=( const Owner &rhs );
  42.       };
  43.       CCriticalSection();      
  44.       ~CCriticalSection();
  45.       void Enter();
  46.       void Leave();
  47. private:
  48.       CRITICAL_SECTION m_crit;
  49.       /*
  50.    * No copies do not implement
  51.    */
  52.       CCriticalSection( const CCriticalSection &rhs );
  53.       CCriticalSection &operator=( const CCriticalSection &rhs );
  54. };
  55. } // End of namespace Win32 
  56. } // End of namespace OnlineGameLib
  57. #endif //__INCLUDE_CRITICALSECTION_H__