FriendList.cpp
上传用户:hysujiao87
上传日期:2007-12-02
资源大小:156k
文件大小:1k
源码类别:

ICQ/即时通讯

开发平台:

C/C++

  1. #include "stdafx.h"
  2. #include "friendlist.h"
  3. CFriendList::CFriendList(void)
  4. {
  5. }
  6. CFriendList::~CFriendList(void)
  7. {
  8. clear();
  9. }
  10. void CFriendList::clear(void)
  11. {
  12. FriendIterator it = _vector.begin();
  13. for(; it != _vector.end(); it++)
  14. {
  15. delete *it;
  16. }
  17. _vector.clear();
  18. }
  19. HRESULT CFriendList::addFriend(const CFriendData &friendData)
  20. {
  21. CFriendData *oldData = getFriend(friendData.userID);
  22. if (oldData == NULL)
  23. {
  24. CFriendData *data = new CFriendData(friendData);
  25. _vector.push_back(data);
  26. return S_OK;
  27. }
  28. *oldData = friendData;
  29. return S_OK;
  30. }
  31. CFriendData* CFriendList::getFriend(LPCTSTR friendID)
  32. {
  33. _ASSERTE(friendID != NULL);
  34. if (friendID == NULL)
  35. return NULL;
  36. FriendIterator it = _vector.begin();
  37. for(; it != _vector.end(); it++)
  38. {
  39. if ((*it)->userID == friendID)
  40. return (*it);
  41. }
  42. return NULL;
  43. }
  44. CFriendData* CFriendList::getFriend(int index)
  45. {
  46. if (index >= (int)_vector.size())
  47. return NULL;
  48. return _vector[index];
  49. }
  50. HRESULT CFriendList::deleteFriend(LPCTSTR friendID)
  51. {
  52. _ASSERTE(friendID != NULL);
  53. if (friendID == NULL)
  54. return E_INVALIDARG;
  55. CFriendData *oldData = getFriend(friendID);
  56. FriendIterator it = _vector.begin();
  57. for(; it != _vector.end(); it++)
  58. {
  59. if ((*it)->userID == friendID)
  60. {
  61. delete (*it);
  62. _vector.erase(it);
  63. return S_OK;
  64. }
  65. }
  66. return S_OK;
  67. }