void send (PeerFinder::Slot::ptr const& slot, std::vector <PeerFinder::Endpoint> const& endpoints) { typedef std::vector <PeerFinder::Endpoint> List; protocol::TMEndpoints tm; for (List::const_iterator iter (endpoints.begin()); iter != endpoints.end(); ++iter) { PeerFinder::Endpoint const& ep (*iter); protocol::TMEndpoint& tme (*tm.add_endpoints()); if (ep.address.is_v4()) tme.mutable_ipv4()->set_ipv4( toNetworkByteOrder (ep.address.to_v4().value)); else tme.mutable_ipv4()->set_ipv4(0); tme.mutable_ipv4()->set_ipv4port (ep.address.port()); tme.set_hops (ep.hops); } tm.set_version (1); PackedMessage::pointer msg ( boost::make_shared <PackedMessage> ( tm, protocol::mtENDPOINTS)); { std::lock_guard <decltype(m_mutex)> lock (m_mutex); PeersBySlot::iterator const iter (m_peers.find (slot)); assert (iter != m_peers.end ()); PeerImp::ptr const peer (iter->second.lock()); assert (peer != nullptr); peer->sendPacket (msg, false); } }
void XMLParser::LoadFile(TCHAR * filename) { TCHAR out[256]; ZeroMemory(out, sizeof(TCHAR) * 256); _stprintf(out, _T("\nParsing document: %s\n"), filename); OutputDebugString(out); HRESULT hr = m_pReader->parseURL(filename); _stprintf(out, _T("\nParse result code: %08x\n\n"),hr); OutputDebugString(out); TaskModelEvent tme(TASK_LIST_RESET, NULL); m_pDataManager->NotifyTaskModelReset(tme); TimeEntryEvent tee; m_pDataManager->getSpeculativeEntryManager()->NotifyChanged(tee); m_pDataManager->getActualEntryManager()->NotifyChanged(tee); EventModelEvent eme; m_pDataManager->GetEventManagerInstance()->NotifyEventModelListeners(eme); UserModelEvent ume; m_pDataManager->NotifyUserModelListeners(ume); }
void sendPeerEndpoints (PeerFinder::PeerID const& id, std::vector <PeerFinder::Endpoint> const& endpoints) { bassert (! endpoints.empty()); typedef std::vector <PeerFinder::Endpoint> List; protocol::TMEndpoints tm; for (List::const_iterator iter (endpoints.begin()); iter != endpoints.end(); ++iter) { PeerFinder::Endpoint const& ep (*iter); protocol::TMEndpoint& tme (*tm.add_endpoints()); if (ep.address.isV4()) tme.mutable_ipv4()->set_ipv4( toNetworkByteOrder (ep.address.v4().value)); else tme.mutable_ipv4()->set_ipv4(0); tme.mutable_ipv4()->set_ipv4port (ep.address.port()); tme.set_hops (ep.hops); tme.set_slots (ep.incomingSlotsAvailable); tme.set_maxslots (ep.incomingSlotsMax); tme.set_uptimeseconds (ep.uptimeSeconds); tme.set_features (ep.featureList); } PackedMessage::pointer msg ( boost::make_shared <PackedMessage> ( tm, protocol::mtENDPOINTS)); std::vector <Peer::pointer> list = getPeerVector (); BOOST_FOREACH (Peer::ref peer, list) { if (peer->isConnected() && PeerFinder::PeerID (peer->getNodePublic()) == id) { peer->sendPacket (msg, false); break; } } }
void XMLParser::LoadTaskString(BSTR taskXML) { VARIANT var; var.vt = VT_BSTR; var.bstrVal = taskXML; HRESULT hr = m_pReader->parse(var); TCHAR out[256]; OutputDebugString(taskXML); _stprintf(out, _T("\nTask String Parse result code: 0x%08x\n\n"), hr); OutputDebugString(out); SysFreeString(taskXML); TaskModelEvent tme(TASK_LIST_RESET, NULL); m_pDataManager->NotifyTaskModelReset(tme); }