| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 // | 4 // |
| 5 // HttpStream is an interface for reading and writing data to an HttpStream that | 5 // HttpStream is an interface for reading and writing data to an HttpStream that |
| 6 // keeps the client agnostic of the actual underlying transport layer. This | 6 // keeps the client agnostic of the actual underlying transport layer. This |
| 7 // provides an abstraction for both a basic http stream as well as http | 7 // provides an abstraction for both a basic http stream as well as http |
| 8 // pipelining implementations. The HttpStream subtype is expected to manage the | 8 // pipelining implementations. The HttpStream subtype is expected to manage the |
| 9 // underlying transport appropriately. For example, a non-pipelined HttpStream | 9 // underlying transport appropriately. For example, a non-pipelined HttpStream |
| 10 // would return the transport socket to the pool for reuse. SPDY streams on the | 10 // would return the transport socket to the pool for reuse. SPDY streams on the |
| 11 // other hand leave the transport socket management to the SpdySession. | 11 // other hand leave the transport socket management to the SpdySession. |
| 12 | 12 |
| 13 #ifndef NET_HTTP_HTTP_STREAM_H_ | 13 #ifndef NET_HTTP_HTTP_STREAM_H_ |
| 14 #define NET_HTTP_HTTP_STREAM_H_ | 14 #define NET_HTTP_HTTP_STREAM_H_ |
| 15 | 15 |
| 16 #include <string> | 16 #include <string> |
| 17 | 17 |
| 18 #include "base/basictypes.h" | 18 #include "base/basictypes.h" |
| 19 #include "base/memory/scoped_ptr.h" | 19 #include "base/memory/scoped_ptr.h" |
| 20 #include "net/base/completion_callback.h" | 20 #include "net/base/completion_callback.h" |
| 21 #include "net/base/net_export.h" | 21 #include "net/base/net_export.h" |
| 22 #include "net/base/upload_progress.h" |
| 22 | 23 |
| 23 namespace net { | 24 namespace net { |
| 24 | 25 |
| 25 class BoundNetLog; | 26 class BoundNetLog; |
| 26 class HttpNetworkSession; | 27 class HttpNetworkSession; |
| 27 class HttpRequestHeaders; | 28 class HttpRequestHeaders; |
| 28 struct HttpRequestInfo; | 29 struct HttpRequestInfo; |
| 29 class HttpResponseInfo; | 30 class HttpResponseInfo; |
| 30 class IOBuffer; | 31 class IOBuffer; |
| 31 class SSLCertRequestInfo; | 32 class SSLCertRequestInfo; |
| (...skipping 14 matching lines...) Expand all Loading... |
| 46 // Writes the headers and uploads body data to the underlying socket. | 47 // Writes the headers and uploads body data to the underlying socket. |
| 47 // ERR_IO_PENDING is returned if the operation could not be completed | 48 // ERR_IO_PENDING is returned if the operation could not be completed |
| 48 // synchronously, in which case the result will be passed to the callback | 49 // synchronously, in which case the result will be passed to the callback |
| 49 // when available. Returns OK on success. | 50 // when available. Returns OK on success. |
| 50 virtual int SendRequest(const HttpRequestHeaders& request_headers, | 51 virtual int SendRequest(const HttpRequestHeaders& request_headers, |
| 51 scoped_ptr<UploadDataStream> request_body, | 52 scoped_ptr<UploadDataStream> request_body, |
| 52 HttpResponseInfo* response, | 53 HttpResponseInfo* response, |
| 53 const CompletionCallback& callback) = 0; | 54 const CompletionCallback& callback) = 0; |
| 54 | 55 |
| 55 // Queries the UploadDataStream for its progress (bytes sent). | 56 // Queries the UploadDataStream for its progress (bytes sent). |
| 56 virtual uint64 GetUploadProgress() const = 0; | 57 virtual UploadProgress GetUploadProgress() const = 0; |
| 57 | 58 |
| 58 // Reads from the underlying socket until the response headers have been | 59 // Reads from the underlying socket until the response headers have been |
| 59 // completely received. ERR_IO_PENDING is returned if the operation could | 60 // completely received. ERR_IO_PENDING is returned if the operation could |
| 60 // not be completed synchronously, in which case the result will be passed | 61 // not be completed synchronously, in which case the result will be passed |
| 61 // to the callback when available. Returns OK on success. The response | 62 // to the callback when available. Returns OK on success. The response |
| 62 // headers are available in the HttpResponseInfo returned by GetResponseInfo | 63 // headers are available in the HttpResponseInfo returned by GetResponseInfo |
| 63 virtual int ReadResponseHeaders(const CompletionCallback& callback) = 0; | 64 virtual int ReadResponseHeaders(const CompletionCallback& callback) = 0; |
| 64 | 65 |
| 65 // Provides access to HttpResponseInfo (owned by HttpStream). | 66 // Provides access to HttpResponseInfo (owned by HttpStream). |
| 66 virtual const HttpResponseInfo* GetResponseInfo() const = 0; | 67 virtual const HttpResponseInfo* GetResponseInfo() const = 0; |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 // draining is complete. | 146 // draining is complete. |
| 146 virtual void Drain(HttpNetworkSession* session) = 0; | 147 virtual void Drain(HttpNetworkSession* session) = 0; |
| 147 | 148 |
| 148 private: | 149 private: |
| 149 DISALLOW_COPY_AND_ASSIGN(HttpStream); | 150 DISALLOW_COPY_AND_ASSIGN(HttpStream); |
| 150 }; | 151 }; |
| 151 | 152 |
| 152 } // namespace net | 153 } // namespace net |
| 153 | 154 |
| 154 #endif // NET_HTTP_HTTP_STREAM_H_ | 155 #endif // NET_HTTP_HTTP_STREAM_H_ |
| OLD | NEW |