xcore/
lib.rs

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