diff --git a/waku/src/node/mod.rs b/waku/src/node/mod.rs index 532b49f..d8821a5 100644 --- a/waku/src/node/mod.rs +++ b/waku/src/node/mod.rs @@ -6,11 +6,13 @@ mod peers; use multiaddr::Multiaddr; use std::marker::PhantomData; use std::sync::Mutex; +use std::time::Duration; // crates // internal -use crate::general::Result; +use crate::general::{PeerId, Result}; pub use config::WakuNodeConfig; +pub use peers::{Protocol, WakuPeerData, WakuPeers}; /// Shared flag to check if a waku node is already running in the current process static WAKU_NODE_INITIALIZED: Mutex = Mutex::new(false); @@ -37,6 +39,10 @@ impl WakuNodeHandle { pub fn listen_addresses(&self) -> Result> { management::waku_listen_addressses() } + + pub fn add_peer(&mut self, address: Multiaddr, protocol_id: usize) -> Result { + peers::waku_add_peers(address, protocol_id) + } } fn stop_node() -> Result<()> { let mut node_initialized = WAKU_NODE_INITIALIZED @@ -60,6 +66,34 @@ impl WakuNodeHandle { pub fn stop(self) -> Result<()> { stop_node() } + + pub fn connect_peer_with_address( + &mut self, + address: Multiaddr, + timeout: Option, + ) -> Result<()> { + peers::waku_connect_peer_with_address(address, timeout) + } + + pub fn connect_peer_with_id( + &mut self, + peer_id: PeerId, + timeout: Option, + ) -> Result<()> { + peers::waku_connect_peer_with_id(peer_id, timeout) + } + + pub fn disconnect_peer_with_id(&mut self, peer_id: PeerId) -> Result<()> { + peers::waku_disconnect_peer_with_id(peer_id) + } + + pub fn peer_count(&self) -> Result { + peers::waku_peer_count() + } + + pub fn peers(&self) -> Result { + peers::waku_peers() + } } pub fn waku_new(config: Option) -> Result> {