Implement 'connectTo'.

This commit is contained in:
JoelKatz
2012-01-19 10:03:04 -08:00
parent 805990618e
commit 969ef6540e
2 changed files with 79 additions and 14 deletions

View File

@@ -1,10 +1,13 @@
#ifndef __CONNECTION_POOL__
#define __CONNECTION_POOL__
#include <boost/asio.hpp>
#include <boost/thread/mutex.hpp>
#include "Peer.h"
#include "PackedMessage.h"
#include "types.h"
#include <boost/asio.hpp>
class KnownNodeList;
/*
@@ -12,16 +15,25 @@ This is the list of all the Peers we are currently connected to
*/
class ConnectionPool
{
std::vector<Peer::pointer> mPeers;
boost::mutex peerLock;
std::vector<Peer::pointer> mPeers; // FIXME
std::map<uint160, Peer::pointer> peerMap;
//std::vector<std::pair<PackedMessage::pointer,int> > mBroadcastMessages;
public:
ConnectionPool();
void connectToNetwork(KnownNodeList& nodeList,boost::asio::io_service& io_service);
void relayMessage(Peer* fromPeer,PackedMessage::pointer msg);
void connectToNetwork(KnownNodeList& nodeList, boost::asio::io_service& io_service);
void relayMessage(Peer* fromPeer, PackedMessage::pointer msg);
//bool isMessageKnown(PackedMessage::pointer msg);
// hanko->peer mapping functions
bool inMap(const uint160& hanko);
bool addToMap(const uint160& hanko, Peer::pointer peer);
bool delFromMap(const uint160& hanko, Peer::pointer peer);
Peer::pointer findInMap(const uint160& hanko);
std::map<uint160, Peer::pointer> getAllConnected();
bool connectTo(const std::string& host, const std::string& port);
};
#endif
#endif