pub struct DiscoveryManager { /* private fields */ }
Expand description
Peer discovery manager
Implementations§
Source§impl DiscoveryManager
impl DiscoveryManager
Sourcepub fn new(
node_id: PeerId,
socket_addr: SocketAddr,
config: DiscoveryConfig,
) -> Self
pub fn new( node_id: PeerId, socket_addr: SocketAddr, config: DiscoveryConfig, ) -> Self
Create a new discovery manager
Sourcepub async fn add_peer(&self, peer_info: PeerInfo) -> Result<()>
pub async fn add_peer(&self, peer_info: PeerInfo) -> Result<()>
Add a peer to the known peers list
Sourcepub async fn remove_peer(&self, peer_id: &PeerId) -> Result<()>
pub async fn remove_peer(&self, peer_id: &PeerId) -> Result<()>
Remove a peer from known peers
Sourcepub async fn mark_connected(&self, peer_id: &PeerId) -> Result<()>
pub async fn mark_connected(&self, peer_id: &PeerId) -> Result<()>
Mark a peer as connected
Sourcepub async fn mark_disconnected(&self, peer_id: &PeerId) -> Result<()>
pub async fn mark_disconnected(&self, peer_id: &PeerId) -> Result<()>
Mark a peer as disconnected
Sourcepub async fn get_peers(&self) -> Vec<PeerAnnouncement>
pub async fn get_peers(&self) -> Vec<PeerAnnouncement>
Get all known peers
Sourcepub async fn get_connected_peers(&self) -> Vec<PeerId>
pub async fn get_connected_peers(&self) -> Vec<PeerId>
Get connected peers
Sourcepub async fn get_peers_for_discovery(
&self,
requester_id: &PeerId,
max_peers: usize,
) -> Vec<PeerAnnouncement>
pub async fn get_peers_for_discovery( &self, requester_id: &PeerId, max_peers: usize, ) -> Vec<PeerAnnouncement>
Get peers for discovery response (excluding requester and already connected)
Sourcepub async fn handle_message(
&self,
message: DiscoveryMessage,
sender_addr: SocketAddr,
) -> Result<Option<DiscoveryMessage>>
pub async fn handle_message( &self, message: DiscoveryMessage, sender_addr: SocketAddr, ) -> Result<Option<DiscoveryMessage>>
Handle discovery message
Sourcepub fn create_announcement(&self) -> DiscoveryMessage
pub fn create_announcement(&self) -> DiscoveryMessage
Create an announcement message
Sourcepub fn create_peer_request(&self, max_peers: usize) -> DiscoveryMessage
pub fn create_peer_request(&self, max_peers: usize) -> DiscoveryMessage
Create a peer request message
Sourcepub fn create_ping(&self) -> DiscoveryMessage
pub fn create_ping(&self) -> DiscoveryMessage
Create a ping message
Sourcepub async fn should_announce(&self) -> bool
pub async fn should_announce(&self) -> bool
Check if we should announce ourselves
Sourcepub async fn update_last_announce(&self)
pub async fn update_last_announce(&self)
Update last announce time
Sourcepub async fn cleanup_old_peers(&self) -> Result<()>
pub async fn cleanup_old_peers(&self) -> Result<()>
Clean up old peers
Sourcepub async fn get_stats(&self) -> DiscoveryStats
pub async fn get_stats(&self) -> DiscoveryStats
Get discovery statistics
Auto Trait Implementations§
impl Freeze for DiscoveryManager
impl !RefUnwindSafe for DiscoveryManager
impl Send for DiscoveryManager
impl Sync for DiscoveryManager
impl Unpin for DiscoveryManager
impl !UnwindSafe for DiscoveryManager
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