From 18ecddcb3cb51c19d6c9cab8798daf44f8f4e56b Mon Sep 17 00:00:00 2001 From: "1992414357@qq.com" <1992414357@qq.com> Date: Tue, 27 May 2025 10:31:24 +0800 Subject: 1. 将PadClient中的消息队列从Vec替换为VecDeque 2. 将convert_deque_to_vec方法移至nogamepads 3. 将server和client的运行时cli中的print宏换为log中的宏 4. 重命名debug_console.rs为console_utils.rs 5. 重命名logger.rs为logger_utils.rs 6. 将PadServer方法start_listening改为start_server 7. 编写了README.md 8. 优化了发布脚本 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/src/pad_io/client.rs | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) (limited to 'core/src/pad_io/client.rs') diff --git a/core/src/pad_io/client.rs b/core/src/pad_io/client.rs index 2969742..bd8bc2c 100644 --- a/core/src/pad_io/client.rs +++ b/core/src/pad_io/client.rs @@ -1,4 +1,5 @@ pub mod nogamepads_client { + use std::collections::VecDeque; use crate::pad_data::pad_messages::nogamepads_message_transfer::{read_msg, send_msg}; use crate::pad_data::pad_messages::nogamepads_messages::{ConnectionCallbackMessage, ConnectionErrorType, ConnectionMessage, ControlMessage, GameMessage, LeaveReason}; use crate::pad_data::pad_player_info::nogamepads_player_info::PlayerInfo; @@ -13,15 +14,16 @@ pub mod nogamepads_client { use tokio::io::{AsyncReadExt, AsyncWriteExt, ReadHalf, WriteHalf}; use tokio::net::TcpStream; use tokio::{io, spawn}; - use nogamepads::debug_console::debug_console::read_cli; - use nogamepads::logger::logger_build; + use nogamepads::console_utils::debug_console::read_cli; + use nogamepads::convert_utils::convert_deque_to_vec; + use nogamepads::logger_utils::logger_build; use crate::pad_io::client_debug_cli::{process_debug_cmd, Pcc}; use crate::DEFAULT_PORT; use crate::pad_data::game_profile::game_profile::GameProfile; use crate::pad_data::pad_messages::nogamepads_message_encoder::NgpdMessageEncoder; - type WriteList = Arc>>; - type ReadList = Arc>>; + type WriteList = Arc>>; + type ReadList = Arc>>; pub struct PadClient { @@ -108,20 +110,16 @@ pub mod nogamepads_client { pub fn put_msg(&self, msg: ControlMessage) { - { - let mut guard = self.write_list.lock().unwrap(); - guard.push(msg); - } + let mut guard = self.write_list.lock().unwrap(); + guard.push_back(msg); } pub fn pop_a_msg(&self) -> Option { - { - let mut guard = self.read_list.lock().unwrap(); - if ! guard.is_empty() { - Some(guard.remove(0)) - } else { - None - } + let mut guard = self.read_list.lock().unwrap(); + if !guard.is_empty() { + guard.pop_front() + } else { + None } } @@ -132,7 +130,7 @@ pub mod nogamepads_client { pub fn list_received(&self) -> Vec { match self.read_list.lock() { Ok(guard) => { - guard.to_vec() + convert_deque_to_vec(&guard.to_owned()) } Err(_) => { Vec::new() } } @@ -143,7 +141,7 @@ pub mod nogamepads_client { impl PadClient { pub fn connect(self) { - + self.exit.store(false, SeqCst); // 构建 Logger @@ -238,7 +236,7 @@ pub mod nogamepads_client { } } - async fn check_server_profile (self: &Arc, buffer: &mut [u8], addr_str: String) -> Option { + async fn check_server_profile(self: &Arc, buffer: &mut [u8], addr_str: String) -> Option { match TcpStream::connect(&addr_str).await { Ok(mut stream) => { send_msg(&mut stream, ConnectionMessage::RequestProfile).await; @@ -363,7 +361,7 @@ pub mod nogamepads_client { } _ => { info!("{:?}", &msg); - guard.push(msg); + guard.push_back(msg); } } } @@ -388,9 +386,10 @@ pub mod nogamepads_client { match lock { Ok(mut guard) => { if ! guard.is_empty() { - msg = Some(guard.remove(0)); + msg = guard.pop_front(); + } else { + msg = None; } - else { msg = None; } } Err(_) => { msg = None; -- cgit