| 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 #ifndef NET_HTTP_HTTP_STREAM_FACTORY_IMPL_H_ | 5 #ifndef NET_HTTP_HTTP_STREAM_FACTORY_IMPL_H_ |
| 6 #define NET_HTTP_HTTP_STREAM_FACTORY_IMPL_H_ | 6 #define NET_HTTP_HTTP_STREAM_FACTORY_IMPL_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 virtual void PreconnectStreams(int num_streams, | 40 virtual void PreconnectStreams(int num_streams, |
| 41 const HttpRequestInfo& info, | 41 const HttpRequestInfo& info, |
| 42 const SSLConfig& server_ssl_config, | 42 const SSLConfig& server_ssl_config, |
| 43 const SSLConfig& proxy_ssl_config) OVERRIDE; | 43 const SSLConfig& proxy_ssl_config) OVERRIDE; |
| 44 virtual void AddTLSIntolerantServer(const HostPortPair& server) OVERRIDE; | 44 virtual void AddTLSIntolerantServer(const HostPortPair& server) OVERRIDE; |
| 45 virtual bool IsTLSIntolerantServer(const HostPortPair& server) const OVERRIDE; | 45 virtual bool IsTLSIntolerantServer(const HostPortPair& server) const OVERRIDE; |
| 46 virtual base::Value* PipelineInfoToValue() const OVERRIDE; | 46 virtual base::Value* PipelineInfoToValue() const OVERRIDE; |
| 47 | 47 |
| 48 // HttpPipelinedHostPool::Delegate interface | 48 // HttpPipelinedHostPool::Delegate interface |
| 49 virtual void OnHttpPipelinedHostHasAdditionalCapacity( | 49 virtual void OnHttpPipelinedHostHasAdditionalCapacity( |
| 50 const HostPortPair& origin) OVERRIDE; | 50 HttpPipelinedHost* host) OVERRIDE; |
| 51 | 51 |
| 52 private: | 52 private: |
| 53 class Request; | 53 class Request; |
| 54 class Job; | 54 class Job; |
| 55 | 55 |
| 56 typedef std::set<Request*> RequestSet; | 56 typedef std::set<Request*> RequestSet; |
| 57 typedef std::map<HostPortProxyPair, RequestSet> SpdySessionRequestMap; | 57 typedef std::map<HostPortProxyPair, RequestSet> SpdySessionRequestMap; |
| 58 typedef std::map<HostPortPair, RequestSet> HttpPipeliningRequestMap; | 58 typedef std::map<HttpPipelinedHost::Key, RequestSet> HttpPipeliningRequestMap; |
| 59 | 59 |
| 60 bool GetAlternateProtocolRequestFor(const GURL& original_url, | 60 bool GetAlternateProtocolRequestFor(const GURL& original_url, |
| 61 GURL* alternate_url) const; | 61 GURL* alternate_url) const; |
| 62 | 62 |
| 63 // Detaches |job| from |request|. | 63 // Detaches |job| from |request|. |
| 64 void OrphanJob(Job* job, const Request* request); | 64 void OrphanJob(Job* job, const Request* request); |
| 65 | 65 |
| 66 // Called when a SpdySession is ready. It will find appropriate Requests and | 66 // Called when a SpdySession is ready. It will find appropriate Requests and |
| 67 // fulfill them. |direct| indicates whether or not |spdy_session| uses a | 67 // fulfill them. |direct| indicates whether or not |spdy_session| uses a |
| 68 // proxy. | 68 // proxy. |
| (...skipping 13 matching lines...) Expand all Loading... |
| 82 | 82 |
| 83 // Invoked when an orphaned Job finishes. | 83 // Invoked when an orphaned Job finishes. |
| 84 void OnOrphanedJobComplete(const Job* job); | 84 void OnOrphanedJobComplete(const Job* job); |
| 85 | 85 |
| 86 // Invoked when the Job finishes preconnecting sockets. | 86 // Invoked when the Job finishes preconnecting sockets. |
| 87 void OnPreconnectsComplete(const Job* job); | 87 void OnPreconnectsComplete(const Job* job); |
| 88 | 88 |
| 89 // Called when the Preconnect completes. Used for testing. | 89 // Called when the Preconnect completes. Used for testing. |
| 90 virtual void OnPreconnectsCompleteInternal() {} | 90 virtual void OnPreconnectsCompleteInternal() {} |
| 91 | 91 |
| 92 void AbortPipelinedRequestsWithKey(const Job* job, |
| 93 const HttpPipelinedHost::Key& key, |
| 94 int status, |
| 95 const SSLConfig& used_ssl_config); |
| 96 |
| 92 HttpNetworkSession* const session_; | 97 HttpNetworkSession* const session_; |
| 93 | 98 |
| 94 std::set<HostPortPair> tls_intolerant_servers_; | 99 std::set<HostPortPair> tls_intolerant_servers_; |
| 95 | 100 |
| 96 // All Requests are handed out to clients. By the time HttpStreamFactoryImpl | 101 // All Requests are handed out to clients. By the time HttpStreamFactoryImpl |
| 97 // is destroyed, all Requests should be deleted (which should remove them from | 102 // is destroyed, all Requests should be deleted (which should remove them from |
| 98 // |request_map_|. The Requests will delete the corresponding job. | 103 // |request_map_|. The Requests will delete the corresponding job. |
| 99 std::map<const Job*, Request*> request_map_; | 104 std::map<const Job*, Request*> request_map_; |
| 100 | 105 |
| 101 SpdySessionRequestMap spdy_session_request_map_; | 106 SpdySessionRequestMap spdy_session_request_map_; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 114 // object. They're owned by HttpStreamFactoryImpl. Leftover jobs will be | 119 // object. They're owned by HttpStreamFactoryImpl. Leftover jobs will be |
| 115 // deleted when the factory is destroyed. | 120 // deleted when the factory is destroyed. |
| 116 std::set<const Job*> preconnect_job_set_; | 121 std::set<const Job*> preconnect_job_set_; |
| 117 | 122 |
| 118 DISALLOW_COPY_AND_ASSIGN(HttpStreamFactoryImpl); | 123 DISALLOW_COPY_AND_ASSIGN(HttpStreamFactoryImpl); |
| 119 }; | 124 }; |
| 120 | 125 |
| 121 } // namespace net | 126 } // namespace net |
| 122 | 127 |
| 123 #endif // NET_HTTP_HTTP_STREAM_FACTORY_IMPL_H_ | 128 #endif // NET_HTTP_HTTP_STREAM_FACTORY_IMPL_H_ |
| OLD | NEW |