Files
Sun1602/LogCollector/SUNLogConsole/LogCriticalSection.cpp
T
2022-10-26 12:25:11 +08:00

110 lines
2.4 KiB
C++

/*------------------------------------------------------------------------------
* LogCriticalSection.cpp
*------------------------------------------------------------------------------
*
*------------------------------------------------------------------------------
* All rights reserved by Jin Hye Jin (jiny7749@hotmail.com)
**----------------------------------------------------------------------------*/
#include "stdafx.h"
#include "LogCriticalSection.h"
/** ----------------------------------------------------------------------------
\brief
\param
\return
------------------------------------------------------------------------------*/
LogCriticalSection::LogCriticalSection()
: m_initialized(FALSE)
{
Init();
}
/** ----------------------------------------------------------------------------
\brief
\param
\return
------------------------------------------------------------------------------*/
LogCriticalSection::~LogCriticalSection()
{
if (TRUE == m_initialized)
{
DeleteCriticalSection(&m_CriticalSection);
m_initialized = FALSE;
}
}
/** ----------------------------------------------------------------------------
\brief
\param
\return
------------------------------------------------------------------------------*/
int LogCriticalSection::Init()
{
if (TRUE == m_initialized)
{
return 0;
}
__try
{
InitializeCriticalSection(&m_CriticalSection);
}
__except( EXCEPTION_EXECUTE_HANDLER )
{
_ASSERTE(!"InitializeCriticalSection");
return -1;
}
m_initialized = TRUE;
return 0;
}
/** ----------------------------------------------------------------------------
\brief
\param
\return
------------------------------------------------------------------------------*/
int LogCriticalSection::Enter()
{
_ASSERTE(TRUE == m_initialized);
if (FALSE == m_initialized)
{
_ASSERTE(!"not initialized");
return -1;
}
__try
{
::EnterCriticalSection(&m_CriticalSection);
}
__except( EXCEPTION_EXECUTE_HANDLER )
{
_ASSERTE(!"EnterCriticalSection");
return -1;
}
return 0;
}
/** ----------------------------------------------------------------------------
\brief
\param
\return
------------------------------------------------------------------------------*/
int LogCriticalSection::Leave()
{
_ASSERTE(TRUE == m_initialized);
if (FALSE == m_initialized)
{
_ASSERTE(!"not initialized");
return -1;
}
::LeaveCriticalSection(&m_CriticalSection);
return 0;
}