Implement close() from Sink (#492)

This commit is contained in:
Pierre Krieger
2018-09-17 15:01:37 +02:00
committed by GitHub
parent 3e53a9dcc7
commit 0c43c76965
9 changed files with 41 additions and 1 deletions

View File

@ -177,6 +177,11 @@ impl<T> Sink for Chan<T> {
fn poll_complete(&mut self) -> Poll<(), Self::SinkError> {
self.outgoing.poll_complete().map_err(|_| io::ErrorKind::ConnectionReset.into())
}
#[inline]
fn close(&mut self) -> Poll<(), Self::SinkError> {
self.outgoing.close().map_err(|_| io::ErrorKind::ConnectionReset.into())
}
}
impl<T: IntoBuf> Into<RwStreamSink<Chan<T>>> for Chan<T> {

View File

@ -211,6 +211,11 @@ where
fn poll_complete(&mut self) -> Poll<(), Self::SinkError> {
self.inner.poll_complete()
}
#[inline]
fn close(&mut self) -> Poll<(), Self::SinkError> {
self.inner.close()
}
}
fn decode_length_prefix(buf: &[u8]) -> u16 {

View File

@ -106,6 +106,11 @@ where
fn poll_complete(&mut self) -> Poll<(), Self::SinkError> {
Ok(self.inner.poll_complete()?)
}
#[inline]
fn close(&mut self) -> Poll<(), Self::SinkError> {
Ok(self.inner.close()?)
}
}
impl<R> Stream for Dialer<R>

View File

@ -132,6 +132,11 @@ where
fn poll_complete(&mut self) -> Poll<(), Self::SinkError> {
Ok(self.inner.poll_complete()?)
}
#[inline]
fn close(&mut self) -> Poll<(), Self::SinkError> {
Ok(self.inner.close()?)
}
}
impl<R> Stream for Listener<R>

View File

@ -196,6 +196,9 @@ mod tests {
fn poll_complete(&mut self) -> Poll<(), Self::SinkError> {
self.1.poll_complete()
}
fn close(&mut self) -> Poll<(), Self::SinkError> {
self.1.close()
}
}
#[test]

View File

@ -438,6 +438,9 @@ mod tests {
fn poll_complete(&mut self) -> Poll<(), Self::SinkError> {
self.1.poll_complete()
}
fn close(&mut self) -> Poll<(), Self::SinkError> {
self.1.close()
}
}
fn build_test() -> (KadConnecController, impl Stream<Item = KadIncomingRequest, Error = IoError>, KadConnecController, impl Stream<Item = KadIncomingRequest, Error = IoError>) {

View File

@ -125,4 +125,9 @@ where
fn poll_complete(&mut self) -> Poll<(), Self::SinkError> {
self.raw_stream.poll_complete()
}
#[inline]
fn close(&mut self) -> Poll<(), Self::SinkError> {
self.raw_stream.close()
}
}

View File

@ -63,7 +63,6 @@ where
type SinkError = S::SinkError;
fn start_send(&mut self, mut data_buf: Self::SinkItem) -> StartSend<Self::SinkItem, Self::SinkError> {
// TODO if SinkError gets refactor to SecioError,
// then use try_apply_keystream
self.cipher_state.apply_keystream(&mut data_buf[..]);
@ -77,6 +76,11 @@ where
fn poll_complete(&mut self) -> Poll<(), Self::SinkError> {
self.raw_sink.poll_complete()
}
#[inline]
fn close(&mut self) -> Poll<(), Self::SinkError> {
self.raw_sink.close()
}
}
impl<S> Stream for EncoderMiddleware<S>

View File

@ -436,6 +436,11 @@ where
fn poll_complete(&mut self) -> Poll<(), Self::SinkError> {
self.inner.poll_complete()
}
#[inline]
fn close(&mut self) -> Poll<(), Self::SinkError> {
self.inner.close()
}
}
impl<S> Stream for SecioMiddleware<S>