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>
impl<B: RealtimeBackend> RealtimeScheduler<B>
Sourcepub fn new(
model: &RealtimeModel<B>,
limits: SchedulerLimits,
) -> Result<Self, RealtimeError<B::Error>>
pub fn new( model: &RealtimeModel<B>, limits: SchedulerLimits, ) -> Result<Self, RealtimeError<B::Error>>
Binds an empty scheduler to one selected model.
Sourcepub fn register_request(
&mut self,
model: &RealtimeModel<B>,
request: RequestId,
sampling: RealtimeSampling,
) -> Result<(), RealtimeError<B::Error>>
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.
Sourcepub fn register_request_with_session(
&mut self,
model: &RealtimeModel<B>,
request: RequestId,
session: RealtimeSession<B>,
) -> Result<(), RealtimeError<B::Error>>
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.
Sourcepub fn enqueue(
&mut self,
model: &RealtimeModel<B>,
request: RequestId,
input: B::Input,
) -> Result<WorkId, RealtimeError<B::Error>>
pub fn enqueue( &mut self, model: &RealtimeModel<B>, request: RequestId, input: B::Input, ) -> Result<WorkId, RealtimeError<B::Error>>
Enqueues one encoded or forced frame.
Sourcepub fn enqueue_with_deadline(
&mut self,
model: &RealtimeModel<B>,
request: RequestId,
input: B::Input,
deadline: Option<Instant>,
) -> Result<WorkId, RealtimeError<B::Error>>
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.
Sourcepub fn enqueue_batch(
&mut self,
model: &RealtimeModel<B>,
request: RequestId,
inputs: Vec<B::Input>,
) -> Result<Vec<WorkId>, RealtimeError<B::Error>>
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.
Sourcepub fn run_queued(
&mut self,
model: &mut RealtimeModel<B>,
) -> Result<Vec<RealtimeCompletedStep<B::Output>>, RealtimeError<B::Error>>
pub fn run_queued( &mut self, model: &mut RealtimeModel<B>, ) -> Result<Vec<RealtimeCompletedStep<B::Output>>, RealtimeError<B::Error>>
Advances one unbounded fair scheduling turn.
Sourcepub fn run_bounded(
&mut self,
model: &mut RealtimeModel<B>,
max_frames: usize,
) -> Result<Vec<RealtimeCompletedStep<B::Output>>, RealtimeError<B::Error>>
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.
Sourcepub fn finish_request(
&mut self,
request: RequestId,
) -> Result<(), RealtimeError<B::Error>>
pub fn finish_request( &mut self, request: RequestId, ) -> Result<(), RealtimeError<B::Error>>
Completes one request and drops its backend session.
Sourcepub fn cancel_request(
&mut self,
request: RequestId,
) -> Result<(), RealtimeError<B::Error>>
pub fn cancel_request( &mut self, request: RequestId, ) -> Result<(), RealtimeError<B::Error>>
Cancels one request and discards queued frames.
Sourcepub fn release_request(
&mut self,
request: RequestId,
) -> Result<RealtimeSession<B>, RealtimeError<B::Error>>
pub fn release_request( &mut self, request: RequestId, ) -> Result<RealtimeSession<B>, RealtimeError<B::Error>>
Releases an idle request for persistence or resumption.
Sourcepub fn forget_terminal_request(
&mut self,
request: RequestId,
) -> Result<RequestStatus, RealtimeError<B::Error>>
pub fn forget_terminal_request( &mut self, request: RequestId, ) -> Result<RequestStatus, RealtimeError<B::Error>>
Removes a terminal identity for explicit reuse.
Sourcepub fn request_status(&self, request: RequestId) -> Option<RequestStatus>
pub fn request_status(&self, request: RequestId) -> Option<RequestStatus>
Lifecycle state for a known request.
Sourcepub fn queued_for_request(&self, request: RequestId) -> usize
pub fn queued_for_request(&self, request: RequestId) -> usize
Queued frame count for one request.
Sourcepub fn set_request_sampling(
&mut self,
model: &RealtimeModel<B>,
request: RequestId,
sampling: RealtimeSampling,
) -> Result<(), RealtimeError<B::Error>>
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.
Sourcepub fn report(&self) -> SchedulerReport
pub fn report(&self) -> SchedulerReport
Generic occupancy and lifecycle telemetry.
Sourcepub fn capabilities(&self) -> SchedulerCapabilities
pub fn capabilities(&self) -> SchedulerCapabilities
Configured bounds and observed backend capabilities.