#include "StdAfx.h" #include "UserManager.h" #include "UserSession.h" #include "UserSessionFactory.h" UserManager::UserManager(void) { m_pUserHashTable = new SolarHashTable; } UserManager::~UserManager(void) { } VOID UserManager::Release() { for( USER_HASH_ITR it = m_pUserHashTable->begin(); it != m_pUserHashTable->end(); ++it ) { UserSession *pUser = *it; UserSessionFactory::Instance()->FreeUser( pUser ); } SAFE_DELETE(m_pUserHashTable); } VOID UserManager::Init( DWORD dwUserSize ) { m_pUserHashTable->Initialize( dwUserSize ); } BOOL UserManager::AddUser( UserSession* pUserSession ) { if( !pUserSession ) return FALSE; if( GetUser( pUserSession->GetUserKey() ) ) return FALSE; m_pUserHashTable->Add( pUserSession, pUserSession->GetUserKey() ); return TRUE; } BOOL UserManager::RemoveUser( DWORD dwUserKey ) { if( !GetUser( dwUserKey ) ) return FALSE; m_pUserHashTable->Remove( dwUserKey ); return TRUE; } VOID UserManager::SendPacketAll( MSG_BASE * pMsg, WORD wSize ) { for( USER_HASH_ITR it = m_pUserHashTable->begin(); it != m_pUserHashTable->end(); ++it ) { UserSession *pUser = *it; pUser->SendPacket( pMsg, wSize ); } }