pub enum Peer<'a, TTrans, TInEvent, TOutEvent, THandler> where
TTrans: Transport,
THandler: IntoConnectionHandler, {
Connected(ConnectedPeer<'a, TTrans, TInEvent, TOutEvent, THandler>),
Dialing(DialingPeer<'a, TTrans, TInEvent, TOutEvent, THandler>),
Disconnected(DisconnectedPeer<'a, TTrans, TInEvent, TOutEvent, THandler>),
Local,
}
Expand description
The possible representations of a peer in a Network
, as
seen by the local node.
Note: In any state there may always be a pending incoming connection attempt from the peer, however, the remote identity of a peer is only known once a connection is fully established.
Variants
Connected(ConnectedPeer<'a, TTrans, TInEvent, TOutEvent, THandler>)
At least one established connection exists to the peer.
Dialing(DialingPeer<'a, TTrans, TInEvent, TOutEvent, THandler>)
There is an ongoing dialing (i.e. outgoing connection) attempt to the peer. There may already be other established connections to the peer.
Disconnected(DisconnectedPeer<'a, TTrans, TInEvent, TOutEvent, THandler>)
There exists no established connection to the peer and there is currently no ongoing dialing (i.e. outgoing connection) attempt in progress.
Local
The peer represents the local node.
Implementations
sourceimpl<'a, TTrans, TMuxer, TInEvent, TOutEvent, THandler> Peer<'a, TTrans, TInEvent, TOutEvent, THandler> where
TTrans: Transport<Output = (PeerId, TMuxer)> + Clone,
TMuxer: 'static + StreamMuxer + Send + Sync,
TInEvent: 'static + Send,
TOutEvent: 'static + Send,
THandler: 'static + IntoConnectionHandler + Send,
<TTrans as Transport>::Error: 'static,
<TTrans as Transport>::Error: Send,
<TTrans as Transport>::Dial: 'static,
<TTrans as Transport>::Dial: Send,
<TMuxer as StreamMuxer>::OutboundSubstream: Send,
<THandler as IntoConnectionHandler>::Handler: ConnectionHandler,
<THandler as IntoConnectionHandler>::Handler: Send,
<<THandler as IntoConnectionHandler>::Handler as ConnectionHandler>::OutboundOpenInfo: Send,
<<THandler as IntoConnectionHandler>::Handler as ConnectionHandler>::Error: 'static,
<<THandler as IntoConnectionHandler>::Handler as ConnectionHandler>::Error: Error,
<<THandler as IntoConnectionHandler>::Handler as ConnectionHandler>::Error: Send,
<<THandler as IntoConnectionHandler>::Handler as ConnectionHandler>::Substream == SubstreamRef<Arc<TMuxer>>,
<<THandler as IntoConnectionHandler>::Handler as ConnectionHandler>::InEvent == TInEvent,
<<THandler as IntoConnectionHandler>::Handler as ConnectionHandler>::OutEvent == TOutEvent,
impl<'a, TTrans, TMuxer, TInEvent, TOutEvent, THandler> Peer<'a, TTrans, TInEvent, TOutEvent, THandler> where
TTrans: Transport<Output = (PeerId, TMuxer)> + Clone,
TMuxer: 'static + StreamMuxer + Send + Sync,
TInEvent: 'static + Send,
TOutEvent: 'static + Send,
THandler: 'static + IntoConnectionHandler + Send,
<TTrans as Transport>::Error: 'static,
<TTrans as Transport>::Error: Send,
<TTrans as Transport>::Dial: 'static,
<TTrans as Transport>::Dial: Send,
<TMuxer as StreamMuxer>::OutboundSubstream: Send,
<THandler as IntoConnectionHandler>::Handler: ConnectionHandler,
<THandler as IntoConnectionHandler>::Handler: Send,
<<THandler as IntoConnectionHandler>::Handler as ConnectionHandler>::OutboundOpenInfo: Send,
<<THandler as IntoConnectionHandler>::Handler as ConnectionHandler>::Error: 'static,
<<THandler as IntoConnectionHandler>::Handler as ConnectionHandler>::Error: Error,
<<THandler as IntoConnectionHandler>::Handler as ConnectionHandler>::Error: Send,
<<THandler as IntoConnectionHandler>::Handler as ConnectionHandler>::Substream == SubstreamRef<Arc<TMuxer>>,
<<THandler as IntoConnectionHandler>::Handler as ConnectionHandler>::InEvent == TInEvent,
<<THandler as IntoConnectionHandler>::Handler as ConnectionHandler>::OutEvent == TOutEvent,
sourcepub fn is_connected(&self) -> bool
pub fn is_connected(&self) -> bool
Checks whether the peer is currently connected.
Returns true
iff Peer::into_connected
returns Some
.
sourcepub fn is_dialing(&self) -> bool
pub fn is_dialing(&self) -> bool
Checks whether the peer is currently being dialed.
Returns true
iff Peer::into_dialing
returns Some
.
sourcepub fn is_disconnected(&self) -> bool
pub fn is_disconnected(&self) -> bool
Checks whether the peer is currently disconnected.
Returns true
iff Peer::into_disconnected
returns Some
.
sourcepub fn dial<I>(
self,
address: Multiaddr,
remaining: I,
handler: THandler
) -> Result<(ConnectionId, DialingPeer<'a, TTrans, TInEvent, TOutEvent, THandler>), ConnectionLimit> where
I: IntoIterator<Item = Multiaddr>,
pub fn dial<I>(
self,
address: Multiaddr,
remaining: I,
handler: THandler
) -> Result<(ConnectionId, DialingPeer<'a, TTrans, TInEvent, TOutEvent, THandler>), ConnectionLimit> where
I: IntoIterator<Item = Multiaddr>,
Initiates a new dialing attempt to this peer using the given addresses.
The connection ID of the first connection attempt, i.e. to address
,
is returned, together with a DialingPeer
for further use. The
remaining
addresses are tried in order in subsequent connection
attempts in the context of the same dialing attempt, if the connection
attempt to the first address fails.
sourcepub fn into_connected(
self
) -> Option<ConnectedPeer<'a, TTrans, TInEvent, TOutEvent, THandler>>
pub fn into_connected(
self
) -> Option<ConnectedPeer<'a, TTrans, TInEvent, TOutEvent, THandler>>
Converts the peer into a ConnectedPeer
, if an established connection exists.
Succeeds if the there is at least one established connection to the peer.
sourcepub fn into_dialing(
self
) -> Option<DialingPeer<'a, TTrans, TInEvent, TOutEvent, THandler>>
pub fn into_dialing(
self
) -> Option<DialingPeer<'a, TTrans, TInEvent, TOutEvent, THandler>>
Converts the peer into a DialingPeer
, if a dialing attempt exists.
Succeeds if the there is at least one pending outgoing connection to the peer.
sourcepub fn into_disconnected(
self
) -> Option<DisconnectedPeer<'a, TTrans, TInEvent, TOutEvent, THandler>>
pub fn into_disconnected(
self
) -> Option<DisconnectedPeer<'a, TTrans, TInEvent, TOutEvent, THandler>>
Converts the peer into a DisconnectedPeer
, if neither an established connection
nor a dialing attempt exists.
Trait Implementations
Auto Trait Implementations
impl<'a, TTrans, TInEvent, TOutEvent, THandler> !RefUnwindSafe for Peer<'a, TTrans, TInEvent, TOutEvent, THandler>
impl<'a, TTrans, TInEvent, TOutEvent, THandler> Send for Peer<'a, TTrans, TInEvent, TOutEvent, THandler> where
THandler: Send,
TInEvent: Send,
TOutEvent: Send,
TTrans: Send,
<TTrans as Transport>::Error: Send,
<<THandler as IntoConnectionHandler>::Handler as ConnectionHandler>::Error: Send,
<TTrans as Transport>::Listener: Send,
impl<'a, TTrans, TInEvent, TOutEvent, THandler> !Sync for Peer<'a, TTrans, TInEvent, TOutEvent, THandler>
impl<'a, TTrans, TInEvent, TOutEvent, THandler> Unpin for Peer<'a, TTrans, TInEvent, TOutEvent, THandler>
impl<'a, TTrans, TInEvent, TOutEvent, THandler> !UnwindSafe for Peer<'a, TTrans, TInEvent, TOutEvent, THandler>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more