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 create 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]

[src]

Create new system

Trait Implementations

impl Actor for System
[src]

Actor execution context type

[src]

Method is called when actor get polled first time.

[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

[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

[src]

Start new asynchronous actor, returns address of newly created actor. Read more

[src]

Start new asynchronous actor, returns address of newly created actor.

[src]

Use create method, if you need Context object during actor initialization. Read more

[src]

Create static response.

[src]

Create async response process.

[src]

Create unit response, for case when ResponseType::Item = ()

[src]

Create error response

impl Handler<SystemExit> for System
[src]

[src]

Method is called for every message received by this Actor

[src]

Method is called on error. By default it does nothing.