reactive_graph_reactive_service_api/
reactive_system.rs1use std::sync::Arc;
2
3use async_trait::async_trait;
4use springtime_di::injectable;
5
6use reactive_graph_behaviour_service_api::BehaviourSystem;
7use reactive_graph_lifecycle::Lifecycle;
8use reactive_graph_type_system_api::TypeSystem;
9
10use crate::ReactiveEntityManager;
11use crate::ReactiveFlowManager;
12use crate::ReactiveInstanceEventManager;
13use crate::ReactiveRelationManager;
14
15#[injectable]
16#[async_trait]
17pub trait ReactiveSystem: Lifecycle {
18 fn get_reactive_entity_manager(&self) -> Arc<dyn ReactiveEntityManager + Send + Sync>;
19
20 fn get_reactive_flow_manager(&self) -> Arc<dyn ReactiveFlowManager + Send + Sync>;
21
22 fn get_reactive_relation_manager(&self) -> Arc<dyn ReactiveRelationManager + Send + Sync>;
23
24 fn get_reactive_instance_event_manager(&self) -> Arc<dyn ReactiveInstanceEventManager + Send + Sync>;
25
26 fn type_system(&self) -> Arc<dyn TypeSystem + Send + Sync>;
27
28 fn behaviour_system(&self) -> Arc<dyn BehaviourSystem + Send + Sync>;
29}