+++ /dev/null
-// TsUtilClass.cpp: TS\83\86\81[\83e\83B\83\8a\83e\83B\81[\83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93\r
-//\r
-//////////////////////////////////////////////////////////////////////\r
-\r
-#include "TsUtilClass.h"\r
-\r
-\r
-//////////////////////////////////////////////////////////////////////\r
-// CDynamicReferenceable \83N\83\89\83X\82Ì\8d\\92z/\8fÁ\96Å\r
-//////////////////////////////////////////////////////////////////////\r
-\r
-CDynamicReferenceable::CDynamicReferenceable()\r
- : m_dwRefCount(0UL)\r
-{\r
-\r
-}\r
-\r
-CDynamicReferenceable::~CDynamicReferenceable()\r
-{\r
-\r
-}\r
-\r
-void CDynamicReferenceable::AddRef(void)\r
-{\r
- // \8eQ\8fÆ\83J\83E\83\93\83g\83C\83\93\83N\83\8a\83\81\83\93\83g\r
- m_dwRefCount++;\r
-}\r
-\r
-void CDynamicReferenceable::ReleaseRef(void)\r
-{\r
- // \8eQ\8fÆ\83J\83E\83\93\83g\83f\83N\83\8a\83\81\83\93\83g\r
- if(m_dwRefCount){\r
- // \83C\83\93\83X\83^\83\93\83X\8aJ\95ú\r
- if(!(--m_dwRefCount))delete this;\r
- }\r
-#ifdef _DEBUG\r
- else{\r
- ::DebugBreak();\r
- }\r
-#endif\r
-}\r
-\r
-\r
-//////////////////////////////////////////////////////////////////////\r
-// CCriticalLock \83N\83\89\83X\82Ì\8d\\92z/\8fÁ\96Å\r
-//////////////////////////////////////////////////////////////////////\r
-\r
-CCriticalLock::CCriticalLock()\r
-{\r
- // \83N\83\8a\83e\83B\83J\83\8b\83Z\83N\83V\83\87\83\93\8f\89\8aú\89»\r
- pthread_mutex_init(&m_CriticalSection, NULL);\r
-}\r
-\r
-CCriticalLock::~CCriticalLock()\r
-{\r
- // \83N\83\8a\83e\83B\83J\83\8b\83Z\83N\83V\83\87\83\93\8dí\8f\9c\r
- pthread_mutex_destroy(&m_CriticalSection);\r
-}\r
-\r
-void CCriticalLock::Lock(void)\r
-{\r
- // \83N\83\8a\83e\83B\83J\83\8b\83Z\83N\83V\83\87\83\93\8eæ\93¾\r
- pthread_mutex_lock(&m_CriticalSection);\r
-}\r
-\r
-void CCriticalLock::Unlock(void)\r
-{\r
- // \83N\83\8a\83e\83B\83J\83\8b\83Z\83N\83V\83\87\83\93\8aJ\95ú\r
- pthread_mutex_unlock(&m_CriticalSection);\r
-}\r
- \r
- \r
-//////////////////////////////////////////////////////////////////////\r
-// CBlockLock \83N\83\89\83X\82Ì\8d\\92z/\8fÁ\96Å\r
-//////////////////////////////////////////////////////////////////////\r
- \r
-CBlockLock::CBlockLock(CCriticalLock *pCriticalLock)\r
- : m_pCriticalLock(pCriticalLock)\r
-{\r
- // \83\8d\83b\83N\8eæ\93¾\r
- m_pCriticalLock->Lock();\r
-}\r
-\r
-CBlockLock::~CBlockLock()\r
-{\r
- // \83\8d\83b\83N\8aJ\95ú\r
- m_pCriticalLock->Unlock();\r
-}\r