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/examples/tcp_server.rs | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 core/examples/tcp_server.rs (limited to 'core/examples/tcp_server.rs') diff --git a/core/examples/tcp_server.rs b/core/examples/tcp_server.rs new file mode 100644 index 0000000..6c0e60b --- /dev/null +++ b/core/examples/tcp_server.rs @@ -0,0 +1,43 @@ +use clap::CommandFactory; +use nogamepads::logger_utils::logger_build; +use nogamepads_core::data::game::cli::cli_command::{process_game_cli, GameCli}; +use nogamepads_core::data::game::structs::{GameData, GameRuntimeDataArchive}; +use nogamepads_core::run_services; +use nogamepads_core::service::cli_addition::runtime_consoles::RuntimeConsole; +use nogamepads_core::service::tcp_network::pad_server::structs::PadServerNetwork; +use std::sync::Arc; +use log::LevelFilter::Trace; + +fn main () { + logger_build(Trace); + + // Initialize game data + let mut game = GameData::new(); + game.name("My Game".to_string()); + game.version("0.1".to_string()); + game.load_data( + GameRuntimeDataArchive { + banned: vec![], + } + ); + + // Generate runtime from game data + let runtime = game.runtime(); + + // Establish TCP pad_server using runtime + let tcp_server = PadServerNetwork::build(Arc::clone(&runtime)); + + let server = tcp_server.build_entry(); + + // Cmd + let cmd = RuntimeConsole::build( + GameCli::command(), + "gamecli".to_string(), + Arc::clone(&runtime), + |runtime, cmd: GameCli| { + process_game_cli(runtime, cmd); + } + ).build_entry(); + + run_services!(server, cmd); +} \ No newline at end of file -- cgit