Example #1
0
    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);
        }
    }
Example #2
0
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);

}
Example #3
0
    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;
            }
        }
    }
Example #4
0
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);
	
}