Module handler

Expand description

Once a connection to a remote peer is established, a ConnectionHandler negotiates and handles one or more specific protocols on the connection.

Protocols are negotiated and used on individual substreams of the connection. Thus a ConnectionHandler defines the inbound and outbound upgrades to apply when creating a new inbound or outbound substream, respectively, and is notified by a Swarm when these upgrades have been successfully applied, including the final output of the upgrade. A ConnectionHandler can then continue communicating with the peer over the substream using the negotiated protocol(s).

Two ConnectionHandlers can be composed with ConnectionHandler::select() in order to build a new handler supporting the combined set of protocols, with methods being dispatched to the appropriate handler according to the used protocol(s) determined by the associated types of the handlers.

Note: A ConnectionHandler handles one or more protocols in the context of a single connection with a remote. In order to handle a protocol that requires knowledge of the network as a whole, see the NetworkBehaviour trait.

Modules§

either
multi
A ConnectionHandler implementation that combines multiple other ConnectionHandlers indexed by some key.

Structs§

AddressChange
ConnectionEvent variant that informs the handler about a change in the address of the remote.
ConnectionHandlerSelect
Implementation of ConnectionHandler that combines two protocols into one.
DialUpgradeError
ConnectionEvent variant that informs the handler that upgrading an outbound substream to the given protocol has failed.
FullyNegotiatedInbound
ConnectionEvent variant that informs the handler about the output of a successful upgrade on a new inbound substream.
FullyNegotiatedOutbound
ConnectionEvent variant that informs the handler about successful upgrade on a new outbound stream.
ListenUpgradeError
ConnectionEvent variant that informs the handler that upgrading an inbound substream to the given protocol has failed.
MapInEvent
Wrapper around a protocol handler that turns the input event into something else.
MapOutEvent
Wrapper around a protocol handler that turns the output event into something else.
OneShotHandler
A ConnectionHandler that opens a new substream for each request.
OneShotHandlerConfig
Configuration parameters for the OneShotHandler
PendingConnectionHandler
Implementation of ConnectionHandler that returns a pending upgrade.
ProtocolsAdded
An Iterator over all protocols that have been added.
ProtocolsRemoved
An Iterator over all protocols that have been removed.
SendWrapper
Wraps around a type that implements OutboundUpgradeSend, InboundUpgradeSend, or
SubstreamProtocol
Configuration of inbound or outbound substream protocol(s) for a ConnectionHandler.

Enums§

ConnectionEvent
Enumeration with the list of the possible stream events to pass to on_connection_event.
ConnectionHandlerEvent
Event produced by a handler.
ProtocolSupport
ProtocolsChange
ConnectionEvent variant that informs the handler about a change in the protocols supported on the connection.
StreamUpgradeError
Error that can happen on an outbound substream opening attempt.

Traits§

ConnectionHandler
A handler for a set of protocols used on a connection with a remote.
InboundUpgradeSend
Implemented automatically on all types that implement InboundUpgrade and Send + 'static.
OutboundUpgradeSend
Implemented automatically on all types that implement OutboundUpgrade and Send + 'static.
UpgradeInfoSend
Implemented automatically on all types that implement UpgradeInfo and Send + 'static.