core/muxing: Remove the StreamMuxer::flush_all function (#2669)

`libp2p-core` provides the `StreamMuxer` abstraction so it can provide
functionality that abstracts over this trait.

We never use the `flush_all` function as part of our abstractions.
No one else is going to use it so we can remove it from the abstraction.
This commit is contained in:
Thomas Eizinger 2022-05-29 17:23:13 +02:00 committed by GitHub
parent 25c8bc24de
commit 2b79f113bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 5 additions and 39 deletions

View File

@ -1,12 +1,15 @@
# 0.33.0 [unreleased] # 0.33.0 [unreleased]
- Have methods on `Transport` take `&mut self` instead of `self`. See [PR 2529]. - Have methods on `Transport` take `&mut self` instead of `self`. See [PR 2529].
- Remove `StreamMuxer::flush_all`. See [PR 2669].
- Rename `StreamMuxer::close` to `StreamMuxer::poll_close`. See [PR 2666]. - Rename `StreamMuxer::close` to `StreamMuxer::poll_close`. See [PR 2666].
- Remove deprecated function `StreamMuxer::is_remote_acknowledged`. See [PR 2665]. - Remove deprecated function `StreamMuxer::is_remote_acknowledged`. See [PR 2665].
[PR 2529]: https://github.com/libp2p/rust-libp2p/pull/2529 [PR 2529]: https://github.com/libp2p/rust-libp2p/pull/2529
[PR 2666]: https://github.com/libp2p/rust-libp2p/pull/2666 [PR 2666]: https://github.com/libp2p/rust-libp2p/pull/2666
[PR 2665]: https://github.com/libp2p/rust-libp2p/pull/2665 [PR 2665]: https://github.com/libp2p/rust-libp2p/pull/2665
[PR 2669]: https://github.com/libp2p/rust-libp2p/pull/2669
# 0.32.1 # 0.32.1

View File

@ -352,13 +352,6 @@ where
EitherOutput::Second(inner) => inner.poll_close(cx).map_err(|e| e.into()), EitherOutput::Second(inner) => inner.poll_close(cx).map_err(|e| e.into()),
} }
} }
fn flush_all(&self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
match self {
EitherOutput::First(inner) => inner.flush_all(cx).map_err(|e| e.into()),
EitherOutput::Second(inner) => inner.flush_all(cx).map_err(|e| e.into()),
}
}
} }
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]

View File

@ -216,13 +216,6 @@ pub trait StreamMuxer {
/// > properly informing the remote, there is no difference between this and /// > properly informing the remote, there is no difference between this and
/// > immediately dropping the muxer. /// > immediately dropping the muxer.
fn poll_close(&self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>; fn poll_close(&self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>;
/// Flush this `StreamMuxer`.
///
/// This drains any write buffers of substreams and delivers any pending shutdown notifications
/// due to `shutdown_substream` or `close`. One may thus shutdown groups of substreams
/// followed by a final `flush_all` instead of having to do `flush_substream` for each.
fn flush_all(&self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>;
} }
/// Event about a connection, reported by an implementation of [`StreamMuxer`]. /// Event about a connection, reported by an implementation of [`StreamMuxer`].
@ -609,11 +602,6 @@ impl StreamMuxer for StreamMuxerBox {
fn poll_close(&self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> { fn poll_close(&self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
self.inner.poll_close(cx) self.inner.poll_close(cx)
} }
#[inline]
fn flush_all(&self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
self.inner.flush_all(cx)
}
} }
struct Wrap<T> struct Wrap<T>
@ -750,9 +738,4 @@ where
fn poll_close(&self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> { fn poll_close(&self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
self.inner.poll_close(cx).map_err(|e| e.into()) self.inner.poll_close(cx).map_err(|e| e.into())
} }
#[inline]
fn flush_all(&self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
self.inner.flush_all(cx).map_err(|e| e.into())
}
} }

View File

@ -149,12 +149,7 @@ where
fn destroy_substream(&self, _: Self::Substream) {} fn destroy_substream(&self, _: Self::Substream) {}
fn poll_close(&self, cx: &mut Context<'_>) -> Poll<Result<(), io::Error>> { fn poll_close(&self, _cx: &mut Context<'_>) -> Poll<Result<(), io::Error>> {
// The `StreamMuxer` trait requires that `close()` implies `flush_all()`. Poll::Ready(Ok(()))
self.flush_all(cx)
}
fn flush_all(&self, cx: &mut Context<'_>) -> Poll<Result<(), io::Error>> {
AsyncWrite::poll_flush(Pin::new(&mut *self.inner.lock()), cx)
} }
} }

View File

@ -172,10 +172,6 @@ where
fn poll_close(&self, cx: &mut Context<'_>) -> Poll<Result<(), io::Error>> { fn poll_close(&self, cx: &mut Context<'_>) -> Poll<Result<(), io::Error>> {
self.io.lock().poll_close(cx) self.io.lock().poll_close(cx)
} }
fn flush_all(&self, cx: &mut Context<'_>) -> Poll<Result<(), io::Error>> {
self.io.lock().poll_flush(cx)
}
} }
/// Active attempt to open an outbound substream. /// Active attempt to open an outbound substream.

View File

@ -191,10 +191,6 @@ where
} }
Poll::Pending Poll::Pending
} }
fn flush_all(&self, _: &mut Context<'_>) -> Poll<YamuxResult<()>> {
Poll::Ready(Ok(()))
}
} }
/// The yamux configuration. /// The yamux configuration.