[−][src]Struct actix::registry::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)] #[rtype(result = "()")] 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 = MyActor1::from_registry(); act.do_send(Ping); } } fn main() { // initialize system let code = System::run(|| { // Start MyActor2 in new Arbiter Arbiter::new().exec_fn(|| { MyActor2.start(); }); }); }
Implementations
impl Registry
[src]
pub fn get<A: ArbiterService + Actor<Context = Context<A>>>(&self) -> Addr<A>
[src]
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: ArbiterService + Actor<Context = Context<A>>>(
&self
) -> Option<Addr<A>>
[src]
&self
) -> Option<Addr<A>>
Check if actor is in registry, if so, return its address
pub fn set<A: ArbiterService + Actor<Context = Context<A>>>(addr: Addr<A>)
[src]
Add new actor to the registry by address, panic if actor is already running
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Registry
[src]
impl !Send for Registry
[src]
impl !Sync for Registry
[src]
impl Unpin for Registry
[src]
impl !UnwindSafe for Registry
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut Tⓘ
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> 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.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,