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

Side by Side Diff: net/quic/core/quic_connection.cc

Issue 2740453006: Add QuicStringPiece which is actually StringPiece. (Closed)
Patch Set: fix compile error and rebase Created 3 years, 9 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/quic/core/quic_connection.h ('k') | net/quic/core/quic_connection_test.cc » ('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 #include "net/quic/core/quic_connection.h" 5 #include "net/quic/core/quic_connection.h"
6 6
7 #include <string.h> 7 #include <string.h>
8 #include <sys/types.h> 8 #include <sys/types.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 17 matching lines...) Expand all
28 #include "net/quic/core/quic_packet_generator.h" 28 #include "net/quic/core/quic_packet_generator.h"
29 #include "net/quic/core/quic_pending_retransmission.h" 29 #include "net/quic/core/quic_pending_retransmission.h"
30 #include "net/quic/core/quic_utils.h" 30 #include "net/quic/core/quic_utils.h"
31 #include "net/quic/platform/api/quic_bug_tracker.h" 31 #include "net/quic/platform/api/quic_bug_tracker.h"
32 #include "net/quic/platform/api/quic_flag_utils.h" 32 #include "net/quic/platform/api/quic_flag_utils.h"
33 #include "net/quic/platform/api/quic_logging.h" 33 #include "net/quic/platform/api/quic_logging.h"
34 #include "net/quic/platform/api/quic_map_util.h" 34 #include "net/quic/platform/api/quic_map_util.h"
35 #include "net/quic/platform/api/quic_str_cat.h" 35 #include "net/quic/platform/api/quic_str_cat.h"
36 #include "net/quic/platform/api/quic_text_utils.h" 36 #include "net/quic/platform/api/quic_text_utils.h"
37 37
38 using base::StringPiece;
39 using std::string; 38 using std::string;
40 39
41 namespace net { 40 namespace net {
42 41
43 class QuicDecrypter; 42 class QuicDecrypter;
44 class QuicEncrypter; 43 class QuicEncrypter;
45 44
46 namespace { 45 namespace {
47 46
48 // The largest gap in packets we'll accept without closing the connection. 47 // The largest gap in packets we'll accept without closing the connection.
(...skipping 1465 matching lines...) Expand 10 before | Expand all | Expand 10 after
1514 DCHECK_LE(encrypted_length, kMaxPacketSize); 1513 DCHECK_LE(encrypted_length, kMaxPacketSize);
1515 DCHECK_LE(encrypted_length, packet_generator_.GetCurrentMaxPacketLength()); 1514 DCHECK_LE(encrypted_length, packet_generator_.GetCurrentMaxPacketLength());
1516 QUIC_DVLOG(1) << ENDPOINT << "Sending packet " << packet_number << " : " 1515 QUIC_DVLOG(1) << ENDPOINT << "Sending packet " << packet_number << " : "
1517 << (IsRetransmittable(*packet) == HAS_RETRANSMITTABLE_DATA 1516 << (IsRetransmittable(*packet) == HAS_RETRANSMITTABLE_DATA
1518 ? "data bearing " 1517 ? "data bearing "
1519 : " ack only ") 1518 : " ack only ")
1520 << ", encryption level: " 1519 << ", encryption level: "
1521 << QuicUtils::EncryptionLevelToString(packet->encryption_level) 1520 << QuicUtils::EncryptionLevelToString(packet->encryption_level)
1522 << ", encrypted length:" << encrypted_length; 1521 << ", encrypted length:" << encrypted_length;
1523 QUIC_DVLOG(2) << ENDPOINT << "packet(" << packet_number << "): " << std::endl 1522 QUIC_DVLOG(2) << ENDPOINT << "packet(" << packet_number << "): " << std::endl
1524 << QuicTextUtils::HexDump( 1523 << QuicTextUtils::HexDump(QuicStringPiece(
1525 StringPiece(packet->encrypted_buffer, encrypted_length)); 1524 packet->encrypted_buffer, encrypted_length));
1526 1525
1527 // Measure the RTT from before the write begins to avoid underestimating the 1526 // Measure the RTT from before the write begins to avoid underestimating the
1528 // min_rtt_, especially in cases where the thread blocks or gets swapped out 1527 // min_rtt_, especially in cases where the thread blocks or gets swapped out
1529 // during the WritePacket below. 1528 // during the WritePacket below.
1530 QuicTime packet_send_time = clock_->Now(); 1529 QuicTime packet_send_time = clock_->Now();
1531 WriteResult result = writer_->WritePacket( 1530 WriteResult result = writer_->WritePacket(
1532 packet->encrypted_buffer, encrypted_length, self_address().host(), 1531 packet->encrypted_buffer, encrypted_length, self_address().host(),
1533 peer_address(), per_packet_options_); 1532 peer_address(), per_packet_options_);
1534 if (result.error_code == ERR_IO_PENDING) { 1533 if (result.error_code == ERR_IO_PENDING) {
1535 DCHECK_EQ(WRITE_STATUS_BLOCKED, result.status); 1534 DCHECK_EQ(WRITE_STATUS_BLOCKED, result.status);
(...skipping 807 matching lines...) Expand 10 before | Expand all | Expand 10 after
2343 // TODO(jri): Move these calls to OnPeerMigrationValidated. Rename 2342 // TODO(jri): Move these calls to OnPeerMigrationValidated. Rename
2344 // OnConnectionMigration methods to OnPeerMigration. 2343 // OnConnectionMigration methods to OnPeerMigration.
2345 visitor_->OnConnectionMigration(peer_migration_type); 2344 visitor_->OnConnectionMigration(peer_migration_type);
2346 sent_packet_manager_.OnConnectionMigration(peer_migration_type); 2345 sent_packet_manager_.OnConnectionMigration(peer_migration_type);
2347 } 2346 }
2348 2347
2349 bool QuicConnection::ack_frame_updated() const { 2348 bool QuicConnection::ack_frame_updated() const {
2350 return received_packet_manager_.ack_frame_updated(); 2349 return received_packet_manager_.ack_frame_updated();
2351 } 2350 }
2352 2351
2353 StringPiece QuicConnection::GetCurrentPacket() { 2352 QuicStringPiece QuicConnection::GetCurrentPacket() {
2354 if (current_packet_data_ == nullptr) { 2353 if (current_packet_data_ == nullptr) {
2355 return StringPiece(); 2354 return QuicStringPiece();
2356 } 2355 }
2357 return StringPiece(current_packet_data_, last_size_); 2356 return QuicStringPiece(current_packet_data_, last_size_);
2358 } 2357 }
2359 2358
2360 bool QuicConnection::MaybeConsiderAsMemoryCorruption( 2359 bool QuicConnection::MaybeConsiderAsMemoryCorruption(
2361 const QuicStreamFrame& frame) { 2360 const QuicStreamFrame& frame) {
2362 if (frame.stream_id == kCryptoStreamId || 2361 if (frame.stream_id == kCryptoStreamId ||
2363 last_decrypted_packet_level_ != ENCRYPTION_NONE) { 2362 last_decrypted_packet_level_ != ENCRYPTION_NONE) {
2364 return false; 2363 return false;
2365 } 2364 }
2366 2365
2367 if (perspective_ == Perspective::IS_SERVER && 2366 if (perspective_ == Perspective::IS_SERVER &&
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
2402 2401
2403 void QuicConnection::CheckIfApplicationLimited() { 2402 void QuicConnection::CheckIfApplicationLimited() {
2404 if (queued_packets_.empty() && 2403 if (queued_packets_.empty() &&
2405 !sent_packet_manager_.HasPendingRetransmissions() && 2404 !sent_packet_manager_.HasPendingRetransmissions() &&
2406 !visitor_->WillingAndAbleToWrite()) { 2405 !visitor_->WillingAndAbleToWrite()) {
2407 sent_packet_manager_.OnApplicationLimited(); 2406 sent_packet_manager_.OnApplicationLimited();
2408 } 2407 }
2409 } 2408 }
2410 2409
2411 } // namespace net 2410 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/core/quic_connection.h ('k') | net/quic/core/quic_connection_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698