rich_strong_lib/
server.rs1use 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 }
29 }
30
31 pub fn init(&mut self) {
32 self.gate.hub.init_callers(&self.p);
33 }
34
35}