rich_strong_lib/
server.rs

1use mio::{Poll, Events};
2
3use crate::{gate::Gate, log::Log, head::LineType};
4
5pub struct Server {
6    p:Poll,
7    events:Events,
8    gate:Gate
9}
10
11impl Server {
12    pub fn new(addr:String,kind:LineType) -> Server {
13        let p = Poll::new().unwrap();
14        let events = Events::with_capacity(u8::MAX.into());
15        Log::create_dir(kind);
16        Log::create_dir(enum_iterator::next(&kind).unwrap());
17        let gate = Gate::new(addr,kind,&p);
18        Server { p, events , gate }
19    }
20
21    pub fn start(&mut self) {
22        loop {
23            self.p.poll(&mut self.events, None).unwrap();
24            for event in self.events.iter() {
25                self.gate.process(event,&self.p);
26            }
27            //self.gate.hub.update_working_count();
28        }
29    }
30
31    pub fn init(&mut self) {
32        self.gate.hub.init_callers(&self.p);
33    }
34
35}