blob: b79890ecc263c55cbaec785f7c9b2206349965ae (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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<GameMessage, ControlMessage, u8> for ControllerRuntime {
fn borrow_received_list_mut(&mut self) -> &mut HashMap<(ServiceType, u8), VecDeque<GameMessage>> {
&mut self.received
}
fn borrow_send_list_mut(&mut self) -> &mut HashMap<(ServiceType, u8), VecDeque<ControlMessage>> {
&mut self.send
}
}
impl ControllerRuntime {
pub fn close(&mut self) {
if !self.close.load(SeqCst) {
self.close.store(true, SeqCst);
trace!("[Controller Runtime] Closed.");
}
}
}
|