Index: components/devtools_bridge/socket_tunnel_connection.h |
diff --git a/components/devtools_bridge/socket_tunnel_connection.h b/components/devtools_bridge/socket_tunnel_connection.h |
deleted file mode 100644 |
index c66389260556ae35ed55514d5230bdd8d3220686..0000000000000000000000000000000000000000 |
--- a/components/devtools_bridge/socket_tunnel_connection.h |
+++ /dev/null |
@@ -1,99 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef COMPONENTS_DEVTOOLS_BRIDGE_SOCKET_TUNNEL_CONNECTION_H_ |
-#define COMPONENTS_DEVTOOLS_BRIDGE_SOCKET_TUNNEL_CONNECTION_H_ |
- |
-#include <deque> |
-#include <string> |
- |
-#include "base/memory/ref_counted.h" |
-#include "base/memory/scoped_ptr.h" |
- |
-namespace net { |
-class DrainableIOBuffer; |
-class GrowableIOBuffer; |
-class IOBufferWithSize; |
-class StreamSocket; |
-} |
- |
-namespace devtools_bridge { |
- |
-/** |
- * Abstract base class for SocketTunnelServer/Client connection. |
- * |
- * Connection binds a pair of net::StreamSocket (or alike) through |
- * a data channel. SocketTunnel may handle up to kMaxConnectionCount |
- * simultaneous connection (DevTools can keep ~10 connection; |
- * other connections hang in unopened state; additional connections |
- * could help to deal with data channel latency). |
- * |
- * Client should create net::StreamListenSocket (or logical equivalent) |
- * and listen for incoming connection. When one comes it sends CLIENT_OPEN |
- * packet to the server. |
- * |
- * Server transforms client's packet to calls of net::StreamSocket. On |
- * CLIENT_OPEN it creates a socket and connects. If connection succeeds |
- * it sends back SERVER_OPEN_ACK. If it fails it sends SERVER_CLOSE. |
- * |
- * After SERVER_OPEN_ACK server may send SERVER_CLOSE any time (if the socket |
- * it connects to has closed on another side). If client closes the connection |
- * sending CLIENT_CLOSE server acknowledges it by sending SERVER_CLOSE. |
- * Client may reuse connection ID once it received SERVER_CLOSE (because |
- * data channel is ordered and reliable). |
- */ |
-class SocketTunnelConnection { |
- public: |
- enum ClientOpCode { |
- CLIENT_OPEN = 0, |
- CLIENT_CLOSE = 1 |
- }; |
- |
- enum ServerOpCode { |
- SERVER_OPEN_ACK = 0, |
- SERVER_CLOSE = 1 |
- }; |
- |
- static const int kMaxConnectionCount = 64; |
- |
- static const int kMaxPacketSizeBytes = 1024 * 4; |
- static const int kControlPacketSizeBytes = 3; |
- |
- static const int kControlConnectionId = 0; |
- |
- static const int kMinConnectionId = 1; |
- static const int kMaxConnectionId = |
- kMinConnectionId + kMaxConnectionCount - 1; |
- |
- void Write(scoped_refptr<net::IOBufferWithSize> chunk); |
- void ReadNextChunk(); |
- |
- protected: |
- SocketTunnelConnection(int index); |
- ~SocketTunnelConnection(); |
- |
- const int index_; |
- |
- // |buffer| length must be kControlPacketSizeBytes. |
- void BuildControlPacket(char* buffer, int op_code); |
- |
- virtual net::StreamSocket* socket() = 0; |
- virtual void OnDataPacketRead(const void* data, size_t length) = 0; |
- virtual void OnReadError(int error) = 0; |
- |
- private: |
- void WriteCurrent(); |
- void OnWriteComplete(int result); |
- void OnReadComplete(int result); |
- |
- std::deque<scoped_refptr<net::IOBufferWithSize> > buffer_; |
- scoped_refptr<net::DrainableIOBuffer> current_; |
- scoped_refptr<net::GrowableIOBuffer> read_buffer_; |
- |
- DISALLOW_COPY_AND_ASSIGN(SocketTunnelConnection); |
-}; |
- |
-} // namespace devtools_bridge |
- |
-#endif // COMPONENTS_DEVTOOLS_BRIDGE_SOCKET_TUNNEL_CONNECTION_H_ |