The Multiaddr of the remote is now a Future (#249)

* The Multiaddr of the remote is now a Future

* The multiaddress future in swarm is now a Box
This commit is contained in:
Pierre Krieger
2018-06-19 14:38:55 +02:00
committed by GitHub
parent 8fb919321b
commit 7b375798a5
40 changed files with 558 additions and 485 deletions

View File

@ -53,7 +53,7 @@ use std::iter;
use std::sync::Arc;
use std::sync::atomic::{self, AtomicUsize};
use swarm::muxing::StreamMuxer;
use swarm::{ConnectionUpgrade, Endpoint, Multiaddr};
use swarm::{ConnectionUpgrade, Endpoint};
use tokio_io::{AsyncRead, AsyncWrite};
use write::write_stream;
@ -366,18 +366,19 @@ impl<Buf: Array> BufferedMultiplexConfig<Buf> {
}
}
impl<C, Buf: Array> ConnectionUpgrade<C> for BufferedMultiplexConfig<Buf>
impl<C, Maf, Buf: Array> ConnectionUpgrade<C, Maf> for BufferedMultiplexConfig<Buf>
where
C: AsyncRead + AsyncWrite,
{
type Output = BufferedMultiplex<C, Buf>;
type Future = FutureResult<BufferedMultiplex<C, Buf>, io::Error>;
type MultiaddrFuture = Maf;
type Future = FutureResult<(BufferedMultiplex<C, Buf>, Maf), io::Error>;
type UpgradeIdentifier = ();
type NamesIter = iter::Once<(Bytes, ())>;
#[inline]
fn upgrade(self, i: C, _: (), end: Endpoint, _: &Multiaddr) -> Self::Future {
future::ok(BufferedMultiplex::new(i, end))
fn upgrade(self, i: C, _: (), end: Endpoint, remote_addr: Maf) -> Self::Future {
future::ok((BufferedMultiplex::new(i, end), remote_addr))
}
#[inline]