adding new impls from tokio_io

This commit is contained in:
NikVolf 2017-04-21 01:16:51 +03:00
parent 247850cfcf
commit 7a6f00d945
2 changed files with 26 additions and 12 deletions

View File

@ -5,11 +5,12 @@ authors = ["NikVolf <nikvolf@gmail.com>"]
[dependencies]
tokio-uds = "0.1"
tokio-named-pipes = { git = "https://github.com/alexcrichton/tokio-named-pipes" }
tokio-named-pipes = { git = "https://github.com/nikvolf/tokio-named-pipes" }
futures = "0.1"
tokio-core = "0.1"
tokio-line = { git = "https://github.com/tokio-rs/tokio-line" }
tokio-io = "0.1"
rand = "0.3"
mio-named-pipes = { git = "https://github.com/alexcrichton/mio-named-pipes" }
miow = "0.2"
log = "*"
bytes = "0.4"

View File

@ -5,6 +5,8 @@ extern crate futures;
extern crate tokio_uds;
extern crate tokio_named_pipes;
extern crate tokio_core;
extern crate tokio_io;
extern crate bytes;
#[macro_use] extern crate log;
#[cfg(windows)]
@ -14,8 +16,10 @@ use std::io::{self, Read, Write};
use futures::{Async, Poll};
use futures::stream::Stream;
use tokio_core::io::Io;
#[allow(deprecated)] use tokio_core::io::Io;
use tokio_io::{AsyncRead, AsyncWrite};
use tokio_core::reactor::Handle;
use bytes::{BufMut, Buf};
#[cfg(windows)]
use tokio_named_pipes::NamedPipe;
@ -207,6 +211,7 @@ impl Write for IpcStream {
}
}
#[allow(deprecated)]
impl Io for IpcStream {
fn poll_read(&mut self) -> Async<()> {
self.inner.poll_read()
@ -217,14 +222,23 @@ impl Io for IpcStream {
}
}
impl IpcStream {
#[allow(unused_variables)]
pub fn shutdown(&self, how: ::std::net::Shutdown) -> io::Result<()> {
if cfg!(not(windows)) {
self.inner.shutdown(how)
} else {
Ok(())
}
impl AsyncRead for IpcStream {
unsafe fn prepare_uninitialized_buffer(&self, b: &mut [u8]) -> bool {
self.inner.prepare_uninitialized_buffer(b)
}
fn read_buf<B: BufMut>(&mut self, buf: &mut B) -> Poll<usize, io::Error> {
self.inner.read_buf(buf)
}
}
impl AsyncWrite for IpcStream {
fn shutdown(&mut self) -> Poll<(), io::Error> {
self.inner.shutdown()
}
fn write_buf<B: Buf>(&mut self, buf: &mut B) -> Poll<usize, io::Error> {
self.inner.write_buf(buf)
}
}
@ -232,7 +246,6 @@ impl IpcStream {
#[cfg(windows)]
mod tests {
extern crate rand;
extern crate tokio_line;
use std::thread;
use tokio_core::reactor::Core;