Crate mio_poll_wrapper[][src]

Simple wrapper around mio's Poll method.

extern crate mio;
extern crate mio_poll_wrapper;

use mio_poll_wrapper::PollWrapper;
use mio::net::TcpListener;
use std::collections::HashMap;

fn main() {
    let mut handle = PollWrapper::new().unwrap();

    let listener = TcpListener::bind(&"0.0.0.0:8000".parse().unwrap()).unwrap();

    let process_token = handle.register(&listener).unwrap();
    let mut clients = HashMap::new();

    let result: ::std::io::Result<()> = handle.handle(|event, handle| {
        if event.token() == process_token {
            let (stream, addr) = listener.accept()?;
            println!("Accepted socket from {:?}", addr);
            let token = handle.register(&stream)?;
            clients.insert(token, stream);
        } else if let Some(client) = clients.get_mut(&event.token()) {
            println!("Received data from client {:?}", client.peer_addr());
        }
        Ok(())
    });

    if let Err(e) = result {
        println!("Could not execute: {:?}", e);
    }
}

Structs

Handle

A handle that gets passed to the callback method of PollWrapper.

PollWrapper

A wrapper around mio's Poll method