110 lines
2.4 KiB
C++
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;
|
|
} |