Struct actix::System
[−]
[src]
pub struct System { /* fields omitted */ }
System is an actor which manages process.
Before starting any actix's actors, System
actor has to be created
with System::new()
call. This method creates new Arbiter
in current thread
and starts System
actor.
Examples
extern crate actix; use std::time::Duration; use actix::prelude::*; struct Timer {dur: Duration} impl Actor for Timer { type Context = Context<Self>; // stop system after `self.dur` seconds fn started(&mut self, ctx: &mut Context<Self>) { ctx.run_later(self.dur, |act, ctx| { // send `SystemExit` to `System` actor. Arbiter::system().send(msgs::SystemExit(0)); }); } } fn main() { // initialize system let sys = System::new("test"); // Start `Timer` actor let _:() = Timer{dur: Duration::new(0, 1)}.start(); // Run system, this function blocks current thread let code = sys.run(); std::process::exit(code); }
Methods
impl System
[src]
fn new<T: ToString>(name: T) -> SystemRunner
[src]
Create new system
Trait Implementations
impl Actor for System
[src]
type Context = Context<Self>
Actor execution context type
fn started(&mut self, ctx: &mut Self::Context)
[src]
Method is called when actor get polled first time.
fn stopping(&mut self, ctx: &mut Self::Context)
[src]
Method is called after an actor is in Actor::Stopping
state. There could be several reasons for stopping. Context::stop
get called by the actor itself. All addresses to current actor get dropped and no more evented objects left in the context. Actor could restore from stopping state to running state by creating new address or adding future or stream to current content. Read more
fn stopped(&mut self, ctx: &mut Self::Context)
[src]
Method is called after an actor is stopped, it can be used to perform any needed cleanup work or spawning more actors. This is final state, after this call actor get dropped. Read more
fn start<Addr>(self) -> Addr where
Self: Actor<Context = Context<Self>> + ActorAddress<Self, Addr>,
[src]
Self: Actor<Context = Context<Self>> + ActorAddress<Self, Addr>,
Start new asynchronous actor, returns address of newly created actor. Read more
fn start_default<Addr>() -> Addr where
Self: Default + Actor<Context = Context<Self>> + ActorAddress<Self, Addr>,
[src]
Self: Default + Actor<Context = Context<Self>> + ActorAddress<Self, Addr>,
Start new asynchronous actor, returns address of newly created actor.
fn create<Addr, F>(f: F) -> Addr where
Self: Actor<Context = Context<Self>> + ActorAddress<Self, Addr>,
F: FnOnce(&mut Context<Self>) -> Self + 'static,
[src]
Self: Actor<Context = Context<Self>> + ActorAddress<Self, Addr>,
F: FnOnce(&mut Context<Self>) -> Self + 'static,
Use create
method, if you need Context
object during actor initialization. Read more
fn reply<M>(val: M::Item) -> Response<Self, M> where
M: ResponseType,
[src]
M: ResponseType,
Create static response.
fn async_reply<T, M>(fut: T) -> Response<Self, M> where
M: ResponseType,
T: ActorFuture<Item = M::Item, Error = M::Error, Actor = Self> + Sized + 'static,
[src]
M: ResponseType,
T: ActorFuture<Item = M::Item, Error = M::Error, Actor = Self> + Sized + 'static,
Create async response process.
fn empty<M>() -> Response<Self, M> where
M: ResponseType<Item = ()>,
[src]
M: ResponseType<Item = ()>,
Create unit response, for case when ResponseType::Item = ()
fn reply_error<M>(err: M::Error) -> Response<Self, M> where
M: ResponseType,
[src]
M: ResponseType,
Create error response
impl Handler<SystemExit> for System
[src]
fn handle(
&mut self,
msg: SystemExit,
_: &mut Context<Self>
) -> Response<Self, SystemExit>
[src]
&mut self,
msg: SystemExit,
_: &mut Context<Self>
) -> Response<Self, SystemExit>
Method is called for every message received by this Actor
fn error(&mut self, err: E, ctx: &mut Self::Context)
[src]
Method is called on error. By default it does nothing.