pub struct Transport<T>where
T: Provider + Send,{ /* private fields */ }Expand description
An abstract libp2p_core::Transport implementation.
You shouldn’t need to use this type directly. Use one of the following instead:
tokio::Transport- [
async_io::Transport]
Implementations§
source§impl<T> Transport<T>where
T: Provider + Send,
impl<T> Transport<T>where
T: Provider + Send,
sourcepub fn new(config: Config) -> Transport<T>
pub fn new(config: Config) -> Transport<T>
Create a new instance of Transport.
If you don’t want to specify a Config, use Transport::default.
It is best to call this function through one of the type-aliases of this type:
tokio::Transport::new- [
async_io::Transport::new]
Trait Implementations§
source§impl<T> Transport for Transport<T>where
T: 'static + Provider + Send,
<T as Provider>::Listener: Unpin,
<T as Provider>::Stream: Unpin,
impl<T> Transport for Transport<T>where
T: 'static + Provider + Send,
<T as Provider>::Listener: Unpin,
<T as Provider>::Stream: Unpin,
source§fn address_translation(
&self,
listen: &Multiaddr,
observed: &Multiaddr
) -> Option<Multiaddr>
fn address_translation(
&self,
listen: &Multiaddr,
observed: &Multiaddr
) -> Option<Multiaddr>
When port reuse is disabled and hence ephemeral local ports are
used for outgoing connections, the returned address is the
observed address with the port replaced by the port of the
listen address.
If port reuse is enabled, Some(observed) is returned, as there
is a chance that the observed address and port are reachable
for other peers if there is a NAT in the way that does endpoint-
independent filtering. Furthermore, even if that is not the case
and TCP hole punching techniques must be used for NAT traversal,
the observed address is still the one that a remote should connect
to for the purpose of the hole punching procedure, as it represents
the mapped IP and port of the NAT device in front of the local
node.
None is returned if one of the given addresses is not a TCP/IP
address.
source§fn poll(
self: Pin<&mut Transport<T>>,
cx: &mut Context<'_>
) -> Poll<TransportEvent<<Transport<T> as Transport>::ListenerUpgrade, <Transport<T> as Transport>::Error>>
fn poll(
self: Pin<&mut Transport<T>>,
cx: &mut Context<'_>
) -> Poll<TransportEvent<<Transport<T> as Transport>::ListenerUpgrade, <Transport<T> as Transport>::Error>>
Poll all listeners.
§type Output = <T as Provider>::Stream
type Output = <T as Provider>::Stream
§type Dial = Pin<Box<dyn Future<Output = Result<<Transport<T> as Transport>::Output, <Transport<T> as Transport>::Error>> + Send + 'static, Global>>
type Dial = Pin<Box<dyn Future<Output = Result<<Transport<T> as Transport>::Output, <Transport<T> as Transport>::Error>> + Send + 'static, Global>>
§type ListenerUpgrade = Ready<Result<<Transport<T> as Transport>::Output, <Transport<T> as Transport>::Error>>
type ListenerUpgrade = Ready<Result<<Transport<T> as Transport>::Output, <Transport<T> as Transport>::Error>>
source§fn listen_on(
&mut self,
addr: Multiaddr
) -> Result<ListenerId, TransportError<<Transport<T> as Transport>::Error>>
fn listen_on(
&mut self,
addr: Multiaddr
) -> Result<ListenerId, TransportError<<Transport<T> as Transport>::Error>>
Multiaddr for inbound connections.source§fn remove_listener(&mut self, id: ListenerId) -> bool
fn remove_listener(&mut self, id: ListenerId) -> bool
source§fn dial(
&mut self,
addr: Multiaddr
) -> Result<<Transport<T> as Transport>::Dial, TransportError<<Transport<T> as Transport>::Error>>
fn dial(
&mut self,
addr: Multiaddr
) -> Result<<Transport<T> as Transport>::Dial, TransportError<<Transport<T> as Transport>::Error>>
source§fn dial_as_listener(
&mut self,
addr: Multiaddr
) -> Result<<Transport<T> as Transport>::Dial, TransportError<<Transport<T> as Transport>::Error>>
fn dial_as_listener(
&mut self,
addr: Multiaddr
) -> Result<<Transport<T> as Transport>::Dial, TransportError<<Transport<T> as Transport>::Error>>
Transport::dial but has the local node act as a listener on the outgoing connection. Read more