pub struct MultipathQuicManager { /* private fields */ }Expand description
Multipath QUIC connection manager
Implementations§
Source§impl MultipathQuicManager
impl MultipathQuicManager
Sourcepub fn new(config: MultipathConfig) -> Self
pub fn new(config: MultipathConfig) -> Self
Create a new multipath QUIC manager
Sourcepub fn add_path(
&self,
local_addr: SocketAddr,
remote_addr: SocketAddr,
) -> Result<PathId>
pub fn add_path( &self, local_addr: SocketAddr, remote_addr: SocketAddr, ) -> Result<PathId>
Add a new network path
Sourcepub fn remove_path(&self, path_id: PathId) -> Result<()>
pub fn remove_path(&self, path_id: PathId) -> Result<()>
Remove a network path
Sourcepub fn update_path_state(&self, path_id: PathId, state: PathState) -> Result<()>
pub fn update_path_state(&self, path_id: PathId, state: PathState) -> Result<()>
Update path state
Sourcepub fn update_path_quality(
&self,
path_id: PathId,
rtt_ms: f64,
bandwidth_bps: u64,
loss_rate: f64,
jitter_ms: f64,
) -> Result<()>
pub fn update_path_quality( &self, path_id: PathId, rtt_ms: f64, bandwidth_bps: u64, loss_rate: f64, jitter_ms: f64, ) -> Result<()>
Update path quality metrics
Sourcepub fn select_path(&self) -> Result<PathId>
pub fn select_path(&self) -> Result<PathId>
Select the best path for sending data
Sourcepub fn select_all_paths(&self) -> Vec<PathId> ⓘ
pub fn select_all_paths(&self) -> Vec<PathId> ⓘ
Select all paths for redundant transmission
Sourcepub fn record_sent(&self, path_id: PathId, bytes: u64)
pub fn record_sent(&self, path_id: PathId, bytes: u64)
Record data sent on a path
Sourcepub fn record_received(&self, path_id: PathId, bytes: u64)
pub fn record_received(&self, path_id: PathId, bytes: u64)
Record data received on a path
Sourcepub fn get_path(&self, path_id: PathId) -> Option<NetworkPath>
pub fn get_path(&self, path_id: PathId) -> Option<NetworkPath>
Get path information
Sourcepub fn get_active_paths(&self) -> Vec<NetworkPath>
pub fn get_active_paths(&self) -> Vec<NetworkPath>
Get all active paths
Sourcepub fn get_all_paths(&self) -> Vec<NetworkPath>
pub fn get_all_paths(&self) -> Vec<NetworkPath>
Get all paths
Sourcepub fn should_migrate(&self, current_path_id: PathId) -> Option<PathId>
pub fn should_migrate(&self, current_path_id: PathId) -> Option<PathId>
Check if automatic migration should be triggered
Sourcepub fn cleanup_stale_paths(&self)
pub fn cleanup_stale_paths(&self)
Cleanup stale paths
Sourcepub fn stats(&self) -> MultipathStats
pub fn stats(&self) -> MultipathStats
Get statistics
Sourcepub fn config(&self) -> &MultipathConfig
pub fn config(&self) -> &MultipathConfig
Get configuration
Auto Trait Implementations§
impl Freeze for MultipathQuicManager
impl !RefUnwindSafe for MultipathQuicManager
impl Send for MultipathQuicManager
impl Sync for MultipathQuicManager
impl Unpin for MultipathQuicManager
impl !UnwindSafe for MultipathQuicManager
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more