nautilus_common::timer

Struct LiveTimer

Source
pub struct LiveTimer {
    pub name: Ustr,
    pub interval_ns: NonZeroU64,
    pub start_time_ns: UnixNanos,
    pub stop_time_ns: Option<UnixNanos>,
    /* private fields */
}
Expand description

A live timer for use with a LiveClock.

LiveTimer triggers events at specified intervals in a real-time environment, using Tokio’s async runtime to handle scheduling and execution.

Fields§

§name: Ustr

The name of the timer.

§interval_ns: NonZeroU64

The start time of the timer in UNIX nanoseconds.

§start_time_ns: UnixNanos

The start time of the timer in UNIX nanoseconds.

§stop_time_ns: Option<UnixNanos>

The optional stop time of the timer in UNIX nanoseconds.

Implementations§

Source§

impl LiveTimer

Source

pub fn new( name: &str, interval_ns: u64, start_time_ns: UnixNanos, stop_time_ns: Option<UnixNanos>, callback: TimeEventCallback, heap: Arc<Mutex<BinaryHeap<TimeEvent>>>, ) -> Self

Creates a new LiveTimer instance.

§Panics

This function panics:

  • If name is not a valid string.
  • If interval_ns is zero.
Source

pub fn next_time_ns(&self) -> UnixNanos

Returns the next time in UNIX nanoseconds when the timer will fire.

Provides the scheduled time for the next event based on the current state of the timer.

Source

pub fn is_expired(&self) -> bool

Returns whether the timer is expired.

An expired timer will not trigger any further events. A timer that has not been started is not expired.

Source

pub fn start(&mut self)

Starts the timer.

Time events will begin triggering at the specified intervals. The generated events are handled by the provided callback function.

Source

pub fn cancel(&mut self)

Cancels the timer.

The timer will not generate a final event.

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

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

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

Source§

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

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

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
§

impl<T> Ungil for T
where T: Send,