Skip to main content

Node

Struct Node 

Source
pub struct Node { /* private fields */ }
Expand description

An actor which helps to manage the IPC connections.

The node can hold multiple IpcListeners to accept incoming IPC connections on several endpoints in parallel. Outbound connections are initiated by sending a Connect<C> command.

Implementations§

Source§

impl Node

Source

pub fn new() -> Self

Constructs a new Node.

Source

pub fn with_listener<L>(self, listener: L) -> Self
where L: IpcListener,

Adds an IPC listener to the node.

If the node already has a listener listening on the same endpoint, the new listener will replace the existing one, since the node is not started yet when this method is available. Note this is not the same as the AddListener command, which will not replace the existing listener.

Source

pub fn with_actor<A, S>(self, label: S, actor: Address<A>) -> Self
where A: Actor + RemoteAddressable, S: AsRef<str>,

Adds an remote addressable actor to the node.

It also registers a label for the actor so that remote actors can look it up by a more user-friendly name.

Duplicate actors and labels are silently skipped.

Source

pub fn with_factory<A>(self) -> Self

Adds an remote spawnable actor factory to the node.

Remote nodes can create instances of this actor type by sending a CreateActor node command.

Trait Implementations§

Source§

impl Actor for Node

Source§

type Context = NodeContext

The execution context type for this actor.
Source§

type Error = NodeError

The error type returned by lifecycle hooks and message handlers.
Source§

async fn post_start( &mut self, _ctx: &mut Self::Context, ) -> Result<(), NodeError>

Invoked after an actor is spawned into the tokio runtime. The actor should be in Starting state. Read more
Source§

async fn post_stop(&mut self, _ctx: &mut Self::Context) -> Result<(), NodeError>

Invoked after an actor is stopped. The actor should be in Stopped state. Read more
Source§

fn pre_start(&mut self, ctx: &mut Self::Context) -> Result<(), Self::Error>

Invoked before an actor is spawned into the tokio runtime. The actor should be in Unstarted state. Read more
Source§

fn stopping( &mut self, ctx: &mut Self::Context, ) -> impl Future<Output = Result<Stopping, Self::Error>> + Send

Invoked when an actor is being stopped. The actor should be in Stopping state. Read more
Source§

fn start<S>( self, label: S, ) -> Result<(Address<Self>, JoinHandle<()>), Self::Error>
where S: AsRef<str>,

Starts an actor, returns its address and the join handle.
Source§

fn create<S, F>( label: S, f: F, ) -> Result<(Address<Self>, JoinHandle<()>), Self::Error>
where S: AsRef<str>, F: FnOnce(&mut Self::Context) -> Result<Self, Self::Error>,

Creates a new actor, starts it and returns its address and the join handle.
Source§

impl Default for Node

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<A> Handler<AddActor<A>> for Node

Source§

type Result = bool

The return type of the handler, which must implement MessageResponse.
Source§

async fn handle( &mut self, msg: AddActor<A>, _ctx: &mut Self::Context, ) -> Self::Result

Handles a message.
Source§

impl<L> Handler<AddListener<L>> for Node
where L: IpcListener,

Source§

type Result = bool

The return type of the handler, which must implement MessageResponse.
Source§

async fn handle( &mut self, msg: AddListener<L>, _ctx: &mut Self::Context, ) -> Self::Result

Handles a message.
Source§

impl<T> Handler<Connect<T>> for Node
where T: IpcConnection,

Source§

type Result = Result<Address<Session>, NodeError>

The return type of the handler, which must implement MessageResponse.
Source§

async fn handle( &mut self, msg: Connect<T>, ctx: &mut Self::Context, ) -> Self::Result

Handles a message.
Source§

impl<A> Handler<RemoteCreateActor<A>> for Node

Source§

type Result = FutureMessageResult<RemoteCreateActor<A>>

The return type of the handler, which must implement MessageResponse.
Source§

async fn handle( &mut self, msg: RemoteCreateActor<A>, _ctx: &mut Self::Context, ) -> Self::Result

Handles a message.
Source§

impl<A> Handler<RemoteGetActor<A>> for Node

Source§

type Result = FutureMessageResult<RemoteGetActor<A>>

The return type of the handler, which must implement MessageResponse.
Source§

async fn handle( &mut self, msg: RemoteGetActor<A>, _ctx: &mut Self::Context, ) -> Self::Result

Handles a message.
Source§

impl Handler<RemoveActor> for Node

Source§

type Result = bool

The return type of the handler, which must implement MessageResponse.
Source§

async fn handle( &mut self, msg: RemoveActor, _ctx: &mut Self::Context, ) -> Self::Result

Handles a message.
Source§

impl Handler<RemoveListener> for Node

Source§

type Result = bool

The return type of the handler, which must implement MessageResponse.
Source§

async fn handle( &mut self, msg: RemoveListener, ctx: &mut Self::Context, ) -> Self::Result

Handles a message.
Source§

impl Handler<SupervisionEvent<Session>> for Node

Source§

type Result = ()

The return type of the handler, which must implement MessageResponse.
Source§

async fn handle( &mut self, msg: SupervisionEvent<Session>, _ctx: &mut Self::Context, ) -> Self::Result

Handles a message.
Source§

impl SubjectActor<NodeEvent> for Node

Source§

fn observers_mut(&mut self) -> &mut ObserverSet<NodeEvent>

Returns a mutable reference to the set of observers for this event type.
Source§

fn register_observer(&mut self, observer: Recipient<Event>)

Registers an observer.
Source§

fn unregister_observer(&mut self, observer: Recipient<Event>)

Unregisters an observer.
Source§

fn notify_observers(&mut self, event: Event) -> impl Future<Output = ()> + Send

Notifies all observers. Read more
Source§

fn try_notify_observers(&mut self, event: Event)

Notifies all observers. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Node

§

impl !UnwindSafe for Node

§

impl Freeze for Node

§

impl Send for Node

§

impl Sync for Node

§

impl Unpin for Node

§

impl UnsafeUnpin for Node

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<A, M> Handler<Observer<M>> for A
where A: SubjectActor<M>, M: Message + Clone,

Source§

type Result = ()

The return type of the handler, which must implement MessageResponse.
Source§

fn handle( &mut self, msg: Observer<M>, ctx: &mut <A as Actor>::Context, ) -> impl Future<Output = <A as Handler<Observer<M>>>::Result> + Send

Handles a message.
Source§

impl<A> Handler<Signal> for A
where A: Actor, <A as Actor>::Context: ActorContext<A>,

Source§

type Result = ()

The return type of the handler, which must implement MessageResponse.
Source§

fn handle( &mut self, msg: Signal, ctx: &mut <A as Actor>::Context, ) -> impl Future<Output = <A as Handler<Signal>>::Result> + Send

Handles a message.
Source§

impl<A> Handler<Supervisor<A>> for A
where A: Actor, <A as Actor>::Context: ActorContext<A>,

Source§

type Result = ()

The return type of the handler, which must implement MessageResponse.
Source§

fn handle( &mut self, msg: Supervisor<A>, ctx: &mut <A as Actor>::Context, ) -> impl Future<Output = <A as Handler<Supervisor<A>>>::Result> + Send

Handles a message.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more