void Peer::HandleResponses(WMessagePtr pWMsg) { MessagePtr pMsg = pWMsg->GetMsg(); // get the peer list if given in message std::vector<RemotePeers> peerList = pMsg->m_peerList; if( peerList.size() > 0 ) { long ts = pMsg->m_timestamp; this->HandlePeerList(peerList, ts); } // see if it is a task message if( pMsg->IsTaskMessage() ) { int msgTaskId = pMsg->m_taskId; // get the task and forward the message std::map<int, TaskPtr>::iterator it; it = m_taskList.find(msgTaskId); if( it != m_taskList.end() ) { TaskPtr pTask = (*it).second; pTask->GetMessageQueue()->PutMessage(pWMsg); } else { Log(CONSOLE, L"No Task Related to Task Response Message Received for taskId: %d\n", msgTaskId); } return; } switch(pMsg->m_respType) { case GET_ONLINE_RESP: HandleOnlineResp(pMsg); break; default: break; } }