From a4efade392aa7127c373b0247d39274cb0decd10 Mon Sep 17 00:00:00 2001 From: tom barrett Date: Tue, 19 Feb 2019 13:24:25 -0600 Subject: unified all server->client connection and brought logic to modules --- src/server/connection.rs | 74 ------------------------------------------------ 1 file changed, 74 deletions(-) delete mode 100644 src/server/connection.rs (limited to 'src/server/connection.rs') diff --git a/src/server/connection.rs b/src/server/connection.rs deleted file mode 100644 index 92a7531..0000000 --- a/src/server/connection.rs +++ /dev/null @@ -1,74 +0,0 @@ -extern crate serde_json; - -use std::collections::HashMap; -use std::io::prelude::*; -use std::io::BufReader; -use std::net::TcpStream; - -use crate::mass::Mass; -use crate::modules::types::ModuleType; - -pub struct ServerConnection { - pub name: String, - pub module_type: ModuleType, - pub stream: TcpStream, - pub buff_r: BufReader, - pub open: bool, -} - -impl ServerConnection { - pub fn new(mut stream: TcpStream, masses: &mut HashMap) -> ServerConnection { - let mut buff_r = BufReader::new(stream.try_clone().unwrap()); - - let mut recv = String::new(); - buff_r.read_line(&mut recv).unwrap(); - let name = &recv[..recv.find(':').unwrap()]; - - let ship = masses - .entry(name.to_string()) - .or_insert_with(Mass::new_ship); - - let send = serde_json::to_string(&ship.get_modules()).unwrap() + "\n"; - stream.write_all(send.as_bytes()).unwrap(); - - let mut recv = String::new(); - buff_r.read_line(&mut recv).unwrap(); - let module_type: ModuleType = serde_json::from_str(&recv.replace("\n", "")).unwrap(); - - stream.set_nonblocking(true).unwrap(); - ServerConnection { - name: String::from(name), - module_type, - stream, - buff_r, - open: true, - } - } - - pub fn process(&mut self, mut masses: &mut HashMap) { - match self.module_type { - ModuleType::Mining => self.server_mining(&mut masses), - ModuleType::Engines => self.server_engines(&mut masses), - ModuleType::Refinery => self.server_refinery(&mut masses), - ModuleType::Dashboard => self.server_dashboard(&mut masses), - ModuleType::Navigation => self.server_navigation(&mut masses), - ModuleType::Tractorbeam => self.server_tractorbeam(&mut masses), - ModuleType::Construction => self.server_construction(&mut masses), - } - } - - pub fn receive(&mut self) -> String { - let mut recv = String::new(); - match self.buff_r.read_line(&mut recv) { - Ok(result) => { - if result == 0 { - self.open = false; - String::new() - } else { - recv.replace("\n", "") - } - } - Err(_) => String::new(), - } - } -} -- cgit v1.2.3