Struct libp2p_combined_transport::CombinedTransport[][src]

pub struct CombinedTransport<TBase, TOuter> where
    TBase: Transport + Clone,
    TBase::Error: Send + 'static,
    TBase::Output: 'static, 
{ /* fields omitted */ }
Expand description

Transport combining two transports. One of which is the base transport (like TCP), and another one is a higher-level transport (like WebSocket). Similar to [OrTransport], this tries to dial first with the outer connection, and if that fails, with the base one. The main difference is that incoming connections can be accepted on either one of them. For this to work, a switch must be provided when handling incoming connections. For TCP, this can be achieved with the peek method on the underlying [TcpStream]. [ListenerEvent]s from the base transport are cloned and routed to the outer transport via the ProxyTransport, with the exception of upgrades.

For a usage example, have a look at the TCP-Websocket example.

Implementations

Construct a new combined transport, given a base transport, a function to construct the outer transport given the base transport, a function to try the upgrade to the outer transport given incoming base connections, and a function to map base addresses to outer addresses (if necessary).

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

The result of a connection setup process, including protocol upgrades. Read more

An error that occurred during connection setup.

A stream of Outputs for inbound connections. Read more

A pending Output for an inbound connection, obtained from the Listener stream. Read more

A pending Output for an outbound connection, obtained from dialing. Read more

Listens on the given [Multiaddr], producing a stream of pending, inbound connections and addresses this transport is listening on (cf. [ListenerEvent]). Read more

Dials the given [Multiaddr], returning a future for a pending outbound connection. Read more

Performs a transport-specific mapping of an address observed by a remote onto a local listen address to yield an address for the local node that may be reachable for other peers. Read more

Boxes the transport, including custom transport errors.

Applies a function on the connections created by the transport.

Applies a function on the errors generated by the futures of the transport.

Adds a fallback transport that is used when encountering errors while establishing inbound or outbound connections. Read more

Applies a function producing an asynchronous result to every connection created by this transport. Read more

Begins a series of protocol upgrades via an upgrade::Builder. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

Should always be Self

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

Adds a layer on the Transport that logs all trafic that passes through the sockets created by it. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.