Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(691)

Unified Diff: net/spdy/spdy_proxy_client_socket.h

Issue 3391029: Revert 60747 - Add a new class SpdyProxyClientSocket which implements ClientS... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/spdy/spdy_http_utils.cc ('k') | net/spdy/spdy_proxy_client_socket.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/spdy_proxy_client_socket.h
===================================================================
--- net/spdy/spdy_proxy_client_socket.h (revision 60753)
+++ net/spdy/spdy_proxy_client_socket.h (working copy)
@@ -1,183 +0,0 @@
-// Copyright (c) 2010 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 NET_SPDY_SPDY_PROXY_CLIENT_SOCKET_H_
-#define NET_SPDY_SPDY_PROXY_CLIENT_SOCKET_H_
-#pragma once
-
-#include <string>
-#include <list>
-
-#include "base/basictypes.h"
-#include "base/ref_counted.h"
-#include "net/base/completion_callback.h"
-#include "net/base/host_port_pair.h"
-#include "net/base/net_log.h"
-#include "net/http/http_auth_controller.h"
-#include "net/http/http_request_headers.h"
-#include "net/http/http_request_info.h"
-#include "net/http/http_response_info.h"
-#include "net/socket/client_socket.h"
-#include "net/spdy/spdy_protocol.h"
-#include "net/spdy/spdy_session.h"
-#include "net/spdy/spdy_stream.h"
-
-
-class GURL;
-
-namespace net {
-
-class AddressList;
-class ClientSocketHandle;
-class HttpStream;
-class IOBuffer;
-class SpdySession;
-class SpdyStream;
-
-class SpdyProxyClientSocket : public ClientSocket, public SpdyStream::Delegate {
- public:
- // Create a socket on top of the |spdy_stream| by sending a SYN_STREAM
- // CONNECT frame for |endpoint|. After the SYN_REPLY is received,
- // any data read/written to the socket will be transferred in data
- // frames.
- SpdyProxyClientSocket(SpdyStream* spdy_stream,
- const std::string& user_agent,
- const HostPortPair& endpoint,
- const GURL& url,
- const HostPortPair& proxy_server,
- HttpAuthCache* auth_cache,
- HttpAuthHandlerFactory* auth_handler_factory);
-
-
- // On destruction Disconnect() is called.
- virtual ~SpdyProxyClientSocket();
-
- const scoped_refptr<HttpAuthController>& auth_controller() {
- return auth_;
- }
-
- const HttpResponseInfo* GetConnectResponseInfo() const {
- return response_.headers ? &response_ : NULL;
- }
-
- // ClientSocket methods:
-
- virtual int Connect(CompletionCallback* callback);
- virtual void Disconnect();
- virtual bool IsConnected() const;
- virtual bool IsConnectedAndIdle() const;
- virtual const BoundNetLog& NetLog() const { return net_log_; }
- virtual void SetSubresourceSpeculation();
- virtual void SetOmniboxSpeculation();
- virtual bool WasEverUsed() const;
-
- // Socket methods:
-
- virtual int Read(IOBuffer* buf, int buf_len, CompletionCallback* callback);
- virtual int Write(IOBuffer* buf, int buf_len, CompletionCallback* callback);
-
- virtual bool SetReceiveBufferSize(int32 size);
- virtual bool SetSendBufferSize(int32 size);
-
- virtual int GetPeerAddress(AddressList* address) const;
-
- // SpdyStream::Delegate methods:
-
- // Called when SYN frame has been sent.
- // Returns true if no more data to be sent after SYN frame.
- virtual bool OnSendHeadersComplete(int status);
-
- // Called when stream is ready to send data.
- // Returns network error code. OK when it successfully sent data.
- virtual int OnSendBody();
-
- // Called when data has been sent. |status| indicates network error
- // or number of bytes has been sent.
- // Returns true if no more data to be sent.
- virtual bool OnSendBodyComplete(int status);
-
- // Called when SYN_STREAM or SYN_REPLY received. |status| indicates network
- // error. Returns network error code.
- virtual int OnResponseReceived(const spdy::SpdyHeaderBlock& response,
- base::Time response_time,
- int status);
-
- // Called when data is received.
- virtual void OnDataReceived(const char* data, int length);
-
- // Called when data is sent.
- virtual void OnDataSent(int length);
-
- // Called when SpdyStream is closed.
- virtual void OnClose(int status);
-
- private:
- enum State {
- STATE_NONE,
- STATE_GENERATE_AUTH_TOKEN,
- STATE_GENERATE_AUTH_TOKEN_COMPLETE,
- STATE_SEND_REQUEST,
- STATE_SEND_REQUEST_COMPLETE,
- STATE_READ_REPLY_COMPLETE,
- STATE_DONE,
- };
-
- void OnIOComplete(int result);
-
- int DoLoop(int last_io_result);
- int DoGenerateAuthToken();
- int DoGenerateAuthTokenComplete(int result);
- int DoSendRequest();
- int DoSendRequestComplete(int result);
- int DoReadReplyComplete(int result);
-
- // Populates |user_buffer_| with as much read data as possible
- // and returns the number of bytes read.
- int PopulateUserReadBuffer();
-
- CompletionCallbackImpl<SpdyProxyClientSocket> io_callback_;
- State next_state_;
-
- // Pointer to the SPDY Stream that this sits on top of.
- scoped_refptr<SpdyStream> spdy_stream_;
-
- // Stores the callback to the layer above, called on completing Read() or
- // Connect().
- CompletionCallback* read_callback_;
- // Stores the callback to the layer above, called on completing Write().
- CompletionCallback* write_callback_;
-
- // CONNECT request and response.
- HttpRequestInfo request_;
- HttpResponseInfo response_;
-
- // The hostname and port of the endpoint. This is not necessarily the one
- // specified by the URL, due to Alternate-Protocol or fixed testing ports.
- const HostPortPair endpoint_;
- scoped_refptr<HttpAuthController> auth_;
-
- // We buffer the response body as it arrives asynchronously from the stream.
- std::list<scoped_refptr<DrainableIOBuffer> > read_buffer_;
-
- // User provided buffer for the Read() response.
- scoped_refptr<DrainableIOBuffer> user_buffer_;
-
- // User specified number of bytes to be written.
- int write_buffer_len_;
- // Number of bytes written which have not been confirmed
- int write_bytes_outstanding_;
-
- // True if read has ever returned zero for eof.
- bool eof_has_been_read_;
- // True if the transport socket has ever sent data.
- bool was_ever_used_;
-
- const BoundNetLog net_log_;
-
- DISALLOW_COPY_AND_ASSIGN(SpdyProxyClientSocket);
-};
-
-} // namespace net
-
-#endif // NET_SPDY_SPDY_PROXY_CLIENT_SOCKET_H_
« no previous file with comments | « net/spdy/spdy_http_utils.cc ('k') | net/spdy/spdy_proxy_client_socket.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698