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

Side by Side Diff: net/tools/quic/quic_simple_dispatcher.cc

Issue 2692813002: Server push cancellation: add a finch trial parameter (Closed)
Patch Set: Spin the message loop to ensure the client receives the response Created 3 years, 8 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
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 #include "net/tools/quic/quic_simple_dispatcher.h" 5 #include "net/tools/quic/quic_simple_dispatcher.h"
6 6
7 #include "net/tools/quic/quic_simple_server_session.h" 7 #include "net/tools/quic/quic_simple_server_session.h"
8 8
9 namespace net { 9 namespace net {
10 10
11 QuicSimpleDispatcher::QuicSimpleDispatcher( 11 QuicSimpleDispatcher::QuicSimpleDispatcher(
12 const QuicConfig& config, 12 const QuicConfig& config,
13 const QuicCryptoServerConfig* crypto_config, 13 const QuicCryptoServerConfig* crypto_config,
14 QuicVersionManager* version_manager, 14 QuicVersionManager* version_manager,
15 std::unique_ptr<QuicConnectionHelperInterface> helper, 15 std::unique_ptr<QuicConnectionHelperInterface> helper,
16 std::unique_ptr<QuicCryptoServerStream::Helper> session_helper, 16 std::unique_ptr<QuicCryptoServerStream::Helper> session_helper,
17 std::unique_ptr<QuicAlarmFactory> alarm_factory, 17 std::unique_ptr<QuicAlarmFactory> alarm_factory,
18 QuicHttpResponseCache* response_cache) 18 QuicHttpResponseCache* response_cache)
19 : QuicDispatcher(config, 19 : QuicDispatcher(config,
20 crypto_config, 20 crypto_config,
21 version_manager, 21 version_manager,
22 std::move(helper), 22 std::move(helper),
23 std::move(session_helper), 23 std::move(session_helper),
24 std::move(alarm_factory)), 24 std::move(alarm_factory)),
25 response_cache_(response_cache) {} 25 response_cache_(response_cache) {}
26 26
27 QuicSimpleDispatcher::~QuicSimpleDispatcher() {} 27 QuicSimpleDispatcher::~QuicSimpleDispatcher() {}
28 28
29 int QuicSimpleDispatcher::GetRstErrorCount(
30 QuicRstStreamErrorCode error_code) const {
31 auto it = rst_error_map_.find(error_code);
32 if (it == rst_error_map_.end()) {
33 return 0;
34 } else {
35 return it->second;
36 }
37 }
38
39 void QuicSimpleDispatcher::OnRstStreamReceived(
40 const QuicRstStreamFrame& frame) {
41 auto it = rst_error_map_.find(frame.error_code);
42 if (it == rst_error_map_.end()) {
43 rst_error_map_.insert(std::make_pair(frame.error_code, 1));
44 } else {
45 it->second++;
46 }
47 }
48
29 QuicServerSessionBase* QuicSimpleDispatcher::CreateQuicSession( 49 QuicServerSessionBase* QuicSimpleDispatcher::CreateQuicSession(
30 QuicConnectionId connection_id, 50 QuicConnectionId connection_id,
31 const QuicSocketAddress& client_address) { 51 const QuicSocketAddress& client_address) {
32 // The QuicServerSessionBase takes ownership of |connection| below. 52 // The QuicServerSessionBase takes ownership of |connection| below.
33 QuicConnection* connection = new QuicConnection( 53 QuicConnection* connection = new QuicConnection(
34 connection_id, client_address, helper(), alarm_factory(), 54 connection_id, client_address, helper(), alarm_factory(),
35 CreatePerConnectionWriter(), 55 CreatePerConnectionWriter(),
36 /* owns_writer= */ true, Perspective::IS_SERVER, GetSupportedVersions()); 56 /* owns_writer= */ true, Perspective::IS_SERVER, GetSupportedVersions());
37 57
38 QuicServerSessionBase* session = new QuicSimpleServerSession( 58 QuicServerSessionBase* session = new QuicSimpleServerSession(
39 config(), connection, this, session_helper(), crypto_config(), 59 config(), connection, this, session_helper(), crypto_config(),
40 compressed_certs_cache(), response_cache_); 60 compressed_certs_cache(), response_cache_);
41 session->Initialize(); 61 session->Initialize();
42 return session; 62 return session;
43 } 63 }
44 64
45 } // namespace net 65 } // namespace net
OLDNEW
« no previous file with comments | « net/tools/quic/quic_simple_dispatcher.h ('k') | net/tools/quic/quic_simple_server_session_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698