This commit is contained in:
Carl Lerche
2017-03-10 13:02:04 -08:00
parent 1fe3a57338
commit e2871d92fa
12 changed files with 559 additions and 38 deletions

View File

@@ -1,12 +1,17 @@
#![allow(warnings)]
extern crate futures;
#[macro_use]
extern crate tokio_io;
extern crate tokio_timer;
extern crate bytes;
pub mod error;
pub mod proto;
pub mod frame;
pub use error::{ConnectionError, StreamError, Reason};
use tokio_io::{AsyncRead, AsyncWrite};
use tokio_io::codec::length_delimited;
@@ -16,15 +21,39 @@ pub struct Transport<T> {
inner: length_delimited::FramedRead<T>,
}
pub fn bind<T: AsyncRead + AsyncRead>(io: T) -> Transport<T> {
let framed = length_delimited::Builder::new()
.big_endian()
.length_field_length(3)
.length_adjustment(6)
.num_skip(0) // Don't skip the header
.new_read(io);
impl<T: AsyncRead + AsyncWrite> Transport<T> {
pub fn bind(io: T) -> Transport<T> {
let framed = length_delimited::Builder::new()
.big_endian()
.length_field_length(3)
.length_adjustment(6)
.num_skip(0) // Don't skip the header
.new_read(io);
Transport {
inner: framed,
Transport {
inner: framed,
}
}
}
impl<T: AsyncRead + AsyncWrite> Stream for Transport<T> {
type Item = frame::Frame;
type Error = ConnectionError;
fn poll(&mut self) -> Poll<Option<frame::Frame>, ConnectionError> {
unimplemented!();
}
}
impl<T: AsyncRead + AsyncWrite> Sink for Transport<T> {
type SinkItem = frame::Frame;
type SinkError = ConnectionError;
fn start_send(&mut self, item: frame::Frame) -> StartSend<frame::Frame, ConnectionError> {
unimplemented!();
}
fn poll_complete(&mut self) -> Poll<(), ConnectionError> {
unimplemented!();
}
}