raSystem  1.0 bata
raCriticalSection.h
Go to the documentation of this file.
1 #pragma once
2 
4  {
5  public:
6  raCriticalSection(void);
7  ~raCriticalSection(void);
8 
9  virtual void Create(void);
10  virtual bool Create(DWORD SpinCount);
11  virtual void Destroy(void);
12 
13  virtual void Enter( void );
14  virtual void Leave( void );
15 
16  private:
17  CRITICAL_SECTION m_Crit;
18  };
19 
20  //--------------------------------
21  #define RACSECTION(x) if (System::raCriticalBlock __csc = x)
22 
24  {
25  public:
26  raCriticalBlock(IRASection* rc) : m_rc(rc)
27  {
28  m_rc->Enter();
29  }
31  {
32  m_rc->Leave();
33  }
34  operator bool()
35  {
36  return true;
37  }
38  private:
39  IRASection* m_rc;
40  };
virtual void Leave(void)=0
virtual void Create(void)=0
raCriticalBlock(IRASection *rc)
#define RAPI
Definition: raMain.h:11
virtual void Destroy(void)=0
virtual void Enter(void)=0