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;