Struct iroh_bitswap::Bitswap
source · pub struct Bitswap<S: Store> { /* private fields */ }Implementations§
source§impl<S: Store> Bitswap<S>
impl<S: Store> Bitswap<S>
pub async fn new(self_id: PeerId, store: S, config: Config) -> Self
pub fn server(&self) -> Option<&Server<S>>
pub fn client(&self) -> &Client<S>
pub async fn stop(self) -> Result<()>
pub async fn notify_new_blocks(&self, blocks: &[Block]) -> Result<()>
sourcepub fn on_identify(&self, peer: &PeerId, protocols: &[String])
pub fn on_identify(&self, peer: &PeerId, protocols: &[String])
Called on identify events from swarm, informing us about available protocols of this peer.
pub async fn wantlist_for_peer(&self, peer: &PeerId) -> Vec<Cid> ⓘ
Trait Implementations§
source§impl<S: Store> NetworkBehaviour for Bitswap<S>
impl<S: Store> NetworkBehaviour for Bitswap<S>
§type ConnectionHandler = BitswapHandler
type ConnectionHandler = BitswapHandler
Handler for all the protocols the network behaviour supports.
§type OutEvent = BitswapEvent
type OutEvent = BitswapEvent
Event generated by the
NetworkBehaviour and that the swarm will report back.source§fn new_handler(&mut self) -> Self::ConnectionHandler
fn new_handler(&mut self) -> Self::ConnectionHandler
Creates a new [
ConnectionHandler] for a connection with a peer. Read moresource§fn addresses_of_peer(&mut self, _peer_id: &PeerId) -> Vec<Multiaddr> ⓘ
fn addresses_of_peer(&mut self, _peer_id: &PeerId) -> Vec<Multiaddr> ⓘ
Addresses that this behaviour is aware of for this specific peer, and that may allow
reaching the peer. Read more
source§fn inject_connection_established(
&mut self,
peer_id: &PeerId,
connection: &ConnectionId,
_endpoint: &ConnectedPoint,
_failed_addresses: Option<&Vec<Multiaddr>>,
other_established: usize
)
fn inject_connection_established(
&mut self,
peer_id: &PeerId,
connection: &ConnectionId,
_endpoint: &ConnectedPoint,
_failed_addresses: Option<&Vec<Multiaddr>>,
other_established: usize
)
👎Deprecated since 0.40.2: Handle
FromSwarm::ConnectionEstablished in NetworkBehaviour::on_swarm_event instead. The default implementation of this inject_* method delegates to it.Informs the behaviour about a newly established connection to a peer.
source§fn inject_connection_closed(
&mut self,
peer_id: &PeerId,
_conn: &ConnectionId,
_endpoint: &ConnectedPoint,
_handler: <Self::ConnectionHandler as IntoConnectionHandler>::Handler,
remaining_established: usize
)
fn inject_connection_closed(
&mut self,
peer_id: &PeerId,
_conn: &ConnectionId,
_endpoint: &ConnectedPoint,
_handler: <Self::ConnectionHandler as IntoConnectionHandler>::Handler,
remaining_established: usize
)
👎Deprecated since 0.40.2: Handle
FromSwarm::ConnectionClosed in NetworkBehaviour::on_swarm_event instead. The default implementation of this inject_* method delegates to it.Informs the behaviour about a closed connection to a peer. Read more
source§fn inject_dial_failure(
&mut self,
peer_id: Option<PeerId>,
_handler: Self::ConnectionHandler,
error: &DialError
)
fn inject_dial_failure(
&mut self,
peer_id: Option<PeerId>,
_handler: Self::ConnectionHandler,
error: &DialError
)
👎Deprecated since 0.40.2: Handle
InEvent::DialFailure in NetworkBehaviour::on_swarm_event instead. The default implementation of this inject_* method delegates to it.Indicates to the behaviour that the dial to a known or unknown node failed.
source§fn inject_event(
&mut self,
peer_id: PeerId,
connection: ConnectionId,
event: HandlerEvent
)
fn inject_event(
&mut self,
peer_id: PeerId,
connection: ConnectionId,
event: HandlerEvent
)
👎Deprecated since 0.40.2: Implement
NetworkBehaviour::on_connection_handler_event instead. The default implementation of this inject_* method delegates to it.Informs the behaviour about an event generated by the handler dedicated to the peer identified by
peer_id.
for the behaviour. Read moresource§fn poll(
&mut self,
cx: &mut Context<'_>,
_: &mut impl PollParameters
) -> Poll<NetworkBehaviourAction<Self::OutEvent, Self::ConnectionHandler>>
fn poll(
&mut self,
cx: &mut Context<'_>,
_: &mut impl PollParameters
) -> Poll<NetworkBehaviourAction<Self::OutEvent, Self::ConnectionHandler>>
Polls for things that swarm should do. Read more
§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.§fn on_connection_handler_event(
&mut self,
_peer_id: PeerId,
_connection_id: ConnectionId,
_event: <<Self::ConnectionHandler as IntoConnectionHandler>::Handler as ConnectionHandler>::OutEvent
)
fn on_connection_handler_event(
&mut self,
_peer_id: PeerId,
_connection_id: ConnectionId,
_event: <<Self::ConnectionHandler as IntoConnectionHandler>::Handler as ConnectionHandler>::OutEvent
)
Informs the behaviour about an event generated by the [
ConnectionHandler] dedicated to the
peer identified by peer_id. for the behaviour. Read more§fn inject_address_change(
&mut self,
peer_id: &PeerId,
connection_id: &ConnectionId,
old: &ConnectedPoint,
new: &ConnectedPoint
)
fn inject_address_change(
&mut self,
peer_id: &PeerId,
connection_id: &ConnectionId,
old: &ConnectedPoint,
new: &ConnectedPoint
)
👎Deprecated since 0.40.2: Handle
FromSwarm::AddressChange in NetworkBehaviour::on_swarm_event instead. The default implementation of this inject_* method delegates to it.Informs the behaviour that the [
ConnectedPoint] of an existing connection has changed.§fn inject_listen_failure(
&mut self,
local_addr: &Multiaddr,
send_back_addr: &Multiaddr,
handler: Self::ConnectionHandler
)
fn inject_listen_failure(
&mut self,
local_addr: &Multiaddr,
send_back_addr: &Multiaddr,
handler: Self::ConnectionHandler
)
👎Deprecated since 0.40.2: Handle
FromSwarm::ListenFailure in NetworkBehaviour::on_swarm_event instead. The default implementation of this inject_* method delegates to it.Indicates to the behaviour that an error happened on an incoming connection during its
initial handshake. Read more
§fn inject_new_listener(&mut self, id: ListenerId)
fn inject_new_listener(&mut self, id: ListenerId)
👎Deprecated since 0.40.2: Handle
FromSwarm::NewListener in NetworkBehaviour::on_swarm_event instead. The default implementation of this inject_* method delegates to it.Indicates to the behaviour that a new listener was created.
§fn inject_new_listen_addr(&mut self, id: ListenerId, addr: &Multiaddr)
fn inject_new_listen_addr(&mut self, id: ListenerId, addr: &Multiaddr)
👎Deprecated since 0.40.2: Handle
FromSwarm::NewListenAddr in NetworkBehaviour::on_swarm_event instead. The default implementation of this inject_* method delegates to it.Indicates to the behaviour that we have started listening on a new multiaddr.
§fn inject_expired_listen_addr(&mut self, id: ListenerId, addr: &Multiaddr)
fn inject_expired_listen_addr(&mut self, id: ListenerId, addr: &Multiaddr)
👎Deprecated since 0.40.2: Handle
FromSwarm::ExpiredListenAddr in NetworkBehaviour::on_swarm_event instead. The default implementation of this inject_* method delegates to it.Indicates to the behaviour that a multiaddr we were listening on has expired,
which means that we are no longer listening on it.
§fn inject_listener_error(&mut self, id: ListenerId, err: &(dyn Error + 'static))
fn inject_listener_error(&mut self, id: ListenerId, err: &(dyn Error + 'static))
👎Deprecated since 0.40.2: Handle
FromSwarm::ListenerError in NetworkBehaviour::on_swarm_event instead. The default implementation of this inject_* method delegates to it.A listener experienced an error.
§fn inject_listener_closed(&mut self, id: ListenerId, reason: Result<(), &Error>)
fn inject_listener_closed(&mut self, id: ListenerId, reason: Result<(), &Error>)
👎Deprecated since 0.40.2: Handle
FromSwarm::ListenerClosed in NetworkBehaviour::on_swarm_event instead. The default implementation of this inject_* method delegates to it.A listener closed.
§fn inject_new_external_addr(&mut self, addr: &Multiaddr)
fn inject_new_external_addr(&mut self, addr: &Multiaddr)
👎Deprecated since 0.40.2: Handle
FromSwarm::NewExternalAddr in NetworkBehaviour::on_swarm_event instead. The default implementation of this inject_* method delegates to it.Indicates to the behaviour that we have discovered a new external address for us.
§fn inject_expired_external_addr(&mut self, addr: &Multiaddr)
fn inject_expired_external_addr(&mut self, addr: &Multiaddr)
👎Deprecated since 0.40.2: Handle
FromSwarm::ExpiredExternalAddr in NetworkBehaviour::on_swarm_event instead. The default implementation of this inject_* method delegates to it.Indicates to the behaviour that an external address was removed.
Auto Trait Implementations§
impl<S> !RefUnwindSafe for Bitswap<S>
impl<S> Send for Bitswap<S>
impl<S> Sync for Bitswap<S>
impl<S> Unpin for Bitswap<S>where
S: Unpin,
impl<S> !UnwindSafe for Bitswap<S>
Blanket Implementations§
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request