70 lines
1.4 KiB
C++
70 lines
1.4 KiB
C++
#include "stdafx.h"
|
|
#include ".\timekeeper.h"
|
|
#include "TimeObject.h"
|
|
#include "ConnectionTimeout.h"
|
|
|
|
TimeKeeper g_TimeKeeper;
|
|
|
|
TimeKeeper::TimeKeeper()
|
|
{
|
|
|
|
}
|
|
|
|
TimeKeeper::~TimeKeeper()
|
|
{
|
|
|
|
}
|
|
|
|
VOID TimeKeeper::InitTimeKeeper( DWORD dwHashSize )
|
|
{
|
|
m_TimeObjectHash.Initialize( dwHashSize );
|
|
m_TimeObjectHashByUserGUID.Initialize( dwHashSize );
|
|
}
|
|
VOID TimeKeeper::ReleaseTimeKeeper()
|
|
{
|
|
// Object¹ÝȯÇÏÀÚ!
|
|
|
|
m_TimeObjectHash.RemoveAll();
|
|
m_TimeObjectHashByUserGUID.RemoveAll();
|
|
}
|
|
|
|
VOID TimeKeeper::Update()
|
|
{
|
|
m_TimeObjectHash.SetFirst();
|
|
while (TimeObject* pObj = m_TimeObjectHash.GetNext() )
|
|
{
|
|
pObj->_update();
|
|
}
|
|
}
|
|
|
|
VOID TimeKeeper::PushTimer( DWORD dwKey, TimeObject * pObj )
|
|
{
|
|
ASSERT(pObj);
|
|
// ÀÓ½Ã
|
|
ConnectionTimeout * pTimeout = (ConnectionTimeout *)pObj;
|
|
|
|
m_TimeObjectHash.Add( pObj, dwKey );
|
|
m_TimeObjectHashByUserGUID.Add( pObj, pTimeout->GetUserGUID() );
|
|
}
|
|
|
|
VOID TimeKeeper::KillTimer( DWORD dwKey, TimeObject ** ppObj )
|
|
{
|
|
TimeObject * pObject = m_TimeObjectHash.GetData( dwKey );
|
|
if( ppObj ) *ppObj = pObject;
|
|
|
|
ConnectionTimeout * pTimeout = (ConnectionTimeout *)pObject;
|
|
|
|
m_TimeObjectHash.Remove( dwKey );
|
|
if(pTimeout) m_TimeObjectHashByUserGUID.Remove(pTimeout->GetUserGUID());
|
|
|
|
}
|
|
|
|
TimeObject * TimeKeeper::PeekTimer( DWORD dwKey )
|
|
{
|
|
return m_TimeObjectHash.GetData( dwKey );
|
|
}
|
|
|
|
TimeObject * TimeKeeper::PeekTimerByUserGUID( DWORD dwUserGUID )
|
|
{
|
|
return m_TimeObjectHashByUserGUID.GetData( dwUserGUID );
|
|
} |