Trait orchestra::Subsystem

source ·
pub trait Subsystem<Ctx, E>where
    Ctx: SubsystemContext,
    E: Error + Send + Sync + 'static + From<OrchestraError>,
{ fn start(self, ctx: Ctx) -> SpawnedSubsystem<E>; }
Expand description

A trait that describes the Subsystems that can run on the Orchestra.

It is generic over the message type circulating in the system. The idea that we want some type containing persistent state that can spawn actually running subsystems when asked.

Required Methods§

Start this Subsystem and return SpawnedSubsystem.

Implementors§

impl<Net, AD, Context> Subsystem<Context, SubsystemError> for NetworkBridgeTx<Net, AD>where
    Net: Network + Sync,
    AD: AuthorityDiscovery + Clone + Sync,
    Context: NetworkBridgeTxContextTrait + SubsystemContext,
    <Context as NetworkBridgeTxContextTrait>::Sender: NetworkBridgeTxSenderTrait,
    <Context as SubsystemContext>::Sender: NetworkBridgeTxSenderTrait,

impl<Net, AD, Context> Subsystem<Context, SubsystemError> for NetworkBridgeRx<Net, AD>where
    Net: Network + Sync,
    AD: AuthorityDiscovery + Clone + Sync,
    Context: NetworkBridgeRxContextTrait + SubsystemContext,
    <Context as NetworkBridgeRxContextTrait>::Sender: NetworkBridgeRxSenderTrait,
    <Context as SubsystemContext>::Sender: NetworkBridgeRxSenderTrait,

impl<Client, Context> Subsystem<Context, SubsystemError> for ChainApiSubsystem<Client>where
    Client: HeaderBackend<Block> + AuxStore + 'static,
    Context: ChainApiContextTrait + SubsystemContext,
    <Context as ChainApiContextTrait>::Sender: ChainApiSenderTrait,
    <Context as SubsystemContext>::Sender: ChainApiSenderTrait,

impl<Client, Context> Subsystem<Context, SubsystemError> for RuntimeApiSubsystem<Client>where
    Client: RuntimeApiSubsystemClient + Send + Sync + 'static,
    Context: RuntimeApiContextTrait + SubsystemContext,
    <Context as RuntimeApiContextTrait>::Sender: RuntimeApiSenderTrait,
    <Context as SubsystemContext>::Sender: RuntimeApiSenderTrait,

impl<Context> Subsystem<Context, SubsystemError> for DummySubsystemwhere
    Context: SubsystemContext<Signal = OverseerSignal, Error = SubsystemError>,