| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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_CONNECTION_LOGGER_H_ | 5 #ifndef NET_QUIC_QUIC_CONNECTION_LOGGER_H_ |
| 6 #define NET_QUIC_QUIC_CONNECTION_LOGGER_H_ | 6 #define NET_QUIC_QUIC_CONNECTION_LOGGER_H_ |
| 7 | 7 |
| 8 #include <bitset> | 8 #include <bitset> |
| 9 | 9 |
| 10 #include "net/base/ip_endpoint.h" | 10 #include "net/base/ip_endpoint.h" |
| 11 #include "net/base/network_change_notifier.h" | 11 #include "net/base/network_change_notifier.h" |
| 12 #include "net/log/net_log.h" | 12 #include "net/log/net_log.h" |
| 13 #include "net/quic/quic_connection.h" | 13 #include "net/quic/quic_connection.h" |
| 14 #include "net/quic/quic_protocol.h" | 14 #include "net/quic/quic_protocol.h" |
| 15 #include "net/quic/quic_session.h" | 15 #include "net/quic/quic_spdy_session.h" |
| 16 | 16 |
| 17 namespace net { | 17 namespace net { |
| 18 namespace test { | 18 namespace test { |
| 19 class QuicConnectionLoggerPeer; | 19 class QuicConnectionLoggerPeer; |
| 20 } // namespace test | 20 } // namespace test |
| 21 | 21 |
| 22 class CryptoHandshakeMessage; | 22 class CryptoHandshakeMessage; |
| 23 class CertVerifyResult; | 23 class CertVerifyResult; |
| 24 | 24 |
| 25 // This class is a debug visitor of a QuicConnection which logs | 25 // This class is a debug visitor of a QuicConnection which logs |
| 26 // events to |net_log|. | 26 // events to |net_log|. |
| 27 class NET_EXPORT_PRIVATE QuicConnectionLogger | 27 class NET_EXPORT_PRIVATE QuicConnectionLogger |
| 28 : public QuicConnectionDebugVisitor { | 28 : public QuicConnectionDebugVisitor { |
| 29 public: | 29 public: |
| 30 QuicConnectionLogger(QuicSession* session, | 30 QuicConnectionLogger(QuicSpdySession* session, |
| 31 const char* const connection_description, | 31 const char* const connection_description, |
| 32 const BoundNetLog& net_log); | 32 const BoundNetLog& net_log); |
| 33 | 33 |
| 34 ~QuicConnectionLogger() override; | 34 ~QuicConnectionLogger() override; |
| 35 | 35 |
| 36 // QuicPacketGenerator::DebugDelegateInterface | 36 // QuicPacketGenerator::DebugDelegateInterface |
| 37 void OnFrameAddedToPacket(const QuicFrame& frame) override; | 37 void OnFrameAddedToPacket(const QuicFrame& frame) override; |
| 38 | 38 |
| 39 // QuicConnectionDebugVisitorInterface | 39 // QuicConnectionDebugVisitorInterface |
| 40 void OnPacketSent(const SerializedPacket& serialized_packet, | 40 void OnPacketSent(const SerializedPacket& serialized_packet, |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 int bit_mask_of_packets, | 111 int bit_mask_of_packets, |
| 112 int valid_bits_in_mask); | 112 int valid_bits_in_mask); |
| 113 // For connections longer than 21 received packets, this call will calculate | 113 // For connections longer than 21 received packets, this call will calculate |
| 114 // the overall packet loss rate, and record it into a histogram. | 114 // the overall packet loss rate, and record it into a histogram. |
| 115 void RecordAggregatePacketLossRate() const; | 115 void RecordAggregatePacketLossRate() const; |
| 116 // At destruction time, this records results of |pacaket_received_| into | 116 // At destruction time, this records results of |pacaket_received_| into |
| 117 // histograms for specific connection types. | 117 // histograms for specific connection types. |
| 118 void RecordLossHistograms() const; | 118 void RecordLossHistograms() const; |
| 119 | 119 |
| 120 BoundNetLog net_log_; | 120 BoundNetLog net_log_; |
| 121 QuicSession* session_; // Unowned. | 121 QuicSpdySession* session_; // Unowned. |
| 122 // The last packet sequence number received. | 122 // The last packet sequence number received. |
| 123 QuicPacketSequenceNumber last_received_packet_sequence_number_; | 123 QuicPacketSequenceNumber last_received_packet_sequence_number_; |
| 124 // The size of the most recently received packet. | 124 // The size of the most recently received packet. |
| 125 size_t last_received_packet_size_; | 125 size_t last_received_packet_size_; |
| 126 // The size of the previously received packet. | 126 // The size of the previously received packet. |
| 127 size_t previous_received_packet_size_; | 127 size_t previous_received_packet_size_; |
| 128 // The largest packet sequence number received. In the case where a packet is | 128 // The largest packet sequence number received. In the case where a packet is |
| 129 // received late (out of order), this value will not be updated. | 129 // received late (out of order), this value will not be updated. |
| 130 QuicPacketSequenceNumber largest_received_packet_sequence_number_; | 130 QuicPacketSequenceNumber largest_received_packet_sequence_number_; |
| 131 // The largest packet sequence number which the peer has failed to | 131 // The largest packet sequence number which the peer has failed to |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 // The available type of connection (WiFi, 3G, etc.) when connection was first | 176 // The available type of connection (WiFi, 3G, etc.) when connection was first |
| 177 // used. | 177 // used. |
| 178 const char* const connection_description_; | 178 const char* const connection_description_; |
| 179 | 179 |
| 180 DISALLOW_COPY_AND_ASSIGN(QuicConnectionLogger); | 180 DISALLOW_COPY_AND_ASSIGN(QuicConnectionLogger); |
| 181 }; | 181 }; |
| 182 | 182 |
| 183 } // namespace net | 183 } // namespace net |
| 184 | 184 |
| 185 #endif // NET_QUIC_QUIC_CONNECTION_LOGGER_H_ | 185 #endif // NET_QUIC_QUIC_CONNECTION_LOGGER_H_ |
| OLD | NEW |