00001 /* 00002 Free Download Manager Copyright (c) 2003-2007 FreeDownloadManager.ORG 00003 */ 00004 00005 #include "stdafx.h" 00006 #include "vmsBtDownloadPeerInfoListImpl.h" 00007 #include "vmsBtDownloadImpl.h" 00008 00009 vmsBtDownloadPeerInfoListImpl::vmsBtDownloadPeerInfoListImpl(void) 00010 { 00011 } 00012 00013 vmsBtDownloadPeerInfoListImpl::~vmsBtDownloadPeerInfoListImpl(void) 00014 { 00015 } 00016 00017 int vmsBtDownloadPeerInfoListImpl::get_PeerCount () 00018 { 00019 return (int)m_vPeers.size (); 00020 } 00021 00022 vmsBtDownloadPeerInfo* vmsBtDownloadPeerInfoListImpl::get_Peer (int nIndex) 00023 { 00024 return &m_vPeers [nIndex]; 00025 } 00026 00027 bool vmsBtDownloadPeerInfoListImpl::UpdateList () 00028 { 00029 m_dld->check_handle_is_valid (); 00030 std::vector<peer_info> v; 00031 m_dld->m_handle.get_peer_info (v); 00032 std::vector <vmsBtDownloadPeerInfoImpl> vPeers; 00033 00034 for (size_t i = 0; i < v.size (); i++) 00035 { 00036 vmsBtDownloadPeerInfoImpl peer; 00037 peer_info *p = &v [i]; 00038 if (p->total_download == 0 && p->total_upload == 0) 00039 continue; 00040 peer.m_peer = *p; 00041 vPeers.push_back (peer); 00042 } 00043 00044 bool bChanged = vPeers.size () != m_vPeers.size (); 00045 if (bChanged == false) 00046 { 00047 for (size_t i = 0; i < vPeers.size (); i++) 00048 { 00049 if (vPeers [i].m_peer.ip != m_vPeers [i].m_peer.ip) 00050 { 00051 bChanged = true; 00052 break; 00053 } 00054 } 00055 } 00056 00057 m_vPeers = vPeers; 00058 return bChanged; 00059 }
1.5.6