summaryrefslogtreecommitdiffstats
path: root/blimp/net
diff options
context:
space:
mode:
authorkmarshall <kmarshall@chromium.org>2015-11-10 11:53:24 -0800
committerCommit bot <commit-bot@chromium.org>2015-11-10 19:54:28 +0000
commit9be7a72035be5d9e8dba0c4bc75016491de277eb (patch)
tree136b444e7df35c6e162b8b80f11e89f20921b95b /blimp/net
parent6f156f79db2c3536ea33837a8f8ce39390e041f2 (diff)
downloadchromium_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.h2
-rw-r--r--blimp/net/tcp_client_transport.cc18
-rw-r--r--blimp/net/tcp_client_transport.h3
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);