pub struct Clock<Reference = MonotonicTimeline, Output = SyntheticTimeline>(/* private fields */);
Expand description
An object representing a kernel clock, used to track the progress of time. A clock is a one-dimensional affine transformation of the clock monotonic reference timeline which may be atomically adjusted by a maintainer and observed by clients.
As essentially a subtype of Handle
, it can be freely interconverted.
Implementations§
source§impl<Output: Timeline> Clock<MonotonicTimeline, Output>
impl<Output: Timeline> Clock<MonotonicTimeline, Output>
source§impl<Output: Timeline> Clock<BootTimeline, Output>
impl<Output: Timeline> Clock<BootTimeline, Output>
source§impl<Reference: Timeline, Output: Timeline> Clock<Reference, Output>
impl<Reference: Timeline, Output: Timeline> Clock<Reference, Output>
sourcepub fn read(&self) -> Result<Instant<Output>, Status>
pub fn read(&self) -> Result<Instant<Output>, Status>
Perform a basic read of this clock. Wraps the zx_clock_read syscall. Requires
ZX_RIGHT_READ
and that the clock has had an initial time established.
sourcepub fn get_details(&self) -> Result<ClockDetails<Reference, Output>, Status>
pub fn get_details(&self) -> Result<ClockDetails<Reference, Output>, Status>
Get low level details of this clock’s current status. Wraps the
zx_clock_get_details syscall. Requires ZX_RIGHT_READ
.
sourcepub fn update(
&self,
update: impl Into<ClockUpdate<Reference, Output>>,
) -> Result<(), Status>
pub fn update( &self, update: impl Into<ClockUpdate<Reference, Output>>, ) -> Result<(), Status>
Make adjustments to this clock. Wraps the zx_clock_update syscall. Requires
ZX_RIGHT_WRITE
.
sourcepub fn downcast<NewReference: Timeline>(
self,
) -> Clock<NewReference, SyntheticTimeline>
pub fn downcast<NewReference: Timeline>( self, ) -> Clock<NewReference, SyntheticTimeline>
Convert this clock to one on a generic synthetic timeline, erasing any user-defined timeline.
Trait Implementations§
source§impl<Reference: Timeline, Output: Timeline> AsHandleRef for Clock<Reference, Output>
impl<Reference: Timeline, Output: Timeline> AsHandleRef for Clock<Reference, Output>
source§fn as_handle_ref(&self) -> HandleRef<'_>
fn as_handle_ref(&self) -> HandleRef<'_>
object_wait_many
.source§fn raw_handle(&self) -> zx_handle_t
fn raw_handle(&self) -> zx_handle_t
source§fn signal_handle(
&self,
clear_mask: Signals,
set_mask: Signals,
) -> Result<(), Status>
fn signal_handle( &self, clear_mask: Signals, set_mask: Signals, ) -> Result<(), Status>
source§fn wait_handle(
&self,
signals: Signals,
deadline: MonotonicInstant,
) -> Result<Signals, Status>
fn wait_handle( &self, signals: Signals, deadline: MonotonicInstant, ) -> Result<Signals, Status>
source§fn wait_async_handle(
&self,
port: &Port,
key: u64,
signals: Signals,
options: WaitAsyncOpts,
) -> Result<(), Status>
fn wait_async_handle( &self, port: &Port, key: u64, signals: Signals, options: WaitAsyncOpts, ) -> Result<(), Status>
source§fn get_name(&self) -> Result<Name, Status>
fn get_name(&self) -> Result<Name, Status>
source§fn set_name(&self, name: &Name) -> Result<(), Status>
fn set_name(&self, name: &Name) -> Result<(), Status>
source§fn basic_info(&self) -> Result<HandleBasicInfo, Status>
fn basic_info(&self) -> Result<HandleBasicInfo, Status>
source§fn count_info(&self) -> Result<HandleCountInfo, Status>
fn count_info(&self) -> Result<HandleCountInfo, Status>
source§impl<Reference: Timeline, Output: Timeline> HandleBased for Clock<Reference, Output>
impl<Reference: Timeline, Output: Timeline> HandleBased for Clock<Reference, Output>
source§fn duplicate_handle(&self, rights: Rights) -> Result<Self, Status>
fn duplicate_handle(&self, rights: Rights) -> Result<Self, Status>
source§fn replace_handle(self, rights: Rights) -> Result<Self, Status>
fn replace_handle(self, rights: Rights) -> Result<Self, Status>
source§fn into_handle(self) -> Handle
fn into_handle(self) -> Handle
source§fn into_raw(self) -> zx_handle_t
fn into_raw(self) -> zx_handle_t
source§fn from_handle(handle: Handle) -> Self
fn from_handle(handle: Handle) -> Self
source§fn into_handle_based<H: HandleBased>(self) -> H
fn into_handle_based<H: HandleBased>(self) -> H
source§fn from_handle_based<H: HandleBased>(h: H) -> Self
fn from_handle_based<H: HandleBased>(h: H) -> Self
fn is_invalid_handle(&self) -> bool
source§impl<Reference: Ord, Output: Ord> Ord for Clock<Reference, Output>
impl<Reference: Ord, Output: Ord> Ord for Clock<Reference, Output>
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl<Reference: PartialEq, Output: PartialEq> PartialEq for Clock<Reference, Output>
impl<Reference: PartialEq, Output: PartialEq> PartialEq for Clock<Reference, Output>
source§impl<Reference: PartialOrd, Output: PartialOrd> PartialOrd for Clock<Reference, Output>
impl<Reference: PartialOrd, Output: PartialOrd> PartialOrd for Clock<Reference, Output>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more