1 // TsUtilClass.cpp: TSユーティリティークラスのインプリメンテーション
3 //////////////////////////////////////////////////////////////////////
5 #include "TsUtilClass.h"
8 //////////////////////////////////////////////////////////////////////
9 // CDynamicReferenceable クラスの構築/消滅
10 //////////////////////////////////////////////////////////////////////
12 CDynamicReferenceable::CDynamicReferenceable()
18 CDynamicReferenceable::~CDynamicReferenceable()
23 void CDynamicReferenceable::AddRef(void)
29 void CDynamicReferenceable::ReleaseRef(void)
34 if(!(--m_dwRefCount))delete this;
44 //////////////////////////////////////////////////////////////////////
45 // CCriticalLock クラスの構築/消滅
46 //////////////////////////////////////////////////////////////////////
48 CCriticalLock::CCriticalLock()
51 pthread_mutex_init(&m_CriticalSection, NULL);
54 CCriticalLock::~CCriticalLock()
57 pthread_mutex_destroy(&m_CriticalSection);
60 void CCriticalLock::Lock(void)
63 pthread_mutex_lock(&m_CriticalSection);
66 void CCriticalLock::Unlock(void)
69 pthread_mutex_unlock(&m_CriticalSection);
73 //////////////////////////////////////////////////////////////////////
74 // CBlockLock クラスの構築/消滅
75 //////////////////////////////////////////////////////////////////////
77 CBlockLock::CBlockLock(CCriticalLock *pCriticalLock)
78 : m_pCriticalLock(pCriticalLock)
81 m_pCriticalLock->Lock();
84 CBlockLock::~CBlockLock()
87 m_pCriticalLock->Unlock();