pub struct RouteTable<PeerID> { /* private fields */ }
Implementations§
Source§impl<PeerID: Hash + Eq> RouteTable<PeerID>
impl<PeerID: Hash + Eq> RouteTable<PeerID>
pub fn new(load_balance: LoadBalance) -> RouteTable<PeerID>
Source§impl<PeerID: Hash + Eq> RouteTable<PeerID>
impl<PeerID: Hash + Eq> RouteTable<PeerID>
Source§impl<PeerID: Hash + Eq + Clone> RouteTable<PeerID>
impl<PeerID: Hash + Eq + Clone> RouteTable<PeerID>
pub fn add_route_if_absent(&self, id: PeerID, route: Route) -> bool
pub fn add_route<R: Into<Route>>(&self, id: PeerID, route: R) -> bool
Sourcepub fn update_read_time(&self, id: &PeerID, route_key: &RouteKey) -> bool
pub fn update_read_time(&self, id: &PeerID, route_key: &RouteKey) -> bool
Update the usage time of the route, routes that have not received data for a long time will be excluded
Sourcepub fn remove_route(&self, id: &PeerID, route_key: &RouteKey)
pub fn remove_route(&self, id: &PeerID, route_key: &RouteKey)
Remove specified route
pub fn remove_all(&self, id: &PeerID)
pub fn get_id_by_route_key(&self, route_key: &RouteKey) -> Option<PeerID>
pub fn route(&self, id: &PeerID) -> Option<Vec<Route>>
pub fn route_one(&self, id: &PeerID) -> Option<Route>
pub fn route_one_p2p(&self, id: &PeerID) -> Option<Route>
pub fn route_to_id(&self, route_key: &RouteKey) -> Option<PeerID>
pub fn need_punch(&self, id: &PeerID) -> bool
pub fn no_need_punch(&self, id: &PeerID) -> bool
pub fn p2p_num(&self, id: &PeerID) -> usize
pub fn relay_num(&self, id: &PeerID) -> usize
Sourcepub fn route_table(&self) -> Vec<(PeerID, Vec<Route>)>
pub fn route_table(&self) -> Vec<(PeerID, Vec<Route>)>
Return all routes
Sourcepub fn route_table_p2p(&self) -> Vec<(PeerID, Route)>
pub fn route_table_p2p(&self) -> Vec<(PeerID, Route)>
Return all P2P routes
Sourcepub fn route_table_one(&self) -> Vec<(PeerID, Route)>
pub fn route_table_one(&self) -> Vec<(PeerID, Route)>
Return to the first route
Sourcepub fn route_key_table(&self) -> HashMap<RouteKey, Vec<PeerID>>
pub fn route_key_table(&self) -> HashMap<RouteKey, Vec<PeerID>>
Return to route_key
-> Vec<PeerID>
,
where vec[0]
is the owner of the route
pub fn route_table_ids(&self) -> Vec<PeerID>
pub fn route_table_min_metric(&self) -> Vec<(PeerID, Route)>
pub fn route_table_min_rtt(&self) -> Vec<(PeerID, Route)>
pub fn oldest_route(&self) -> Option<(PeerID, Route, Instant)>
Trait Implementations§
Source§impl<PeerID> Clone for RouteTable<PeerID>
impl<PeerID> Clone for RouteTable<PeerID>
Auto Trait Implementations§
impl<PeerID> Freeze for RouteTable<PeerID>
impl<PeerID> !RefUnwindSafe for RouteTable<PeerID>
impl<PeerID> Send for RouteTable<PeerID>
impl<PeerID> Sync for RouteTable<PeerID>
impl<PeerID> Unpin for RouteTable<PeerID>
impl<PeerID> !UnwindSafe for RouteTable<PeerID>
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