changed self pointer to static

This commit is contained in:
Mitch161 2020-07-18 20:36:59 +01:00
parent 9d234b2393
commit f4b9bdbb51
1 changed files with 7 additions and 8 deletions

View File

@ -14,17 +14,17 @@ use dashmap::DashMap;
use std::io::prelude::*;
use regex::Regex;
pub struct Server<'server_lifetime> {
pub struct Server {
name: String,
address: String,
author: String,
connected_clients: Arc<Mutex<HashMap<String,&'server_lifetime Client<'server_lifetime>>>>,
connected_clients: Arc<Mutex<HashMap<String, Sender<Commands>>>>,
thread_pool: ThreadPool,
}
// MARK: - server implemetation
impl<'server_lifetime> Server<'server_lifetime> {
pub fn new(name: &String, address: &String, author: &String) -> Server<'server_lifetime> {
impl Server {
pub fn new(name: &String, address: &String, author: &String) -> Server {
Server{
name: name.to_string(),
address: address.to_string(),
@ -38,7 +38,7 @@ impl<'server_lifetime> Server<'server_lifetime> {
&self.address
}
pub fn start(&'server_lifetime self) {
pub fn start(&'static self) {
let listener = TcpListener::bind(self.get_address()).unwrap();
let mut buffer = [0; 1024];
@ -65,7 +65,7 @@ impl<'server_lifetime> Server<'server_lifetime> {
let mut clients_hashmap = self.connected_clients.lock().unwrap();
clients_hashmap.insert(uuid.to_string(), &client);
clients_hashmap.insert(uuid.to_string(), client.get_transmitter().clone());
self.thread_pool.execute(move || {
client.handle_connection();
@ -105,8 +105,7 @@ impl<'server_lifetime> Server<'server_lifetime> {
pub fn update_all_clients(&self, command: Commands){
let clients = self.connected_clients.lock().unwrap();
for client in clients.values(){
let tx = client.get_transmitter();
for tx in clients.values(){
tx.send(command.clone()).unwrap();
}
}