mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-07-11 07:23:34 +08:00
git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@61943 954022d7-b5bf-4e40-9824-e11837661b57
44 lines
819 B
C++
44 lines
819 B
C++
#ifndef _BUILD_TEMPORARY_CS_H_
|
|
#define _BUILD_TEMPORARY_CS_H_
|
|
|
|
namespace NSCriticalSection
|
|
{
|
|
class CRITICAL_SECTION_NATIVE
|
|
{
|
|
public:
|
|
CRITICAL_SECTION_NATIVE() {};
|
|
virtual ~CRITICAL_SECTION_NATIVE() {};
|
|
|
|
virtual void Enter() = 0;
|
|
virtual void Leave() = 0;
|
|
};
|
|
|
|
class CRITICAL_SECTION
|
|
{
|
|
private:
|
|
CRITICAL_SECTION_NATIVE* m_pCS;
|
|
|
|
public:
|
|
CRITICAL_SECTION();
|
|
~CRITICAL_SECTION();
|
|
|
|
void InitializeCriticalSection();
|
|
void DeleteCriticalSection();
|
|
|
|
void Enter();
|
|
void Leave();
|
|
};
|
|
}
|
|
|
|
class CTemporaryCS
|
|
{
|
|
public:
|
|
CTemporaryCS(NSCriticalSection::CRITICAL_SECTION* cs);
|
|
~CTemporaryCS();
|
|
void LeaveCS();
|
|
void EnterCS(NSCriticalSection::CRITICAL_SECTION* cs);
|
|
protected:
|
|
NSCriticalSection::CRITICAL_SECTION* m_cs;
|
|
};
|
|
|
|
#endif // _BUILD_TEMPORARY_CS_H_
|