Host

Struct Host 

Source
pub struct Host {
    pub stop_tx: Sender<Option<Instant>>,
    pub stop_rx: Receiver<Option<Instant>>,
    /* private fields */
}
Expand description

wasmCloud Host Represents the core host structure for managing components, providers, links, and other functionalities in a wasmCloud host environment.

Fields§

§stop_tx: Sender<Option<Instant>>

A channel to send a stop event to the host, signaling it to shut down.

§stop_rx: Receiver<Option<Instant>>

A channel to receive a stop event from the host, signaling it to shut down.

Implementations§

Source§

impl Host

Source

pub fn builder() -> HostBuilder

Create a new HostBuilder

Source

pub async fn stopped(&self) -> Result<Option<Instant>>

Waits for host to be stopped via lattice commands and returns the shutdown deadline on success

§Errors

Returns an error if internal stop channel is closed prematurely

Source

pub fn id(&self) -> String

Returns the host’s unique identifier

Source

pub fn lattice(&self) -> &str

Returns the lattice the host is running on

Trait Implementations§

Source§

impl ControlInterfaceServer for Host

Handle a new link by modifying the relevant source crate::wasmbus::ComponentSpecification.

Remove an interface link on a source component for a specific package

Source§

fn handle_auction_component<'life0, 'async_trait>( &'life0 self, request: ComponentAuctionRequest, ) -> Pin<Box<dyn Future<Output = Result<Option<CtlResponse<ComponentAuctionAck>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Handle an auction request for a component. This method should return Ok(None) if the host does not want to respond to the auction request.
Source§

fn handle_auction_provider<'life0, 'async_trait>( &'life0 self, request: ProviderAuctionRequest, ) -> Pin<Box<dyn Future<Output = Result<Option<CtlResponse<ProviderAuctionAck>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Handle an auction request for a provider. This method should return Ok(None) if the host does not want to respond to the auction request.
Source§

fn handle_stop_host<'life0, 'async_trait>( &'life0 self, request: StopHostCommand, ) -> Pin<Box<dyn Future<Output = Result<CtlResponse<()>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Handle a request to stop the host. This method should return a response indicating success or failure.
Source§

fn handle_scale_component<'async_trait>( self: Arc<Self>, request: ScaleComponentCommand, ) -> Pin<Box<dyn Future<Output = Result<CtlResponse<()>>> + Send + 'async_trait>>
where Self: 'async_trait,

Handle a request to scale a component. This method should return a response indicating success or failure.
Source§

fn handle_update_component<'async_trait>( self: Arc<Self>, request: UpdateComponentCommand, ) -> Pin<Box<dyn Future<Output = Result<CtlResponse<()>>> + Send + 'async_trait>>
where Self: 'async_trait,

Handle a request to update a component. This method should return a response indicating success or failure.
Source§

fn handle_start_provider<'async_trait>( self: Arc<Self>, request: StartProviderCommand, ) -> Pin<Box<dyn Future<Output = Result<Option<CtlResponse<()>>>> + Send + 'async_trait>>
where Self: 'async_trait,

Handle a request to start a provider. This method should return a response indicating success or failure.
Source§

fn handle_stop_provider<'life0, 'async_trait>( &'life0 self, request: StopProviderCommand, ) -> Pin<Box<dyn Future<Output = Result<CtlResponse<()>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Handle a request to stop a provider. This method should return a response indicating success or failure.
Source§

fn handle_inventory<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<CtlResponse<HostInventory>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Handle a request to get the host inventory. This method should return a response containing the host inventory.
Source§

fn handle_claims<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<CtlResponse<Vec<HashMap<String, String>>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Handle a request to get the claims for all components and providers. This method should return a response containing the claims.
Handle a request to get the links for all components. This method should return a response containing the links.
Source§

fn handle_config_get<'life0, 'life1, 'async_trait>( &'life0 self, config_name: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Handle a request to get the configuration for a specific key. This method should return a response containing the configuration.
Source§

fn handle_config_delete<'life0, 'life1, 'async_trait>( &'life0 self, config_name: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<CtlResponse<()>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Handle a request to delete the configuration for a specific key. This method should return a response indicating success or failure.
Source§

fn handle_label_put<'life0, 'life1, 'async_trait>( &'life0 self, request: HostLabel, host_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<CtlResponse<()>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Handle a request to put a label on the host. This method should return a response indicating success or failure.
Source§

fn handle_label_del<'life0, 'life1, 'async_trait>( &'life0 self, request: HostLabelIdentifier, host_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<CtlResponse<()>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Handle a request to delete a label from the host. This method should return a response indicating success or failure.
Source§

fn handle_registries_put<'life0, 'async_trait>( &'life0 self, request: HashMap<String, RegistryCredential>, ) -> Pin<Box<dyn Future<Output = Result<CtlResponse<()>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Handle a request to put registry credentials. This method should return a response indicating success or failure.
Source§

fn handle_config_put<'life0, 'life1, 'async_trait>( &'life0 self, config_name: &'life1 str, data: Bytes, ) -> Pin<Box<dyn Future<Output = Result<CtlResponse<()>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Handle a request to put configuration data. This method should return a response indicating success or failure.
Source§

fn handle_ping_hosts<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<CtlResponse<Host>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Handle a request to ping all hosts in the lattice. This method should return a response containing the host data.

Auto Trait Implementations§

§

impl !Freeze for Host

§

impl !RefUnwindSafe for Host

§

impl Send for Host

§

impl Sync for Host

§

impl Unpin for Host

§

impl !UnwindSafe for Host

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<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T> GetSetFdFlags for T

Source§

fn get_fd_flags(&self) -> Result<FdFlags, Error>
where T: AsFilelike,

Query the “status” flags for the self file descriptor.
Source§

fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>
where T: AsFilelike,

Create a new SetFdFlags value for use with set_fd_flags. Read more
Source§

fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>
where T: AsFilelike,

Set the “status” flags for the self file descriptor. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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