Struct actix::registry::SystemRegistry [−][src]
pub struct SystemRegistry { /* fields omitted */ }
Expand description
System wide actors registry
System registry serves same purpose as Registry, except it is shared across all arbiters.
Example
use actix::prelude::*;
#[derive(Message)]
#[rtype(result = "()")]
struct Ping;
#[derive(Default)]
struct MyActor1;
impl Actor for MyActor1 {
type Context = Context<Self>;
}
impl actix::Supervised for MyActor1 {}
impl SystemService 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 = MyActor1::from_registry();
act.do_send(Ping);
}
}
fn main() {
// initialize system
let code = System::run(|| {
// Start MyActor2
let addr = MyActor2.start();
});
}
Implementations
Return address of the service. If service actor is not running it get started in the system.
Check if actor is in registry, if so, return its address