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

Side by Side Diff: net/http/http_network_session.h

Issue 1298253002: Remove reference counting from HttpNetworkSession. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: test Created 5 years, 2 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 unified diff | Download patch
« no previous file with comments | « net/http/http_network_layer_unittest.cc ('k') | net/http/http_network_session_peer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_NETWORK_SESSION_H_ 5 #ifndef NET_HTTP_HTTP_NETWORK_SESSION_H_
6 #define NET_HTTP_HTTP_NETWORK_SESSION_H_ 6 #define NET_HTTP_HTTP_NETWORK_SESSION_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 class QuicServerInfoFactory; 50 class QuicServerInfoFactory;
51 class SocketPerformanceWatcherFactory; 51 class SocketPerformanceWatcherFactory;
52 class SOCKSClientSocketPool; 52 class SOCKSClientSocketPool;
53 class SSLClientSocketPool; 53 class SSLClientSocketPool;
54 class SSLConfigService; 54 class SSLConfigService;
55 class TransportClientSocketPool; 55 class TransportClientSocketPool;
56 class TransportSecurityState; 56 class TransportSecurityState;
57 57
58 // This class holds session objects used by HttpNetworkTransaction objects. 58 // This class holds session objects used by HttpNetworkTransaction objects.
59 class NET_EXPORT HttpNetworkSession 59 class NET_EXPORT HttpNetworkSession
60 : public base::RefCounted<HttpNetworkSession>, 60 : NON_EXPORTED_BASE(public base::NonThreadSafe) {
61 NON_EXPORTED_BASE(public base::NonThreadSafe) {
62 public: 61 public:
63 struct NET_EXPORT Params { 62 struct NET_EXPORT Params {
64 Params(); 63 Params();
65 ~Params(); 64 ~Params();
66 65
67 ClientSocketFactory* client_socket_factory; 66 ClientSocketFactory* client_socket_factory;
68 HostResolver* host_resolver; 67 HostResolver* host_resolver;
69 CertVerifier* cert_verifier; 68 CertVerifier* cert_verifier;
70 CertPolicyEnforcer* cert_policy_enforcer; 69 CertPolicyEnforcer* cert_policy_enforcer;
71 ChannelIDService* channel_id_service; 70 ChannelIDService* channel_id_service;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 ProxyDelegate* proxy_delegate; 133 ProxyDelegate* proxy_delegate;
135 }; 134 };
136 135
137 enum SocketPoolType { 136 enum SocketPoolType {
138 NORMAL_SOCKET_POOL, 137 NORMAL_SOCKET_POOL,
139 WEBSOCKET_SOCKET_POOL, 138 WEBSOCKET_SOCKET_POOL,
140 NUM_SOCKET_POOL_TYPES 139 NUM_SOCKET_POOL_TYPES
141 }; 140 };
142 141
143 explicit HttpNetworkSession(const Params& params); 142 explicit HttpNetworkSession(const Params& params);
143 ~HttpNetworkSession();
144 144
145 HttpAuthCache* http_auth_cache() { return &http_auth_cache_; } 145 HttpAuthCache* http_auth_cache() { return &http_auth_cache_; }
146 SSLClientAuthCache* ssl_client_auth_cache() { 146 SSLClientAuthCache* ssl_client_auth_cache() {
147 return &ssl_client_auth_cache_; 147 return &ssl_client_auth_cache_;
148 } 148 }
149 149
150 void AddResponseDrainer(HttpResponseBodyDrainer* drainer); 150 void AddResponseDrainer(HttpResponseBodyDrainer* drainer);
151 151
152 void RemoveResponseDrainer(HttpResponseBodyDrainer* drainer); 152 void RemoveResponseDrainer(HttpResponseBodyDrainer* drainer);
153 153
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 bool IsProtocolEnabled(AlternateProtocol protocol) const; 206 bool IsProtocolEnabled(AlternateProtocol protocol) const;
207 207
208 // Populates |*next_protos| with protocols. 208 // Populates |*next_protos| with protocols.
209 void GetNextProtos(NextProtoVector* next_protos) const; 209 void GetNextProtos(NextProtoVector* next_protos) const;
210 210
211 // Convenience function for searching through |params_| for 211 // Convenience function for searching through |params_| for
212 // |forced_spdy_exclusions|. 212 // |forced_spdy_exclusions|.
213 bool HasSpdyExclusion(HostPortPair host_port_pair) const; 213 bool HasSpdyExclusion(HostPortPair host_port_pair) const;
214 214
215 private: 215 private:
216 friend class base::RefCounted<HttpNetworkSession>;
217 friend class HttpNetworkSessionPeer; 216 friend class HttpNetworkSessionPeer;
218 217
219 ~HttpNetworkSession();
220
221 ClientSocketPoolManager* GetSocketPoolManager(SocketPoolType pool_type); 218 ClientSocketPoolManager* GetSocketPoolManager(SocketPoolType pool_type);
222 219
223 NetLog* const net_log_; 220 NetLog* const net_log_;
224 NetworkDelegate* const network_delegate_; 221 NetworkDelegate* const network_delegate_;
225 const base::WeakPtr<HttpServerProperties> http_server_properties_; 222 const base::WeakPtr<HttpServerProperties> http_server_properties_;
226 CertVerifier* const cert_verifier_; 223 CertVerifier* const cert_verifier_;
227 HttpAuthHandlerFactory* const http_auth_handler_factory_; 224 HttpAuthHandlerFactory* const http_auth_handler_factory_;
228 225
229 // Not const since it's modified by HttpNetworkSessionPeer for testing. 226 // Not const since it's modified by HttpNetworkSessionPeer for testing.
230 ProxyService* proxy_service_; 227 ProxyService* proxy_service_;
(...skipping 11 matching lines...) Expand all
242 239
243 NextProtoVector next_protos_; 240 NextProtoVector next_protos_;
244 bool enabled_protocols_[NUM_VALID_ALTERNATE_PROTOCOLS]; 241 bool enabled_protocols_[NUM_VALID_ALTERNATE_PROTOCOLS];
245 242
246 Params params_; 243 Params params_;
247 }; 244 };
248 245
249 } // namespace net 246 } // namespace net
250 247
251 #endif // NET_HTTP_HTTP_NETWORK_SESSION_H_ 248 #endif // NET_HTTP_HTTP_NETWORK_SESSION_H_
OLDNEW
« no previous file with comments | « net/http/http_network_layer_unittest.cc ('k') | net/http/http_network_session_peer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698