Struct ockam_node::Context[][src]

pub struct Context { /* fields omitted */ }
Expand description

Context contains Node state and references to the runtime.

Implementations

impl Context[src]

pub fn runtime(&self) -> Arc<Runtime>[src]

Return runtime clone

impl Context[src]

pub fn address(&self) -> Address[src]

Return the primary worker address

pub fn aliases(&self) -> AddressSet[src]

Return all addresses of this worker

pub async fn new_context<S: Into<Address>>(&self, addr: S) -> Result<Context>[src]

Create a new context without spawning a full worker

pub async fn start_worker<NM, NW, S>(
    &self,
    address: S,
    worker: NW
) -> Result<()> where
    S: Into<AddressSet>,
    NM: Message + Send + 'static,
    NW: Worker<Context = Context, Message = NM>, 
[src]

Start a new worker handle at Address

pub async fn stop(&mut self) -> Result<()>[src]

Signal to the local application runner to shut down

pub async fn stop_worker<A: Into<Address>>(&self, addr: A) -> Result<()>[src]

Shut down a worker by its primary address

pub async fn send<R, M>(&self, route: R, msg: M) -> Result<()> where
    R: Into<Route>,
    M: Message + Send + 'static, 
[src]

Send a message via a fully qualified route

Routes can be constructed from a set of Addresses, or via the RouteBuilder type. Routes can contain middleware router addresses, which will re-address messages that need to be handled by specific domain workers.

pub async fn send_from_address<R, M>(
    &self,
    route: R,
    msg: M,
    sending_address: Address
) -> Result<()> where
    R: Into<Route>,
    M: Message + Send + 'static, 
[src]

Send a message via a fully qualified route using specific Worker address

Routes can be constructed from a set of Addresses, or via the RouteBuilder type. Routes can contain middleware router addresses, which will re-address messages that need to be handled by specific domain workers.

pub async fn forward(&self, data: TransportMessage) -> Result<()>[src]

Forward a transport message to its next routing destination

Similar to [Context::send_message], but taking a TransportMessage, which contains the full destination route, and calculated return route for this hop.

Note: you most likely want to use [Context::send_message] instead, unless you are writing an external router implementation for ockam node.

pub async fn receive<'ctx, M: Message>(
    &'ctx mut self
) -> Result<Cancel<'ctx, M>>
[src]

Block the current worker to wait for a typed message

This function may return a Err(FailedLoadData) if the underlying worker was shut down, or Err(Timeout) if the call was waiting for longer than the default timeout. Use receive_timeout to adjust the timeout period.

Will return None if the corresponding worker has been stopped, or the underlying Node has shut down.

pub async fn receive_timeout<'ctx, M: Message>(
    &'ctx mut self,
    timeout_secs: u64
) -> Result<Cancel<'ctx, M>>
[src]

Block to wait for a typed message, with explicit timeout

pub async fn receive_match<'ctx, M, F>(
    &'ctx mut self,
    check: F
) -> Result<Cancel<'ctx, M>> where
    M: Message,
    F: Fn(&M) -> bool
[src]

Block the current worker to wait for a message satisfying a conditional

Will return Err if the corresponding worker has been stopped, or the underlying node has shut down. This operation has a default timeout.

Internally this function calls receive and .cancel() in a loop until a matching message is found.

pub async fn list_workers(&self) -> Result<Vec<Address>>[src]

Return a list of all available worker addresses on a node

pub async fn register<A: Into<Address>>(&self, type_: u8, addr: A) -> Result<()>[src]

Register a router for a specific address type

Trait Implementations

impl Drop for Context[src]

fn drop(&mut self)[src]

Executes the destructor for this type. Read more

Auto Trait Implementations

impl !RefUnwindSafe for Context

impl Send for Context

impl Sync for Context

impl Unpin for Context

impl !UnwindSafe for Context

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T> Instrument for T[src]

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

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

fn in_current_span(self) -> Instrumented<Self>[src]

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

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

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]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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]

Performs the conversion.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

pub fn vzip(self) -> V