Struct actix::Registry
[−]
[src]
pub struct Registry { /* fields omitted */ }
Actors registry
Actor can register itself as a service. Service can be defined as
ArbiterService
which is unique per arbiter or SystemService
which is
unique per system.
Example
use actix::prelude::*; #[derive(Message)] struct Ping; #[derive(Default)] struct MyActor1; impl Actor for MyActor1 { type Context = Context<Self>; } impl actix::Supervised for MyActor1 {} impl actix::ArbiterService for MyActor1 { fn service_started(&mut self, ctx: &mut Context<Self>) { println!("Service started"); } } impl Handler<Ping> for MyActor1 { type Result = (); fn handle(&mut self, _: Ping, ctx: &mut Context<Self>) { println!("ping"); } } struct MyActor2; impl Actor for MyActor2 { type Context = Context<Self>; fn started(&mut self, _: &mut Context<Self>) { let act = Arbiter::registry().get::<MyActor1>(); act.send(Ping) } } fn main() { // initialize system let sys = System::new("test"); // Start MyActor1 let _:() = MyActor1.start(); // Start MyActor2 let _:() = MyActor2.start(); // Run system, this function blocks current thread let code = sys.run(); }