aboutsummaryrefslogtreecommitdiff
path: root/core/examples/tcp_server.rs
diff options
context:
space:
mode:
author1992414357@qq.com <1992414357@qq.com>2025-06-09 01:44:36 +0800
committer1992414357@qq.com <1992414357@qq.com>2025-06-09 01:44:36 +0800
commit49192dbb98e0ab1f2a66b4786fac86d63f69be64 (patch)
tree7cdf27c7cab5fb6b1aabc2ac7c44b7b492558945 /core/examples/tcp_server.rs
parentc9dbba0d288becb7f05cebe526be25c76e5a850a (diff)
重构所有部分
Diffstat (limited to 'core/examples/tcp_server.rs')
-rw-r--r--core/examples/tcp_server.rs43
1 files changed, 43 insertions, 0 deletions
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