Struct tonari_actor::Context
source · pub struct Context<M> {
pub system_handle: SystemHandle,
pub myself: Recipient<M>,
/* private fields */
}
Expand description
An execution context for a specific actor. Specifically, this is useful for managing
the lifecycle of itself (through the myself
field) and other actors via the SystemHandle
provided. A time-based deadline for receiving a message can be set using
Self::set_deadline()
and friends.
Fields§
§system_handle: SystemHandle
§myself: Recipient<M>
Implementations§
source§impl<M> Context<M>
impl<M> Context<M>
sourcepub fn deadline(&self) -> &Option<Instant>
pub fn deadline(&self) -> &Option<Instant>
Get the deadline previously set using Self::set_deadline()
or Self::set_timeout()
.
The deadline is cleared just before Actor::deadline_passed()
is called.
sourcepub fn set_deadline(&mut self, deadline: Option<Instant>)
pub fn set_deadline(&mut self, deadline: Option<Instant>)
Schedule a future one-shot call to Actor::deadline_passed()
, or cancel the schedule.
A deadline in the past is considered to expire right in the next iteration (possibly after
receiving new messages).
sourcepub fn set_timeout(&mut self, timeout: Option<Duration>)
pub fn set_timeout(&mut self, timeout: Option<Duration>)
Schedule or cancel a call to Actor::deadline_passed()
after timeout
from now.
Convenience variant of Self::set_deadline()
.
sourcepub fn subscribe<E: Event + Into<M>>(&self)where
M: 'static,
pub fn subscribe<E: Event + Into<M>>(&self)where M: 'static,
Subscribe current actor to event of type E
. This is part of the event system. You don’t
need to call this method to receive direct messages sent using Addr
and Recipient
.
Note that subscribing twice to the same event would result in duplicate events – no de-duplication of subscriptions is performed.