#include "StdAfx.h" #include "OnlineUser.h" COnlineUser::COnlineUser(void) { } COnlineUser::~COnlineUser(void) { } void COnlineUser::InsertOnlineUser(IN DWORD dwConnId, IN LPCTSTR lpStudioId, IN LPCTSTR lpAccount) { if ( IsAccountExist(lpStudioId, lpAccount) != -1 ) return; OnlineUser tagOnlineUser; tagOnlineUser.m_dwConnID = dwConnId; _stprintf_s(tagOnlineUser.m_szStudioId, _T("%s"), lpStudioId); _stprintf_s(tagOnlineUser.m_szAccount, _T("%s"), lpAccount); m_OnlineUser.push_back(tagOnlineUser); } DWORD COnlineUser::IsAccountExist(IN LPCTSTR lpStudioId, IN LPCTSTR lpAccount ) { BOOL bExist = FALSE; vector::iterator it = m_OnlineUser.begin(); for ( ; it != m_OnlineUser.end(); it++ ) { if ( _tcscmp( it->m_szStudioId, lpStudioId ) == 0 && _tcscmp(it->m_szAccount, lpAccount ) == 0 ) { bExist = TRUE; break; } } return bExist ? it->m_dwConnID : -1; } BOOL COnlineUser::IsAccountExist(IN LPCTSTR lpStudioId, IN LPCTSTR lpAccount, OUT DWORD& dwConnId) { BOOL bExist = FALSE; vector::iterator it = m_OnlineUser.begin(); for ( ; it != m_OnlineUser.end(); it++ ) { if ( _tcscmp( it->m_szStudioId, lpStudioId ) == 0 && _tcscmp(it->m_szAccount, lpAccount ) == 0 ) { dwConnId = it->m_dwConnID; bExist = TRUE; break; } } return bExist; } BOOL COnlineUser::IsConnIDExist(IN DWORD dwConnId) { BOOL bExist = FALSE; vector::iterator it = m_OnlineUser.begin(); for ( ; it != m_OnlineUser.end(); it++ ) { if ( dwConnId == it->m_dwConnID ) { bExist = TRUE; break; } } return bExist; } void COnlineUser::EraseOnlineUser(IN DWORD dwConnId) { vector::iterator it = m_OnlineUser.begin(); for ( ; it != m_OnlineUser.end(); ) { if ( dwConnId == it->m_dwConnID ) { it = m_OnlineUser.erase(it); break; } else { it++; } } }