pub struct RequestResponsesBehaviour { /* private fields */ }
Expand description
Implementation of NetworkBehaviour
that provides support for request-response protocols.
Implementations§
source§impl RequestResponsesBehaviour
impl RequestResponsesBehaviour
sourcepub fn new(
list: impl Iterator<Item = ProtocolConfig>,
peer_store: Box<dyn PeerStoreProvider>
) -> Result<Self, RegisterError>
pub fn new( list: impl Iterator<Item = ProtocolConfig>, peer_store: Box<dyn PeerStoreProvider> ) -> Result<Self, RegisterError>
Creates a new behaviour. Must be passed a list of supported protocols. Returns an error if the same protocol is passed twice.
sourcepub fn send_request(
&mut self,
target: &PeerId,
protocol_name: ProtocolName,
request: Vec<u8>,
fallback_request: Option<(Vec<u8>, ProtocolName)>,
pending_response: Sender<Result<(Vec<u8>, ProtocolName), RequestFailure>>,
connect: IfDisconnected
)
pub fn send_request( &mut self, target: &PeerId, protocol_name: ProtocolName, request: Vec<u8>, fallback_request: Option<(Vec<u8>, ProtocolName)>, pending_response: Sender<Result<(Vec<u8>, ProtocolName), RequestFailure>>, connect: IfDisconnected )
Initiates sending a request.
If there is no established connection to the target peer, the behavior is determined by the
choice of connect
.
An error is returned if the protocol doesn’t match one that has been registered.
Trait Implementations§
source§impl NetworkBehaviour for RequestResponsesBehaviour
impl NetworkBehaviour for RequestResponsesBehaviour
§type ConnectionHandler = MultiHandler<String, <Behaviour<GenericCodec> as NetworkBehaviour>::ConnectionHandler>
type ConnectionHandler = MultiHandler<String, <Behaviour<GenericCodec> as NetworkBehaviour>::ConnectionHandler>
Handler for all the protocols the network behaviour supports.
source§fn handle_pending_inbound_connection(
&mut self,
_connection_id: ConnectionId,
_local_addr: &Multiaddr,
_remote_addr: &Multiaddr
) -> Result<(), ConnectionDenied>
fn handle_pending_inbound_connection( &mut self, _connection_id: ConnectionId, _local_addr: &Multiaddr, _remote_addr: &Multiaddr ) -> Result<(), ConnectionDenied>
Callback that is invoked for every new inbound connection. Read more
source§fn handle_pending_outbound_connection(
&mut self,
_connection_id: ConnectionId,
_maybe_peer: Option<PeerId>,
_addresses: &[Multiaddr],
_effective_role: Endpoint
) -> Result<Vec<Multiaddr>, ConnectionDenied>
fn handle_pending_outbound_connection( &mut self, _connection_id: ConnectionId, _maybe_peer: Option<PeerId>, _addresses: &[Multiaddr], _effective_role: Endpoint ) -> Result<Vec<Multiaddr>, ConnectionDenied>
Callback that is invoked for every outbound connection attempt. Read more
source§fn handle_established_inbound_connection(
&mut self,
connection_id: ConnectionId,
peer: PeerId,
local_addr: &Multiaddr,
remote_addr: &Multiaddr
) -> Result<THandler<Self>, ConnectionDenied>
fn handle_established_inbound_connection( &mut self, connection_id: ConnectionId, peer: PeerId, local_addr: &Multiaddr, remote_addr: &Multiaddr ) -> Result<THandler<Self>, ConnectionDenied>
Callback that is invoked for every established inbound connection. Read more
source§fn handle_established_outbound_connection(
&mut self,
connection_id: ConnectionId,
peer: PeerId,
addr: &Multiaddr,
role_override: Endpoint
) -> Result<THandler<Self>, ConnectionDenied>
fn handle_established_outbound_connection( &mut self, connection_id: ConnectionId, peer: PeerId, addr: &Multiaddr, role_override: Endpoint ) -> Result<THandler<Self>, ConnectionDenied>
Callback that is invoked for every established outbound connection. Read more
source§fn on_swarm_event(&mut self, event: FromSwarm<'_, Self::ConnectionHandler>)
fn on_swarm_event(&mut self, event: FromSwarm<'_, Self::ConnectionHandler>)
Informs the behaviour about an event from the
Swarm
.source§fn on_connection_handler_event(
&mut self,
peer_id: PeerId,
connection_id: ConnectionId,
event: THandlerOutEvent<Self>
)
fn on_connection_handler_event( &mut self, peer_id: PeerId, connection_id: ConnectionId, event: THandlerOutEvent<Self> )
Informs the behaviour about an event generated by the
ConnectionHandler
dedicated to the peer identified by peer_id
. for the behaviour. Read moresource§fn poll(
&mut self,
cx: &mut Context<'_>,
params: &mut impl PollParameters
) -> Poll<ToSwarm<Self::OutEvent, THandlerInEvent<Self>>>
fn poll( &mut self, cx: &mut Context<'_>, params: &mut impl PollParameters ) -> Poll<ToSwarm<Self::OutEvent, THandlerInEvent<Self>>>
Polls for things that swarm should do. Read more
source§fn new_handler(&mut self) -> Self::ConnectionHandler
fn new_handler(&mut self) -> Self::ConnectionHandler
👎Deprecated since 0.42.0: Use one or more of
NetworkBehaviour::{handle_pending_inbound_connection,handle_established_inbound_connection,handle_pending_outbound_connection,handle_established_outbound_connection}
instead.Creates a new
ConnectionHandler
for a connection with a peer. Read moreAuto Trait Implementations§
impl !Freeze for RequestResponsesBehaviour
impl !RefUnwindSafe for RequestResponsesBehaviour
impl Send for RequestResponsesBehaviour
impl !Sync for RequestResponsesBehaviour
impl Unpin for RequestResponsesBehaviour
impl !UnwindSafe for RequestResponsesBehaviour
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
source§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
source§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of
T
. Read moresource§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
The counterpart to
unchecked_from
.source§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
source§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of
T
.