usingEvictionTimeout=std::pair<std::pair<NodeId,TimePoint>,NodeId>;///< First NodeId may be evicted and replaced with second NodeId.
usingTimePoint=std::chrono::steady_clock::time_point;///< Steady time point.
usingNodeIdTimePoint=std::pair<NodeId,TimePoint>;
usingEvictionTimeout=std::pair<NodeIdTimePoint,NodeId>;///< First NodeId (NodeIdTimePoint) may be evicted and replaced with second NodeId.
public:
/// Constructor requiring host for I/O, credentials, and IP Address and port to listen on.
@ -271,6 +272,9 @@ private:
Mutexx_pubkDiscoverPings;///< LOCK x_nodes first if both x_nodes and x_pubkDiscoverPings locks are required.
std::map<bi::address,TimePoint>m_pubkDiscoverPings;///< List of pending pings where node entry wasn't created due to unkown pubk.
Mutexx_findNodeTimeout;
std::list<NodeIdTimePoint>m_findNodeTimeout;///< Timeouts for pending Ping and FindNode requests.
ba::io_service&m_io;///< Used by bucket refresh timer.
std::shared_ptr<NodeSocket>m_socket;///< Shared pointer for our UDPSocket; ASIO requires shared_ptr.
NodeSocket*m_socketPointer;///< Set to m_socket.get(). Socket is created in constructor and disconnected in destructor to ensure access to pointer is safe.