diff options
author | kmarshall <kmarshall@chromium.org> | 2015-11-10 11:53:24 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-11-10 19:54:28 +0000 |
commit | 9be7a72035be5d9e8dba0c4bc75016491de277eb (patch) | |
tree | 136b444e7df35c6e162b8b80f11e89f20921b95b /blimp/net | |
parent | 6f156f79db2c3536ea33837a8f8ce39390e041f2 (diff) | |
download | chromium_src-9be7a72035be5d9e8dba0c4bc75016491de277eb.zip chromium_src-9be7a72035be5d9e8dba0c4bc75016491de277eb.tar.gz chromium_src-9be7a72035be5d9e8dba0c4bc75016491de277eb.tar.bz2 |
Change BlimpTransport to vend BlimpConnections.
This removes the dependency StreamSocket from BlimpTransport.
Make PacketReader and PacketWriter stream/datagram agnostic,
moving framing logic to the new classes StreamPacketReader and
StreamPacketWriter.
Add channel reader/writer objects and fields to BlimpConnection,
and create a specialization of BlimpConnection for receiving
ownership of StreamSocket.
R=wez@chromium.org
BUG=
Committed: https://crrev.com/90e22697d8d163452c067e88c2bae8b476380077
Cr-Commit-Position: refs/heads/master@{#358142}
Review URL: https://codereview.chromium.org/1430963002
Cr-Commit-Position: refs/heads/master@{#358881}
Diffstat (limited to 'blimp/net')
-rw-r--r-- | blimp/net/blimp_connection.h | 2 | ||||
-rw-r--r-- | blimp/net/tcp_client_transport.cc | 18 | ||||
-rw-r--r-- | blimp/net/tcp_client_transport.h | 3 |
3 files changed, 12 insertions, 11 deletions
diff --git a/blimp/net/blimp_connection.h b/blimp/net/blimp_connection.h index 5bd115d..87abc94 100644 --- a/blimp/net/blimp_connection.h +++ b/blimp/net/blimp_connection.h @@ -25,6 +25,8 @@ class BLIMP_NET_EXPORT BlimpConnection { private: scoped_ptr<PacketReader> reader_; scoped_ptr<PacketWriter> writer_; + + DISALLOW_COPY_AND_ASSIGN(BlimpConnection); }; } // namespace blimp diff --git a/blimp/net/tcp_client_transport.cc b/blimp/net/tcp_client_transport.cc index 8ac24a8..6bdd18f 100644 --- a/blimp/net/tcp_client_transport.cc +++ b/blimp/net/tcp_client_transport.cc @@ -20,36 +20,34 @@ TCPClientTransport::TCPClientTransport(const net::AddressList& addresses, TCPClientTransport::~TCPClientTransport() {} int TCPClientTransport::Connect(const net::CompletionCallback& callback) { - DCHECK(!connection_); + DCHECK(!socket_); DCHECK(!callback.is_null()); - scoped_ptr<net::StreamSocket> socket; - socket.reset( + socket_.reset( new net::TCPClientSocket(addresses_, net_log_, net::NetLog::Source())); net::CompletionCallback completion_callback = base::Bind( &TCPClientTransport::OnTCPConnectComplete, base::Unretained(this)); - int result = socket->Connect(completion_callback); - connection_.reset(new StreamSocketConnection(socket.Pass())); + int result = socket_->Connect(completion_callback); if (result == net::ERR_IO_PENDING) { connect_callback_ = callback; } else if (result != net::OK) { - connection_ = nullptr; + socket_ = nullptr; } return result; } scoped_ptr<BlimpConnection> TCPClientTransport::TakeConnection() { - DCHECK(connection_); DCHECK(connect_callback_.is_null()); - return connection_.Pass(); + DCHECK(socket_); + return make_scoped_ptr(new StreamSocketConnection(socket_.Pass())); } void TCPClientTransport::OnTCPConnectComplete(int result) { - DCHECK(connection_); + DCHECK(socket_); if (result != net::OK) { - connection_ = nullptr; + socket_ = nullptr; } base::ResetAndReturn(&connect_callback_).Run(result); } diff --git a/blimp/net/tcp_client_transport.h b/blimp/net/tcp_client_transport.h index 77ca287..c5f5c6a 100644 --- a/blimp/net/tcp_client_transport.h +++ b/blimp/net/tcp_client_transport.h @@ -14,6 +14,7 @@ namespace net { class NetLog; +class StreamSocket; } // namespace net namespace blimp { @@ -36,7 +37,7 @@ class TCPClientTransport : public BlimpTransport { net::AddressList addresses_; net::NetLog* net_log_; - scoped_ptr<BlimpConnection> connection_; + scoped_ptr<net::StreamSocket> socket_; net::CompletionCallback connect_callback_; DISALLOW_COPY_AND_ASSIGN(TCPClientTransport); |