From 49192dbb98e0ab1f2a66b4786fac86d63f69be64 Mon Sep 17 00:00:00 2001 From: "1992414357@qq.com" <1992414357@qq.com> Date: Mon, 9 Jun 2025 01:44:36 +0800 Subject: 重构所有部分 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/src/data/controller/runtime/implements.rs | 29 ++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 core/src/data/controller/runtime/implements.rs (limited to 'core/src/data/controller/runtime/implements.rs') diff --git a/core/src/data/controller/runtime/implements.rs b/core/src/data/controller/runtime/implements.rs new file mode 100644 index 0000000..b79890e --- /dev/null +++ b/core/src/data/controller/runtime/implements.rs @@ -0,0 +1,29 @@ +use std::collections::{HashMap, VecDeque}; +use std::sync::atomic::Ordering::SeqCst; +use log::trace; +use crate::data::controller::runtime::structs::ControllerRuntime; +use crate::data::message::enums::{ControlMessage, GameMessage}; +use crate::data::message::traits::MessageManager; +use crate::service::service_types::ServiceType; + +/// Message manager for controller-side runtime +/// After the service starts, it can be accessed or relevant messages can be stored. +impl MessageManager for ControllerRuntime { + fn borrow_received_list_mut(&mut self) -> &mut HashMap<(ServiceType, u8), VecDeque> { + &mut self.received + } + + fn borrow_send_list_mut(&mut self) -> &mut HashMap<(ServiceType, u8), VecDeque> { + &mut self.send + } +} + +impl ControllerRuntime { + + pub fn close(&mut self) { + if !self.close.load(SeqCst) { + self.close.store(true, SeqCst); + trace!("[Controller Runtime] Closed."); + } + } +} \ No newline at end of file -- cgit