pub struct Floodsub { /* private fields */ }
Expand description
Network behaviour that handles the floodsub protocol.
Implementations
sourceimpl Floodsub
impl Floodsub
sourcepub fn from_config(config: FloodsubConfig) -> Floodsub
pub fn from_config(config: FloodsubConfig) -> Floodsub
Creates a Floodsub
with the given configuration.
sourcepub fn add_node_to_partial_view(&mut self, peer_id: PeerId)
pub fn add_node_to_partial_view(&mut self, peer_id: PeerId)
Add a node to the list of nodes to propagate messages to.
sourcepub fn remove_node_from_partial_view(&mut self, peer_id: &PeerId)
pub fn remove_node_from_partial_view(&mut self, peer_id: &PeerId)
Remove a node from the list of nodes to propagate messages to.
sourcepub fn subscribe(&mut self, topic: Topic) -> bool
pub fn subscribe(&mut self, topic: Topic) -> bool
Subscribes to a topic.
Returns true if the subscription worked. Returns false if we were already subscribed.
sourcepub fn unsubscribe(&mut self, topic: Topic) -> bool
pub fn unsubscribe(&mut self, topic: Topic) -> bool
Unsubscribes from a topic.
Note that this only requires the topic name.
Returns true if we were subscribed to this topic.
sourcepub fn publish(
&mut self,
topic: impl Into<Topic>,
data: impl Into<Vec<u8, Global>>
)
pub fn publish(
&mut self,
topic: impl Into<Topic>,
data: impl Into<Vec<u8, Global>>
)
Publishes a message to the network, if we’re subscribed to the topic only.
sourcepub fn publish_any(
&mut self,
topic: impl Into<Topic>,
data: impl Into<Vec<u8, Global>>
)
pub fn publish_any(
&mut self,
topic: impl Into<Topic>,
data: impl Into<Vec<u8, Global>>
)
Publishes a message to the network, even if we’re not subscribed to the topic.
sourcepub fn publish_many(
&mut self,
topic: impl IntoIterator<Item = impl Into<Topic>>,
data: impl Into<Vec<u8, Global>>
)
pub fn publish_many(
&mut self,
topic: impl IntoIterator<Item = impl Into<Topic>>,
data: impl Into<Vec<u8, Global>>
)
Publishes a message with multiple topics to the network.
Note: Doesn’t do anything if we’re not subscribed to any of the topics.
sourcepub fn publish_many_any(
&mut self,
topic: impl IntoIterator<Item = impl Into<Topic>>,
data: impl Into<Vec<u8, Global>>
)
pub fn publish_many_any(
&mut self,
topic: impl IntoIterator<Item = impl Into<Topic>>,
data: impl Into<Vec<u8, Global>>
)
Publishes a message with multiple topics to the network, even if we’re not subscribed to any of the topics.
Trait Implementations
sourceimpl NetworkBehaviour for Floodsub
impl NetworkBehaviour for Floodsub
type ConnectionHandler = OneShotHandler<FloodsubProtocol, FloodsubRpc, InnerMessage>
type ConnectionHandler = OneShotHandler<FloodsubProtocol, FloodsubRpc, InnerMessage>
Handler for all the protocols the network behaviour supports.
type OutEvent = FloodsubEvent
type OutEvent = FloodsubEvent
Event generated by the NetworkBehaviour
and that the swarm will report back.
sourcefn new_handler(&mut self) -> <Floodsub as NetworkBehaviour>::ConnectionHandler
fn new_handler(&mut self) -> <Floodsub as NetworkBehaviour>::ConnectionHandler
Creates a new ConnectionHandler
for a connection with a peer. Read more
sourcefn inject_connection_established(
&mut self,
id: &PeerId,
&ConnectionId,
&ConnectedPoint,
Option<&Vec<Multiaddr, Global>>,
other_established: usize
)
fn inject_connection_established(
&mut self,
id: &PeerId,
&ConnectionId,
&ConnectedPoint,
Option<&Vec<Multiaddr, Global>>,
other_established: usize
)
Informs the behaviour about a newly established connection to a peer.
sourcefn inject_connection_closed(
&mut self,
id: &PeerId,
&ConnectionId,
&ConnectedPoint,
<Floodsub as NetworkBehaviour>::ConnectionHandler,
remaining_established: usize
)
fn inject_connection_closed(
&mut self,
id: &PeerId,
&ConnectionId,
&ConnectedPoint,
<Floodsub as NetworkBehaviour>::ConnectionHandler,
remaining_established: usize
)
Informs the behaviour about a closed connection to a peer. Read more
sourcefn inject_event(
&mut self,
propagation_source: PeerId,
_connection: ConnectionId,
event: InnerMessage
)
fn inject_event(
&mut self,
propagation_source: PeerId,
_connection: ConnectionId,
event: InnerMessage
)
Informs the behaviour about an event generated by the handler dedicated to the peer identified by peer_id
.
for the behaviour. Read more
sourcefn poll(
&mut self,
&mut Context<'_>,
&mut impl PollParameters
) -> Poll<NetworkBehaviourAction<<Floodsub as NetworkBehaviour>::OutEvent, <Floodsub as NetworkBehaviour>::ConnectionHandler, <<<Floodsub as NetworkBehaviour>::ConnectionHandler as IntoConnectionHandler>::Handler as ConnectionHandler>::InEvent>>
fn poll(
&mut self,
&mut Context<'_>,
&mut impl PollParameters
) -> Poll<NetworkBehaviourAction<<Floodsub as NetworkBehaviour>::OutEvent, <Floodsub as NetworkBehaviour>::ConnectionHandler, <<<Floodsub as NetworkBehaviour>::ConnectionHandler as IntoConnectionHandler>::Handler as ConnectionHandler>::InEvent>>
Polls for things that swarm should do. Read more
sourcefn addresses_of_peer(&mut self, &PeerId) -> Vec<Multiaddr, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
fn addresses_of_peer(&mut self, &PeerId) -> Vec<Multiaddr, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Addresses that this behaviour is aware of for this specific peer, and that may allow reaching the peer. Read more
sourcefn inject_address_change(
&mut self,
&PeerId,
&ConnectionId,
_old: &ConnectedPoint,
_new: &ConnectedPoint
)
fn inject_address_change(
&mut self,
&PeerId,
&ConnectionId,
_old: &ConnectedPoint,
_new: &ConnectedPoint
)
Informs the behaviour that the ConnectedPoint
of an existing connection has changed.
sourcefn 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
)
Indicates to the behaviour that the dial to a known or unknown node failed.
sourcefn 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
)
Indicates to the behaviour that an error happened on an incoming connection during its initial handshake. Read more
sourcefn inject_new_listener(&mut self, _id: ListenerId)
fn inject_new_listener(&mut self, _id: ListenerId)
Indicates to the behaviour that a new listener was created.
sourcefn inject_new_listen_addr(&mut self, _id: ListenerId, _addr: &Multiaddr)
fn inject_new_listen_addr(&mut self, _id: ListenerId, _addr: &Multiaddr)
Indicates to the behaviour that we have started listening on a new multiaddr.
sourcefn inject_expired_listen_addr(&mut self, _id: ListenerId, _addr: &Multiaddr)
fn inject_expired_listen_addr(&mut self, _id: ListenerId, _addr: &Multiaddr)
Indicates to the behaviour that a multiaddr we were listening on has expired, which means that we are no longer listening in it. Read more
sourcefn inject_listener_error(
&mut self,
_id: ListenerId,
_err: &(dyn Error + 'static)
)
fn inject_listener_error(
&mut self,
_id: ListenerId,
_err: &(dyn Error + 'static)
)
A listener experienced an error.
sourcefn inject_listener_closed(
&mut self,
_id: ListenerId,
_reason: Result<(), &Error>
)
fn inject_listener_closed(
&mut self,
_id: ListenerId,
_reason: Result<(), &Error>
)
A listener closed.
sourcefn inject_new_external_addr(&mut self, _addr: &Multiaddr)
fn inject_new_external_addr(&mut self, _addr: &Multiaddr)
Indicates to the behaviour that we have discovered a new external address for us.
sourcefn inject_expired_external_addr(&mut self, _addr: &Multiaddr)
fn inject_expired_external_addr(&mut self, _addr: &Multiaddr)
Indicates to the behaviour that an external address was removed.
Auto Trait Implementations
impl !RefUnwindSafe for Floodsub
impl Send for Floodsub
impl Sync for Floodsub
impl Unpin for Floodsub
impl !UnwindSafe for Floodsub
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more