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§
fn target_type(&self) -> HostTargetType
fn request_port(&mut self, bind_type: &ServerStrategy)
sourcefn as_any_mut(&mut self) -> &mut dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
Returns a reference to the host as a trait object.
sourcefn request_custom_binary(&mut self)
fn request_custom_binary(&mut self)
Configures the host to support copying and running a custom binary.
sourcefn collect_resources(&self, resource_batch: &mut ResourceBatch)
fn collect_resources(&self, resource_batch: &mut ResourceBatch)
Makes requests for physical resources (servers) that this host needs to run.
sourcefn 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 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.
fn launched(&self) -> Option<Arc<dyn LaunchedHost>>
sourcefn strategy_as_server<'a>(
&'a self,
connection_from: &dyn Host
) -> Result<(ClientStrategy<'a>, HostStrategyGetter)>
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.
sourcefn can_connect_to(&self, typ: ClientStrategy<'_>) -> bool
fn can_connect_to(&self, typ: ClientStrategy<'_>) -> bool
Determines whether this host can connect to another host using the given strategy.