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_QUIC_QUIC_STREAM_FACTORY_H_ | 5 #ifndef NET_QUIC_QUIC_STREAM_FACTORY_H_ |
6 #define NET_QUIC_QUIC_STREAM_FACTORY_H_ | 6 #define NET_QUIC_QUIC_STREAM_FACTORY_H_ |
7 | 7 |
8 #include <list> | 8 #include <list> |
9 #include <map> | 9 #include <map> |
10 #include <string> | 10 #include <string> |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 TransportSecurityState* transport_security_state, | 97 TransportSecurityState* transport_security_state, |
98 QuicCryptoClientStreamFactory* quic_crypto_client_stream_factory, | 98 QuicCryptoClientStreamFactory* quic_crypto_client_stream_factory, |
99 QuicRandom* random_generator, | 99 QuicRandom* random_generator, |
100 QuicClock* clock, | 100 QuicClock* clock, |
101 size_t max_packet_length, | 101 size_t max_packet_length, |
102 const std::string& user_agent_id, | 102 const std::string& user_agent_id, |
103 const QuicVersionVector& supported_versions, | 103 const QuicVersionVector& supported_versions, |
104 bool enable_port_selection, | 104 bool enable_port_selection, |
105 bool enable_time_based_loss_detection, | 105 bool enable_time_based_loss_detection, |
106 bool always_require_handshake_confirmation, | 106 bool always_require_handshake_confirmation, |
| 107 bool disable_connection_pooling, |
107 const QuicTagVector& connection_options); | 108 const QuicTagVector& connection_options); |
108 virtual ~QuicStreamFactory(); | 109 virtual ~QuicStreamFactory(); |
109 | 110 |
110 // Creates a new QuicHttpStream to |host_port_pair| which will be | 111 // Creates a new QuicHttpStream to |host_port_pair| which will be |
111 // owned by |request|. |is_https| specifies if the protocol is https or not. | 112 // owned by |request|. |is_https| specifies if the protocol is https or not. |
112 // If a matching session already exists, this method will return OK. If no | 113 // If a matching session already exists, this method will return OK. If no |
113 // matching session exists, this will return ERR_IO_PENDING and will invoke | 114 // matching session exists, this will return ERR_IO_PENDING and will invoke |
114 // OnRequestComplete asynchronously. | 115 // OnRequestComplete asynchronously. |
115 int Create(const HostPortPair& host_port_pair, | 116 int Create(const HostPortPair& host_port_pair, |
116 bool is_https, | 117 bool is_https, |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 | 275 |
275 // Determine if we should consistently select a client UDP port. If false, | 276 // Determine if we should consistently select a client UDP port. If false, |
276 // then we will just let the OS select a random client port for each new | 277 // then we will just let the OS select a random client port for each new |
277 // connection. | 278 // connection. |
278 bool enable_port_selection_; | 279 bool enable_port_selection_; |
279 | 280 |
280 // Set if we always require handshake confirmation. If true, this will | 281 // Set if we always require handshake confirmation. If true, this will |
281 // introduce at least one RTT for the handshake before the client sends data. | 282 // introduce at least one RTT for the handshake before the client sends data. |
282 bool always_require_handshake_confirmation_; | 283 bool always_require_handshake_confirmation_; |
283 | 284 |
| 285 // Set if we do not want connection pooling. |
| 286 bool disable_connection_pooling_; |
| 287 |
284 // Each profile will (probably) have a unique port_seed_ value. This value is | 288 // Each profile will (probably) have a unique port_seed_ value. This value is |
285 // used to help seed a pseudo-random number generator (PortSuggester) so that | 289 // used to help seed a pseudo-random number generator (PortSuggester) so that |
286 // we consistently (within this profile) suggest the same ephemeral port when | 290 // we consistently (within this profile) suggest the same ephemeral port when |
287 // we re-connect to any given server/port. The differences between profiles | 291 // we re-connect to any given server/port. The differences between profiles |
288 // (probablistically) prevent two profiles from colliding in their ephemeral | 292 // (probablistically) prevent two profiles from colliding in their ephemeral |
289 // port requests. | 293 // port requests. |
290 uint64 port_seed_; | 294 uint64 port_seed_; |
291 | 295 |
292 base::WeakPtrFactory<QuicStreamFactory> weak_factory_; | 296 base::WeakPtrFactory<QuicStreamFactory> weak_factory_; |
293 | 297 |
294 DISALLOW_COPY_AND_ASSIGN(QuicStreamFactory); | 298 DISALLOW_COPY_AND_ASSIGN(QuicStreamFactory); |
295 }; | 299 }; |
296 | 300 |
297 } // namespace net | 301 } // namespace net |
298 | 302 |
299 #endif // NET_QUIC_QUIC_STREAM_FACTORY_H_ | 303 #endif // NET_QUIC_QUIC_STREAM_FACTORY_H_ |
OLD | NEW |