single-user service manager
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495use crate::apogee_core_v1::{ apogee_condition_v1, apogee_manager_v1, apogee_reload_v1, apogee_service_v1, apogee_task_v1,};use bevy_ecs::prelude::*;use bevy_ecs::schedule::ScheduleLabel;use std::collections::{BTreeMap, HashMap};use std::sync;
#[derive(ScheduleLabel, Clone, Debug, PartialEq, Eq, Hash)]pub struct Reconcile;
#[derive(Resource, Default)]pub struct TaskRegistry { pub by_name: BTreeMap<sync::Arc<str>, Entity>, pub by_object: HashMap<apogee_task_v1::ApogeeTaskV1, Entity>,}
#[derive(Resource, Default)]pub struct ServiceRegistry { pub by_name: BTreeMap<sync::Arc<str>, Entity>, pub by_object: HashMap<apogee_service_v1::ApogeeServiceV1, Entity>,}
#[derive(Resource, Default)]pub struct ConditionRegistry { pub by_name: BTreeMap<sync::Arc<str>, Entity>, pub by_object: HashMap<apogee_condition_v1::ApogeeConditionV1, Entity>,}
#[derive(Resource, Default)]pub struct Managers(pub Vec<apogee_manager_v1::ApogeeManagerV1>);
impl Managers { pub fn service_added(&self, name: &str) { for manager in self .0 .iter() .filter(|manager| manager.try_client().is_some()) { manager.send_service_added(name); } }
pub fn service_removed(&self, name: &str) { for manager in self .0 .iter() .filter(|manager| manager.try_client().is_some()) { manager.send_service_removed(name); } }
pub fn task_added(&self, name: &str) { for manager in self .0 .iter() .filter(|manager| manager.try_client().is_some()) { manager.send_task_added(name); } }
pub fn task_removed(&self, name: &str) { for manager in self .0 .iter() .filter(|manager| manager.try_client().is_some()) { manager.send_task_removed(name); } }
pub fn condition_added(&self, name: &str) { for manager in self .0 .iter() .filter(|manager| manager.try_client().is_some()) { manager.send_condition_added(name); } }}
#[derive(Event)]pub struct ReloadRequested(pub Option<apogee_reload_v1::ApogeeReloadV1>);
#[derive(Resource, Clone)]pub struct LoopSignal(pub calloop::LoopSignal);
#[derive(Event)]pub struct RestartRequested(pub Entity);
pub struct LoopHandle(pub calloop::LoopHandle<'static, crate::Apogee>);