From a1f77298c731eb148f358954ae69d157b1bc0bce Mon Sep 17 00:00:00 2001 From: Horhik Date: Fri, 26 Mar 2021 23:25:30 +0300 Subject: [PATCH] add adbity to send to client thread from server_thread_receiver_handler (to_server_sender) --- src/api/handlers.rs | 12 ++++++++++-- src/api/selector.rs | 1 + src/chat/serv_conn.rs | 3 ++- src/chat/serv_handler.rs | 2 +- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/api/handlers.rs b/src/api/handlers.rs index ca323ff..fdb16f1 100644 --- a/src/api/handlers.rs +++ b/src/api/handlers.rs @@ -2,19 +2,25 @@ use super::request::*; use crate::chat::types::SP; use async_std::io::Result; use rusqlite::Connection; +use crate::db::{messages, users}; +use crate::chat::types::PackedMessage; pub fn start_app(request: StartAppReq, server_sender: &SP) -> Result<()> { Ok(()) + //sending *JSON*, what everything is OK } pub fn stop_app(request: StopAppReq, conn: &Connection, server_sender: &SP) -> Result<()> { - unimplemented!() + std::process::exit(0) } pub fn load_users(request: LoadUsersReq, conn: &Connection, server_sender: &SP) -> Result<()> { - unimplemented!() + let users = users::load_all_users(conn); + unimplemented!(); + //sending *JSON* } pub fn send_message(request: SendMessageReq, conn: &Connection, server_sender: &SP) -> Result<()> { unimplemented!() + //sending FCP request } pub fn load_messages( @@ -23,7 +29,9 @@ pub fn load_messages( server_sender: &SP, ) -> Result<()> { unimplemented!() + //sending *JSON* } pub fn add_user(request: AddUserReq, conn: &Connection, server_sender: &SP) -> Result<()> { unimplemented!() + //sending *JSON* what user is created } diff --git a/src/api/selector.rs b/src/api/selector.rs index 466f24c..f913a00 100644 --- a/src/api/selector.rs +++ b/src/api/selector.rs @@ -17,6 +17,7 @@ pub async fn request_selector(json: String, server_sender: &SP, conn: &Connectio } if let Ok(res) = from_str::(&json) { handlers::stop_app(res, conn, server_sender)? + } if let Ok(res) = from_str::(&json) { handlers::load_users(res, conn, server_sender)? diff --git a/src/chat/serv_conn.rs b/src/chat/serv_conn.rs index 1468da4..91cc033 100644 --- a/src/chat/serv_conn.rs +++ b/src/chat/serv_conn.rs @@ -18,10 +18,11 @@ async fn connect_to_server(client_sender: SP, server_receiver: RP) -> io::Result .nth(1) .unwrap_or_else(|| "127.0.0.1:9481".to_string()); + let sr = client_sender.clone(); let stream = TcpStream::connect(&addr).await.expect("weeror here"); let (receiver, sender) = stream.into_split(); let t = task::spawn(server_responce_getter(receiver, client_sender)); - to_server_sender(sender, server_receiver).await?; + to_server_sender(sender, server_receiver, sr).await?; match t.await { Ok(_) => Ok(()), Err(e) => Err(e), diff --git a/src/chat/serv_handler.rs b/src/chat/serv_handler.rs index ca71970..5654659 100644 --- a/src/chat/serv_handler.rs +++ b/src/chat/serv_handler.rs @@ -9,7 +9,7 @@ use tokio::{ use fcpv2::client::fcp_types::{ClientHello, ClientPut}; use fcpv2::types::{traits::{FcpRequest, FcpParser}, SSK} ; -pub async fn to_server_sender(mut sender: OwnedWriteHalf, server_receiver: RP) -> io::Result<()> { +pub async fn to_server_sender(mut sender: OwnedWriteHalf, server_receiver: RP, client_sender: SP) -> io::Result<()> { while let Ok(res) = server_receiver.recv() { //TODO from_core_to_server_handler if res.message == "STARTAPP!" {