mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-19 18:45:52 +00:00
40 lines
1.1 KiB
C++
40 lines
1.1 KiB
C++
#ifndef __CONNECTION_POOL__
|
|
#define __CONNECTION_POOL__
|
|
|
|
#include <boost/asio.hpp>
|
|
#include <boost/thread/mutex.hpp>
|
|
|
|
#include "Peer.h"
|
|
#include "PackedMessage.h"
|
|
#include "types.h"
|
|
|
|
class KnownNodeList;
|
|
|
|
/*
|
|
This is the list of all the Peers we are currently connected to
|
|
*/
|
|
class ConnectionPool
|
|
{
|
|
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);
|
|
//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
|