1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
//! xcore,is a simple epoll based TCP Server framework. //! # Usage //! ``` //! pub struct Handler { //! map: BTreeSet<i32>, //! } //! impl Handler { //! pub fn add_user(&mut self, fd: i32) { //! self.map.insert(fd); //! } //! } //! // handler executed in different thread //! pub fn handler(fd: i32, //! socket: &mut TcpStream, //! commander: Sender<Ctrl>, //! handle: Arc<RwLock<Handler>>){ //! let wirte_handle = handle.write().unwrap(); //! write_handle.add_user(fd); //! } //! //! fn main() { //! let h = Handler { //! map: BTreeSet::new(), //! }; //! //! let listen: Listener = Listener::new("127.0.0.1:6666"); //! let worker: Executor = Executor::new(2000,4, handler,h); //! //! loop { //! let v = listen.get_stream(); //! match v { //! Some(v) => { //! worker.add(v); //! } //! None => {} //! } //! } //! } //! //! ``` extern crate threadpool; mod epoll_wrapper; mod core_poll; mod listener; mod executor; pub use listener::Listener; pub use executor::Executor; pub use executor::Ctrl;