Trait response_time_analysis::demand::RequestBound
source · pub trait RequestBound {
fn least_wcet_in_interval(&self, delta: Duration) -> Service;
fn steps_iter<'a>(&'a self) -> Box<dyn Iterator<Item = Duration> + 'a>;
fn job_cost_iter<'a>(
&'a self,
delta: Duration
) -> Box<dyn Iterator<Item = Service> + 'a>;
fn service_needed(&self, delta: Duration) -> Service { ... }
fn service_needed_by_n_jobs(
&self,
delta: Duration,
max_jobs: usize
) -> Service { ... }
}
Expand description
The general interface for (arbitrarily shaped) processor demand. This can represent the demand of a single task, or the cumulative demand of multiple tasks.
Required Methods
sourcefn least_wcet_in_interval(&self, delta: Duration) -> Service
fn least_wcet_in_interval(&self, delta: Duration) -> Service
Expose the smallest WCET of any job encountered in an interval of length delta
.
sourcefn steps_iter<'a>(&'a self) -> Box<dyn Iterator<Item = Duration> + 'a>
fn steps_iter<'a>(&'a self) -> Box<dyn Iterator<Item = Duration> + 'a>
Yield an iterator over the interval lengths (i.e., values of delta
in
RequestBound::service_needed) at which the cumulative demand changes.
More precisely, this iterator yields every value of delta
such that:
self.service_needed(delta - 1) < self.service_needed(delta)
.
Provided Methods
sourcefn service_needed(&self, delta: Duration) -> Service
fn service_needed(&self, delta: Duration) -> Service
Bound the total amount of service needed in an interval of length delta
.
sourcefn service_needed_by_n_jobs(&self, delta: Duration, max_jobs: usize) -> Service
fn service_needed_by_n_jobs(&self, delta: Duration, max_jobs: usize) -> Service
Bound the total amount of service needed by up to max_jobs
in an interval of length delta
.
Trait Implementations
sourceimpl<'a, B: ArrivalBound + 'a, C: JobCostModel + 'a> AsRef<dyn RequestBound + 'a> for RBF<B, C>
impl<'a, B: ArrivalBound + 'a, C: JobCostModel + 'a> AsRef<dyn RequestBound + 'a> for RBF<B, C>
sourcefn as_ref<'b>(&'b self) -> &'b (dyn RequestBound + 'a)
fn as_ref<'b>(&'b self) -> &'b (dyn RequestBound + 'a)
Converts this type into a shared reference of the (usually inferred) input type.