pub struct FakeClockController { /* private fields */ }
Expand description

A wrapper around a FakeClockControlProxy that also allows a client to read the current fake time.

Implementations§

source§

impl FakeClockController

source

pub fn new( control_proxy: FakeClockControlProxy, clock_proxy: FakeClockProxy ) -> Self

Re-constructs FakeClockController from the constituents.

source

pub fn into_components(self) -> (FakeClockControlProxy, FakeClockProxy)

Deconstructs Self into fake clock proxies.

source

pub async fn get_monotonic(&self) -> Result<i64, Error>

Methods from Deref<Target = FakeClockControlProxy>§

source

pub fn take_event_stream(&self) -> FakeClockControlEventStream

Get a Stream of events from the remote end of the protocol.

§Panics

Panics if the event stream was already taken.

source

pub fn advance( &self, increment: &Increment ) -> QueryResponseFut<Result<(), i32>>

Advances the fake clock increment once. Returns ZX_ERR_INVALID_ARGS if the provided increment is invalid (such as a badly formed RandomRange). Returns ZX_ERR_ACCESS_DENIED if called while the FakeClock is free-running.

source

pub fn resume_with_increments( &self, real: i64, increment: &Increment ) -> QueryResponseFut<Result<(), i32>>

Resumes free-running increments on the fake clock. real is the period based on the real monotonic clock over which increment is going to be applied. Returns ZX_ERR_INVALID_ARGS if the provided increment is invalid (such as a badly formed RandomRange).

source

pub fn add_stop_point( &self, deadline_id: &DeadlineId, event_type: DeadlineEventType, on_stop: EventPair ) -> QueryResponseFut<Result<(), i32>>

Registers interest in a deadline event. deadline_id and event_type identify the named deadline and the event associated with the deadline. When the event occurs, FakeClock will signal EVENTPAIR_SIGNALED on on_stop. If time is free-running, the clock is stopped. Closing the eventpair cancels interest in the deadline. If the eventpair is closed when a deadline is reached, time is not stopped. Note that only events that occur after AddStopPoint is called are matched. In addition, the EXPIRED event is always reported, even if the component that created the deadline does not act on the deadline expiration.

The intended use is to set a stop point using AddStopPoint, resume running time with ResumeWithIncrements, then wait for the stop point to occur using the on_stop eventpair. Setting a stop point is only allowed while time is stopped. If time is free running when this method is invoked ZX_ERR_ACCESS_DENIED is returned. If a stop point is already registered for the same event, ZX_ALREADY_BOUND is returned.

source

pub fn pause(&self) -> QueryResponseFut<()>

Pauses free-running increments on the fake clock.

source

pub fn ignore_named_deadline( &self, deadline_id: &DeadlineId ) -> QueryResponseFut<()>

Instructs the fake clock to make deadlines named deadline_id never expire. This is a no-op if deadline_id is already in the ignored set.

Trait Implementations§

source§

impl Deref for FakeClockController

§

type Target = FakeClockControlProxy

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.

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> Encode<Ambiguous1> for T

source§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _offset: usize, _depth: Depth ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
source§

impl<T> Encode<Ambiguous2> for T

source§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _offset: usize, _depth: Depth ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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.

§

impl<T> IntoAny for T
where T: 'static + Send + Sync,

§

fn into_any(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Cast the given object into a dyn std::any::Any.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

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

§

type Error = Infallible

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>,

§

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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<St> WithTag for St

source§

fn tagged<T>(self, tag: T) -> Tagged<T, St>

Produce a new stream from this one which yields item tupled with a constant tag