Struct libp2p_floodsub::Floodsub
source · [−]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) -> Self
pub fn from_config(config: FloodsubConfig) -> Self
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>>)
pub fn publish(&mut self, topic: impl Into<Topic>, data: impl Into<Vec<u8>>)
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>>)
pub fn publish_any(&mut self, topic: impl Into<Topic>, data: impl Into<Vec<u8>>)
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>>
)
pub fn publish_many(
&mut self,
topic: impl IntoIterator<Item = impl Into<Topic>>,
data: impl Into<Vec<u8>>
)
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>>
)
pub fn publish_many_any(
&mut self,
topic: impl IntoIterator<Item = impl Into<Topic>>,
data: impl Into<Vec<u8>>
)
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 ProtocolsHandler = OneShotHandler<FloodsubProtocol, FloodsubRpc, InnerMessage>
type ProtocolsHandler = 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) -> Self::ProtocolsHandler
fn new_handler(&mut self) -> Self::ProtocolsHandler
Creates a new ProtocolsHandler
for a connection with a peer. Read more
sourcefn addresses_of_peer(&mut self, _: &PeerId) -> Vec<Multiaddr>
fn addresses_of_peer(&mut self, _: &PeerId) -> Vec<Multiaddr>
Addresses that this behaviour is aware of for this specific peer, and that may allow reaching the peer. Read more
sourcefn inject_connected(&mut self, id: &PeerId)
fn inject_connected(&mut self, id: &PeerId)
Indicates the behaviour that we connected to the node with the given peer id. Read more
sourcefn inject_disconnected(&mut self, id: &PeerId)
fn inject_disconnected(&mut self, id: &PeerId)
Indicates the behaviour that we disconnected from the node with the given peer id. 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<<Self::ProtocolsHandler as ProtocolsHandler>::InEvent, Self::OutEvent>>
fn poll(
&mut self,
_: &mut Context<'_>,
_: &mut impl PollParameters
) -> Poll<NetworkBehaviourAction<<Self::ProtocolsHandler as ProtocolsHandler>::InEvent, Self::OutEvent>>
Polls for things that swarm should do. Read more
sourcefn inject_connection_established(
&mut self,
&PeerId,
&ConnectionId,
&ConnectedPoint
)
fn inject_connection_established(
&mut self,
&PeerId,
&ConnectionId,
&ConnectedPoint
)
Informs the behaviour about a newly established connection to a peer.
sourcefn inject_connection_closed(&mut self, &PeerId, &ConnectionId, &ConnectedPoint)
fn inject_connection_closed(&mut self, &PeerId, &ConnectionId, &ConnectedPoint)
Informs the behaviour about a closed connection to a 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_addr_reach_failure(
&mut self,
_peer_id: Option<&PeerId>,
_addr: &Multiaddr,
_error: &dyn Error
)
fn inject_addr_reach_failure(
&mut self,
_peer_id: Option<&PeerId>,
_addr: &Multiaddr,
_error: &dyn Error
)
Indicates to the behaviour that we tried to reach an address, but failed. Read more
sourcefn inject_dial_failure(&mut self, _peer_id: &PeerId)
fn inject_dial_failure(&mut self, _peer_id: &PeerId)
Indicates to the behaviour that we tried to dial all the addresses known for a node, but failed. Read more
sourcefn inject_new_listen_addr(&mut self, _addr: &Multiaddr)
fn inject_new_listen_addr(&mut self, _addr: &Multiaddr)
Indicates to the behaviour that we have started listening on a new multiaddr.
sourcefn inject_expired_listen_addr(&mut self, _addr: &Multiaddr)
fn inject_expired_listen_addr(&mut self, _addr: &Multiaddr)
Indicates to the behaviour that a new multiaddr we were listening on has expired, which means that we are no longer listening in it. Read more
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_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.
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 · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more