www.pudn.com > QQ2004_Source_0.01.rar > FriendList.cpp
#include "stdafx.h"
#include "friendlist.h"
CFriendList::CFriendList(void)
{
}
CFriendList::~CFriendList(void)
{
clear();
}
void CFriendList::clear(void)
{
FriendIterator it = _vector.begin();
for(; it != _vector.end(); it++)
{
delete *it;
}
_vector.clear();
}
HRESULT CFriendList::addFriend(const CFriendData &friendData)
{
CFriendData *oldData = getFriend(friendData.userID);
if (oldData == NULL)
{
CFriendData *data = new CFriendData(friendData);
_vector.push_back(data);
return S_OK;
}
*oldData = friendData;
return S_OK;
}
CFriendData* CFriendList::getFriend(LPCTSTR friendID)
{
_ASSERTE(friendID != NULL);
if (friendID == NULL)
return NULL;
FriendIterator it = _vector.begin();
for(; it != _vector.end(); it++)
{
if ((*it)->userID == friendID)
return (*it);
}
return NULL;
}
CFriendData* CFriendList::getFriend(int index)
{
if (index >= (int)_vector.size())
return NULL;
return _vector[index];
}
HRESULT CFriendList::deleteFriend(LPCTSTR friendID)
{
_ASSERTE(friendID != NULL);
if (friendID == NULL)
return E_INVALIDARG;
CFriendData *oldData = getFriend(friendID);
FriendIterator it = _vector.begin();
for(; it != _vector.end(); it++)
{
if ((*it)->userID == friendID)
{
delete (*it);
_vector.erase(it);
return S_OK;
}
}
return S_OK;
}