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().do_send(actix::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]
pub fn new<T: Into<String>>(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) -> Running
[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. 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