[−][src]Struct actix_web::actix::dev::Registry
Actors registry
An Actor can register itself as a service. A Service can be defined as an
ArbiterService
, which is unique per arbiter, or a SystemService
, which
is unique per system.
If an arbiter service is used outside of a running arbiter, it panics.
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 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>) { // get MyActor1 address from the registry let act = Arbiter::registry().get::<MyActor1>(); act.do_send(Ping); } } fn main() { // initialize system let code = System::run(|| { // Start MyActor2 in new Arbiter Arbiter::start(|_| { MyActor2 }); }); }
Methods
impl Registry
[src]
pub fn get<A>(&self) -> Addr<A> where
A: Actor<Context = Context<A>> + ArbiterService,
[src]
A: Actor<Context = Context<A>> + ArbiterService,
Query registry for specific actor. Returns address of the actor. If actor is not registered, starts new actor and return address of newly created actor.
pub fn query<A>(&self) -> Option<Addr<A>> where
A: Actor<Context = Context<A>> + ArbiterService,
[src]
A: Actor<Context = Context<A>> + ArbiterService,
Check if actor is in registry, if so, return its address
pub fn set<A>(&self, addr: Addr<A>) where
A: Actor<Context = Context<A>> + ArbiterService,
[src]
A: Actor<Context = Context<A>> + ArbiterService,
Add new actor to the registry by address, panic if actor is already running
Trait Implementations
Auto Trait Implementations
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.