1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
use crate::tcp_server;
use crate::types::{ self, Metadata };
use crate::udp_server;
use std::sync::mpsc::{channel, Sender};
use std::sync::{Arc, RwLock};
use std::thread;

pub struct DriveServer;

impl DriveServer {
    pub fn listen(lock: &Arc<RwLock<Vec<Metadata>>>, tx: Sender<Metadata>) -> Result<(), std::io::Error> {
        thread::spawn(|| {
            let mdns = udp_server::UdpServer::new();
            mdns.listen().unwrap();
        });

        let mut tcp_server = tcp_server::TcpServer::new(&lock);
        tcp_server.listen(tx).unwrap();

        Ok(())
    }
}