mirror of
https://github.com/bitcoin-s/bitcoin-s.git
synced 2025-03-03 18:47:38 +01:00
Add PeerManagerApi (#5164)
This commit is contained in:
parent
2d57ff6a3e
commit
ef2c96cc99
2 changed files with 20 additions and 2 deletions
|
@ -0,0 +1,17 @@
|
||||||
|
package org.bitcoins.core.api.node
|
||||||
|
|
||||||
|
import scala.concurrent.Future
|
||||||
|
|
||||||
|
trait PeerManagerApi {
|
||||||
|
|
||||||
|
def disconnectPeer(peer: Peer): Future[Unit]
|
||||||
|
|
||||||
|
def connectPeer(peer: Peer): Future[Unit]
|
||||||
|
|
||||||
|
def isConnected(peer: Peer): Future[Boolean]
|
||||||
|
|
||||||
|
def isDisconnected(peer: Peer): Future[Boolean]
|
||||||
|
|
||||||
|
def isInitialized(peer: Peer): Future[Boolean]
|
||||||
|
|
||||||
|
}
|
|
@ -27,7 +27,7 @@ import org.bitcoins.core.api.chain.db.{
|
||||||
CompactFilterDb,
|
CompactFilterDb,
|
||||||
CompactFilterHeaderDb
|
CompactFilterHeaderDb
|
||||||
}
|
}
|
||||||
import org.bitcoins.core.api.node.{NodeType, Peer}
|
import org.bitcoins.core.api.node.{NodeType, Peer, PeerManagerApi}
|
||||||
import org.bitcoins.core.p2p._
|
import org.bitcoins.core.p2p._
|
||||||
import org.bitcoins.core.protocol.transaction.Transaction
|
import org.bitcoins.core.protocol.transaction.Transaction
|
||||||
import org.bitcoins.core.util.{NetworkUtil, StartStopAsync}
|
import org.bitcoins.core.util.{NetworkUtil, StartStopAsync}
|
||||||
|
@ -57,6 +57,7 @@ case class PeerManager(
|
||||||
nodeAppConfig: NodeAppConfig,
|
nodeAppConfig: NodeAppConfig,
|
||||||
chainAppConfig: ChainAppConfig)
|
chainAppConfig: ChainAppConfig)
|
||||||
extends StartStopAsync[PeerManager]
|
extends StartStopAsync[PeerManager]
|
||||||
|
with PeerManagerApi
|
||||||
with PeerMessageSenderApi
|
with PeerMessageSenderApi
|
||||||
with SourceQueue[NodeStreamMessage]
|
with SourceQueue[NodeStreamMessage]
|
||||||
with P2PLogger {
|
with P2PLogger {
|
||||||
|
@ -82,7 +83,7 @@ case class PeerManager(
|
||||||
|
|
||||||
def connectedPeerCount: Int = _peerDataMap.size
|
def connectedPeerCount: Int = _peerDataMap.size
|
||||||
|
|
||||||
private def connectPeer(peer: Peer): Future[Unit] = {
|
override def connectPeer(peer: Peer): Future[Unit] = {
|
||||||
finderOpt match {
|
finderOpt match {
|
||||||
case Some(finder) =>
|
case Some(finder) =>
|
||||||
require(finder.hasPeer(peer), s"Unknown $peer marked as usable")
|
require(finder.hasPeer(peer), s"Unknown $peer marked as usable")
|
||||||
|
|
Loading…
Add table
Reference in a new issue