Skip to main content

QosReservationController

Struct QosReservationController 

Source
pub struct QosReservationController { /* private fields */ }
Expand description

Owns bounded QoS reservation generations independently of station calls.

Implementations§

Source§

impl QosReservationController

Source

pub fn new(limits: QosReservationLimits) -> Result<Self, QosReservationError>

Creates an empty controller after validating every resource bound.

Source

pub fn start( &mut self, request: QosReservationRequest, now: Instant, ) -> Result<(QosReservationId, QosTransition), QosReservationError>

Reserves a fresh lifetime identity and returns the exact setup message. A flow/direction pair can never be reused by this controller.

Source

pub fn state(&self, id: QosReservationId) -> Option<QosReservationState>

Returns None for unknown and already retired generations.

Source

pub fn len(&self) -> usize

Counts live generations without discarding retained correlation history.

Source

pub fn is_empty(&self) -> bool

Reports whether live state is empty; retired wire identities remain reserved.

Source

pub fn modify( &mut self, id: QosReservationId, traffic: QosTrafficSpecification, application: QosApplicationIdentifier, response_timeout: Duration, now: Instant, ) -> Result<QosTransition, QosReservationError>

Sends the sole correlatable modification for an active generation.

The message family has no transaction identity or explicit success response, so repeated modifications would make late failures ambiguous.

Source

pub fn update_dscp( &self, id: QosReservationId, dscp: u8, ) -> Result<QosTransition, QosReservationError>

Builds a six-bit DSCP update for an active generation.

Source

pub fn teardown( &mut self, id: QosReservationId, ) -> Result<QosTransition, QosReservationError>

Retires the generation before returning its teardown message.

Source

pub fn handle_message(&mut self, message: &ControlMessage) -> QosTransition

Handles only service-node reservation notifications and errors. Other typed control messages leave state unchanged.

Source

pub fn poll(&mut self, now: Instant) -> QosTransition

Expires every elapsed setup or modification observation in ID order.

Source

pub fn drain(&mut self) -> QosTransition

Retires all live generations and returns teardowns in ID order.

Trait Implementations§

Source§

impl Debug for QosReservationController

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more