Struct network::peer_manager::PeerManager
source · [−]pub struct PeerManager<TTransport, TSocket> where
TTransport: Transport,
TSocket: AsyncRead + AsyncWrite, { /* private fields */ }Expand description
Responsible for handling and maintaining connections to other Peers
Implementations
sourceimpl<TTransport, TSocket> PeerManager<TTransport, TSocket> where
TTransport: Transport<Output = Connection<TSocket>> + Send + 'static,
TSocket: TransportTSocket,
impl<TTransport, TSocket> PeerManager<TTransport, TSocket> where
TTransport: Transport<Output = Connection<TSocket>> + Send + 'static,
TSocket: TransportTSocket,
sourcepub fn new(
executor: Handle,
time_service: TimeService,
transport: TTransport,
network_context: NetworkContext,
listen_addr: NetworkAddress,
peer_metadata_storage: Arc<PeerMetadataStorage>,
trusted_peers: Arc<RwLock<PeerSet>>,
requests_rx: Receiver<(PeerId, ProtocolId), PeerManagerRequest>,
connection_reqs_rx: Receiver<PeerId, ConnectionRequest>,
upstream_handlers: HashMap<ProtocolId, Sender<(PeerId, ProtocolId), PeerManagerNotification>>,
connection_event_handlers: Vec<Sender>,
channel_size: usize,
max_concurrent_network_reqs: usize,
max_frame_size: usize,
inbound_connection_limit: usize,
inbound_rate_limiters: IpAddrTokenBucketLimiter,
outbound_rate_limiters: IpAddrTokenBucketLimiter
) -> Self
pub fn new(
executor: Handle,
time_service: TimeService,
transport: TTransport,
network_context: NetworkContext,
listen_addr: NetworkAddress,
peer_metadata_storage: Arc<PeerMetadataStorage>,
trusted_peers: Arc<RwLock<PeerSet>>,
requests_rx: Receiver<(PeerId, ProtocolId), PeerManagerRequest>,
connection_reqs_rx: Receiver<PeerId, ConnectionRequest>,
upstream_handlers: HashMap<ProtocolId, Sender<(PeerId, ProtocolId), PeerManagerNotification>>,
connection_event_handlers: Vec<Sender>,
channel_size: usize,
max_concurrent_network_reqs: usize,
max_frame_size: usize,
inbound_connection_limit: usize,
inbound_rate_limiters: IpAddrTokenBucketLimiter,
outbound_rate_limiters: IpAddrTokenBucketLimiter
) -> Self
Construct a new PeerManager actor
pub fn update_connected_peers_metrics(&self)
sourcepub fn listen_addr(&self) -> &NetworkAddress
pub fn listen_addr(&self) -> &NetworkAddress
Get the NetworkAddress we’re listening for incoming connections on
Auto Trait Implementations
impl<TTransport, TSocket> !RefUnwindSafe for PeerManager<TTransport, TSocket>
impl<TTransport, TSocket> Send for PeerManager<TTransport, TSocket> where
TSocket: Send,
TTransport: Send,
impl<TTransport, TSocket> Sync for PeerManager<TTransport, TSocket> where
TSocket: Send,
TTransport: Sync,
<TTransport as Transport>::Listener: Sync,
impl<TTransport, TSocket> Unpin for PeerManager<TTransport, TSocket> where
TTransport: Unpin,
impl<TTransport, TSocket> !UnwindSafe for PeerManager<TTransport, TSocket>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more