Trait hydro::core::Host

source ·
pub trait Host: Send + Sync {
    // Required methods
    fn target_type(&self) -> HostTargetType;
    fn request_port(&mut self, bind_type: &ServerStrategy);
    fn id(&self) -> usize;
    fn as_any(&self) -> &dyn Any;
    fn as_any_mut(&mut self) -> &mut dyn Any;
    fn request_custom_binary(&mut self);
    fn collect_resources(&self, resource_batch: &mut ResourceBatch);
    fn provision<'life0, 'life1, 'async_trait>(
        &'life0 mut self,
        resource_result: &'life1 Arc<ResourceResult>
    ) -> Pin<Box<dyn Future<Output = Arc<dyn LaunchedHost>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn launched(&self) -> Option<Arc<dyn LaunchedHost>>;
    fn strategy_as_server<'a>(
        &'a self,
        connection_from: &dyn Host
    ) -> Result<(ClientStrategy<'a>, HostStrategyGetter)>;
    fn can_connect_to(&self, typ: ClientStrategy<'_>) -> bool;
}

Required Methods§

source

fn target_type(&self) -> HostTargetType

source

fn request_port(&mut self, bind_type: &ServerStrategy)

source

fn id(&self) -> usize

An identifier for this host, which is unique within a deployment.

source

fn as_any(&self) -> &dyn Any

Returns a reference to the host as a trait object.

source

fn as_any_mut(&mut self) -> &mut dyn Any

Returns a reference to the host as a trait object.

source

fn request_custom_binary(&mut self)

Configures the host to support copying and running a custom binary.

source

fn collect_resources(&self, resource_batch: &mut ResourceBatch)

Makes requests for physical resources (servers) that this host needs to run.

source

fn provision<'life0, 'life1, 'async_trait>( &'life0 mut self, resource_result: &'life1 Arc<ResourceResult> ) -> Pin<Box<dyn Future<Output = Arc<dyn LaunchedHost>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Connects to the acquired resources and prepares the host to run services.

source

fn launched(&self) -> Option<Arc<dyn LaunchedHost>>

source

fn strategy_as_server<'a>( &'a self, connection_from: &dyn Host ) -> Result<(ClientStrategy<'a>, HostStrategyGetter)>

Identifies a network type that this host can use for connections if it is the server. The host will be None if the connection is from the same host as the target.

source

fn can_connect_to(&self, typ: ClientStrategy<'_>) -> bool

Determines whether this host can connect to another host using the given strategy.

Implementors§