added basic server messages.
This commit is contained in:
parent
b1be92ed02
commit
042f7e1007
|
|
@ -1,8 +1,7 @@
|
||||||
pub mod client;
|
pub mod client;
|
||||||
mod traits;
|
pub mod traits;
|
||||||
|
|
||||||
// use crate::lib::server::ServerMessages;
|
// use crate::lib::server::ServerMessages;
|
||||||
use crate::lib::server::ServerMessages;
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::sync::Mutex;
|
use std::sync::Mutex;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,27 @@
|
||||||
pub mod client_management;
|
pub mod client_management;
|
||||||
|
|
||||||
|
|
||||||
use std::sync::{Arc, Weak, Mutex};
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::net::TcpListener;
|
use std::net::TcpListener;
|
||||||
|
use std::sync::Arc;
|
||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
use std::io::Read;
|
use std::io::Read;
|
||||||
|
|
||||||
|
use uuid::Uuid;
|
||||||
use crossbeam_channel::{Sender, Receiver, unbounded};
|
use crossbeam_channel::{Sender, Receiver, unbounded};
|
||||||
|
|
||||||
use crate::lib::server::client_management::ClientManager;
|
use crate::lib::server::client_management::ClientManager;
|
||||||
use crate::lib::Foundation::{IOwner, IOwned, ICooperative};
|
use crate::lib::server::client_management::traits::TClientManager;
|
||||||
|
use crate::lib::Foundation::{ICooperative};
|
||||||
use client_management::client::Client;
|
use client_management::client::Client;
|
||||||
use crate::lib::commands::Commands;
|
use crate::lib::commands::Commands;
|
||||||
|
|
||||||
|
/// # ServerMessages
|
||||||
|
/// This is used internally
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub enum ServerMessages {
|
pub enum ServerMessages {
|
||||||
ClientConnected(Arc<Client>),
|
ClientConnected(Arc<Client>),
|
||||||
|
ClientDisconnected(Uuid)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct Server {
|
pub struct Server {
|
||||||
|
|
@ -40,6 +45,10 @@ impl Server {
|
||||||
receiver,
|
receiver,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn send_message(&self, msg: ServerMessages) {
|
||||||
|
self.sender.send(msg).expect("!error sending message to server!")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ICooperative for Server{
|
impl ICooperative for Server{
|
||||||
|
|
@ -80,6 +89,7 @@ impl ICooperative for Server{
|
||||||
for message in self.receiver.iter() {
|
for message in self.receiver.iter() {
|
||||||
match message {
|
match message {
|
||||||
ServerMessages::ClientConnected(client) => println!("client connected: {:?}", client),
|
ServerMessages::ClientConnected(client) => println!("client connected: {:?}", client),
|
||||||
|
ServerMessages::ClientDisconnected(uuid) => {self.client_manager.remove_client(uuid);}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue