CLock, CSafeLock Class [Bottom] [Top]

헤더 파일: Lock.h [Bottom] [Top]

   1 //      Lock.h : CLock 클래스 선언
   2 //
   3 
   4 #pragma once
   5 
   6 
   7 // 클래스 선언
   8 class CLock
   9 {
  10         // 내부 클래스 선언
  11 public:
  12         class CSafeLock
  13         {
  14                 // 생성자/소멸자
  15         public:
  16                 inline CSafeLock( CLock & lock ) : m_lock( lock )
  17                 { m_lock.Lock(); }
  18 
  19                 inline ~CSafeLock()
  20                 { m_lock.Unlock(); }
  21 
  22                 // 멤버 변수
  23         public:
  24                 CLock & m_lock;
  25         };
  26 
  27         // 생성자/소멸자
  28 public:
  29         inline CLock()
  30         { InitializeCriticalSectionAndSpinCount( &m_cs, 4000 ); }
  31 
  32         inline ~CLock()
  33         { DeleteCriticalSection( &m_cs ); }
  34 
  35         // 멤버 함수
  36 public:
  37         inline void Lock()
  38         { EnterCriticalSection( &m_cs ); }
  39 
  40         inline void Unlock()
  41         { LeaveCriticalSection( &m_cs ); }
  42 
  43         // 멤버 변수
  44 protected:
  45         CRITICAL_SECTION m_cs;
  46 };

Class/Lock (last edited 2006-10-22 09:22:40 by viper)