Skip to main content

RealtimeScheduler

Struct RealtimeScheduler 

Source
pub struct RealtimeScheduler<B: RealtimeBackend> { /* private fields */ }
Expand description

Fair bounded realtime scheduler generic over the selected backend.

Implementations§

Source§

impl<B: RealtimeBackend> RealtimeScheduler<B>

Source

pub fn new( model: &RealtimeModel<B>, limits: SchedulerLimits, ) -> Result<Self, RealtimeError<B::Error>>

Binds an empty scheduler to one selected model.

Source

pub fn register_request( &mut self, model: &RealtimeModel<B>, request: RequestId, sampling: RealtimeSampling, ) -> Result<(), RealtimeError<B::Error>>

Registers a request with fresh backend-owned state.

Source

pub fn register_request_with_session( &mut self, model: &RealtimeModel<B>, request: RequestId, session: RealtimeSession<B>, ) -> Result<(), RealtimeError<B::Error>>

Registers a previously released request session.

Source

pub fn enqueue( &mut self, model: &RealtimeModel<B>, request: RequestId, input: B::Input, ) -> Result<WorkId, RealtimeError<B::Error>>

Enqueues one encoded or forced frame.

Source

pub fn enqueue_with_deadline( &mut self, model: &RealtimeModel<B>, request: RequestId, input: B::Input, deadline: Option<Instant>, ) -> Result<WorkId, RealtimeError<B::Error>>

Enqueues one frame with an optional absolute deadline.

Source

pub fn enqueue_batch( &mut self, model: &RealtimeModel<B>, request: RequestId, inputs: Vec<B::Input>, ) -> Result<Vec<WorkId>, RealtimeError<B::Error>>

Atomically enqueues ordered frames.

Source

pub fn run_queued( &mut self, model: &mut RealtimeModel<B>, ) -> Result<Vec<RealtimeCompletedStep<B::Output>>, RealtimeError<B::Error>>

Advances one unbounded fair scheduling turn.

Source

pub fn run_bounded( &mut self, model: &mut RealtimeModel<B>, max_frames: usize, ) -> Result<Vec<RealtimeCompletedStep<B::Output>>, RealtimeError<B::Error>>

Advances at most max_frames fair-ordered transitions.

Source

pub fn finish_request( &mut self, request: RequestId, ) -> Result<(), RealtimeError<B::Error>>

Completes one request and drops its backend session.

Source

pub fn cancel_request( &mut self, request: RequestId, ) -> Result<(), RealtimeError<B::Error>>

Cancels one request and discards queued frames.

Source

pub fn release_request( &mut self, request: RequestId, ) -> Result<RealtimeSession<B>, RealtimeError<B::Error>>

Releases an idle request for persistence or resumption.

Source

pub fn forget_terminal_request( &mut self, request: RequestId, ) -> Result<RequestStatus, RealtimeError<B::Error>>

Removes a terminal identity for explicit reuse.

Source

pub fn request_status(&self, request: RequestId) -> Option<RequestStatus>

Lifecycle state for a known request.

Source

pub fn queued_for_request(&self, request: RequestId) -> usize

Queued frame count for one request.

Source

pub fn set_request_sampling( &mut self, model: &RealtimeModel<B>, request: RequestId, sampling: RealtimeSampling, ) -> Result<(), RealtimeError<B::Error>>

Replaces sampling controls for an idle active request.

Source

pub fn report(&self) -> SchedulerReport

Generic occupancy and lifecycle telemetry.

Source

pub fn capabilities(&self) -> SchedulerCapabilities

Configured bounds and observed backend capabilities.

Auto Trait Implementations§

§

impl<B> Freeze for RealtimeScheduler<B>
where <B as RealtimeBackend>::ModelIdentity: Freeze, Scheduler<<B as RealtimeBackend>::Input, RealtimeSession<B>, RealtimeTransition<B>>: Freeze,

§

impl<B> RefUnwindSafe for RealtimeScheduler<B>

§

impl<B> Send for RealtimeScheduler<B>
where <B as RealtimeBackend>::ModelIdentity: Send, Scheduler<<B as RealtimeBackend>::Input, RealtimeSession<B>, RealtimeTransition<B>>: Send,

§

impl<B> Sync for RealtimeScheduler<B>
where <B as RealtimeBackend>::ModelIdentity: Sync, Scheduler<<B as RealtimeBackend>::Input, RealtimeSession<B>, RealtimeTransition<B>>: Sync,

§

impl<B> Unpin for RealtimeScheduler<B>
where <B as RealtimeBackend>::ModelIdentity: Unpin, Scheduler<<B as RealtimeBackend>::Input, RealtimeSession<B>, RealtimeTransition<B>>: Unpin,

§

impl<B> UnsafeUnpin for RealtimeScheduler<B>

§

impl<B> UnwindSafe for RealtimeScheduler<B>

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.