pub struct Router {
primary: RouterId,
placements: Option<RouterPlacements>,
capabilities: MediaCapabilities,
routers: BTreeMap<RouterId, LocalRouter>,
sessions: BTreeMap<UserId, CommittedSession>,
users: BTreeMap<ConnectionId, UserId>,
}Expand description
pure room router for placement and routed media lifetimes
Fields§
§primary: RouterId§placements: Option<RouterPlacements>§capabilities: MediaCapabilities§routers: BTreeMap<RouterId, LocalRouter>§sessions: BTreeMap<UserId, CommittedSession>§users: BTreeMap<ConnectionId, UserId>Implementations§
Source§impl Router
impl Router
pub fn new(primary: RouterId, capabilities: MediaCapabilities) -> Self
pub fn with_placements( placements: RouterPlacements, capabilities: MediaCapabilities, ) -> Self
pub const fn rtp_capabilities(&self) -> &MediaCapabilities
pub fn committed_media_worker_id( &self, user: &UserId, connection: ConnectionId, ) -> Option<MediaWorkerId>
Sourcepub fn commit_session_placement(
&mut self,
user: &UserId,
connection: ConnectionId,
placement: RouterPlacement,
) -> Result<MediaWorkerId, RouterError>
pub fn commit_session_placement( &mut self, user: &UserId, connection: ConnectionId, placement: RouterPlacement, ) -> Result<MediaWorkerId, RouterError>
commit one user connection to a router placement
§Errors
returns an error when the connection is occupied or when the placement contradicts an existing router-to-worker assignment
pub fn retire_committed_placement( &mut self, user: &UserId, connection: ConnectionId, ) -> Option<MediaWorkerId>
Sourcepub fn media_worker_id_for_connection(
&self,
connection: ConnectionId,
) -> MediaWorkerId
pub fn media_worker_id_for_connection( &self, connection: ConnectionId, ) -> MediaWorkerId
§Panics
panics when connection has no committed placement
pub fn primary_worker(&self) -> Option<MediaWorkerId>
pub fn placement_snapshot(&self) -> PlacementSnapshot
Sourcepub fn add_producer(
&mut self,
user: &UserId,
producer: ProducerId,
) -> Result<RoutedProducerId, RouterError>
pub fn add_producer( &mut self, user: &UserId, producer: ProducerId, ) -> Result<RoutedProducerId, RouterError>
create a producer on the user’s home router
§Errors
returns a missing session or duplicate producer error
Sourcepub fn add_consumer(
&mut self,
user: &UserId,
consumer: ConsumerId,
producer: RoutedProducerId,
) -> Result<RoutedConsumerId, RouterError>
pub fn add_consumer( &mut self, user: &UserId, consumer: ConsumerId, producer: RoutedProducerId, ) -> Result<RoutedConsumerId, RouterError>
create a consumer on its producer’s source router
§Errors
returns a missing session, router, producer or duplicate consumer error
Sourcepub fn remove_consumer(
&mut self,
consumer: RoutedConsumerId,
) -> Result<(), RouterError>
pub fn remove_consumer( &mut self, consumer: RoutedConsumerId, ) -> Result<(), RouterError>
remove one consumer and its empty foreign receiver session
§Errors
returns a missing router or consumer error
Sourcepub fn remove_producer(
&mut self,
producer: RoutedProducerId,
) -> Result<(), RouterError>
pub fn remove_producer( &mut self, producer: RoutedProducerId, ) -> Result<(), RouterError>
Sourcepub fn remove_session(&mut self, user: &UserId) -> Result<(), RouterError>
pub fn remove_session(&mut self, user: &UserId) -> Result<(), RouterError>
remove a user’s home session, foreign sessions and routed media
§Errors
returns a missing session or router error
fn remove_dependents( &mut self, router: RouterId, consumers: BTreeSet<RoutedConsumerId>, )
fn attach_placement(&mut self, placement: RouterPlacement)
fn validate_placement( &self, placement: RouterPlacement, ) -> Result<(), RouterError>
fn require_session( &self, user: &UserId, ) -> Result<&CommittedSession, RouterError>
fn prune_foreign_session(&mut self, router: RouterId, connection: ConnectionId)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Router
impl RefUnwindSafe for Router
impl Send for Router
impl Sync for Router
impl Unpin for Router
impl UnsafeUnpin for Router
impl UnwindSafe for Router
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