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

Side by Side Diff: net/quic/quic_received_packet_manager.h

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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 // Manages the packet entropy calculation for both sent and received packets 5 // Manages the packet entropy calculation for both sent and received packets
6 // for a connection. 6 // for a connection.
7 7
8 #ifndef NET_QUIC_QUIC_RECEIVED_PACKET_MANAGER_H_ 8 #ifndef NET_QUIC_QUIC_RECEIVED_PACKET_MANAGER_H_
9 #define NET_QUIC_QUIC_RECEIVED_PACKET_MANAGER_H_ 9 #define NET_QUIC_QUIC_RECEIVED_PACKET_MANAGER_H_
10 10
11 #include "net/quic/congestion_control/receive_algorithm_interface.h" 11 #include "net/quic/congestion_control/receive_algorithm_interface.h"
12 #include "net/quic/quic_framer.h" 12 #include "net/quic/quic_framer.h"
13 #include "net/quic/quic_protocol.h" 13 #include "net/quic/quic_protocol.h"
14 14
15 namespace net { 15 namespace net {
16 16
17 namespace test { 17 namespace test {
18 class QuicConnectionPeer; 18 class QuicConnectionPeer;
19 class QuicReceivedPacketManagerPeer; 19 class QuicReceivedPacketManagerPeer;
20 } // namespace test 20 } // namespace test
21 21
22 struct QuicConnectionStats; 22 struct QuicConnectionStats;
23 23
24 // Records all received packets by a connection and tracks their entropy. 24 // Records all received packets by a connection and tracks their entropy.
25 // Also calculates the correct entropy for the framer when it truncates an ack 25 // Also calculates the correct entropy for the framer when it truncates an ack
26 // frame being serialized. 26 // frame being serialized.
27 class NET_EXPORT_PRIVATE QuicReceivedPacketManager : 27 class NET_EXPORT_PRIVATE QuicReceivedPacketManager
28 public QuicReceivedEntropyHashCalculatorInterface { 28 : public QuicReceivedEntropyHashCalculatorInterface {
29 public: 29 public:
30 explicit QuicReceivedPacketManager(CongestionFeedbackType congestion_type, 30 explicit QuicReceivedPacketManager(CongestionFeedbackType congestion_type,
31 QuicConnectionStats* stats); 31 QuicConnectionStats* stats);
32 virtual ~QuicReceivedPacketManager(); 32 virtual ~QuicReceivedPacketManager();
33 33
34 // Updates the internal state concerning which packets have been received. 34 // Updates the internal state concerning which packets have been received.
35 // bytes: the packet size in bytes including Quic Headers. 35 // bytes: the packet size in bytes including Quic Headers.
36 // header: the packet header. 36 // header: the packet header.
37 // timestamp: the arrival time of the packet. 37 // timestamp: the arrival time of the packet.
38 void RecordPacketReceived(QuicByteCount bytes, 38 void RecordPacketReceived(QuicByteCount bytes,
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 } 87 }
88 88
89 QuicPacketSequenceNumber peer_least_packet_awaiting_ack() { 89 QuicPacketSequenceNumber peer_least_packet_awaiting_ack() {
90 return peer_least_packet_awaiting_ack_; 90 return peer_least_packet_awaiting_ack_;
91 } 91 }
92 92
93 private: 93 private:
94 friend class test::QuicConnectionPeer; 94 friend class test::QuicConnectionPeer;
95 friend class test::QuicReceivedPacketManagerPeer; 95 friend class test::QuicReceivedPacketManagerPeer;
96 96
97 typedef std::map<QuicPacketSequenceNumber, 97 typedef std::map<QuicPacketSequenceNumber, QuicPacketEntropyHash>
98 QuicPacketEntropyHash> ReceivedEntropyMap; 98 ReceivedEntropyMap;
99 99
100 // Record the received entropy hash against |sequence_number|. 100 // Record the received entropy hash against |sequence_number|.
101 void RecordPacketEntropyHash(QuicPacketSequenceNumber sequence_number, 101 void RecordPacketEntropyHash(QuicPacketSequenceNumber sequence_number,
102 QuicPacketEntropyHash entropy_hash); 102 QuicPacketEntropyHash entropy_hash);
103 103
104 // Recalculate the entropy hash and clears old packet entropies, 104 // Recalculate the entropy hash and clears old packet entropies,
105 // now that the sender sent us the |entropy_hash| for packets up to, 105 // now that the sender sent us the |entropy_hash| for packets up to,
106 // but not including, |peer_least_unacked|. 106 // but not including, |peer_least_unacked|.
107 void RecalculateEntropyHash(QuicPacketSequenceNumber peer_least_unacked, 107 void RecalculateEntropyHash(QuicPacketSequenceNumber peer_least_unacked,
108 QuicPacketEntropyHash entropy_hash); 108 QuicPacketEntropyHash entropy_hash);
(...skipping 12 matching lines...) Expand all
121 // TODO(ianswett): When the entropy flag is off, the entropy should not be 0. 121 // TODO(ianswett): When the entropy flag is off, the entropy should not be 0.
122 ReceivedEntropyMap packets_entropy_; 122 ReceivedEntropyMap packets_entropy_;
123 123
124 // Cumulative hash of entropy of all received packets. 124 // Cumulative hash of entropy of all received packets.
125 QuicPacketEntropyHash packets_entropy_hash_; 125 QuicPacketEntropyHash packets_entropy_hash_;
126 126
127 // The largest sequence number cleared by RecalculateEntropyHash. 127 // The largest sequence number cleared by RecalculateEntropyHash.
128 // Received entropy cannot be calculated for numbers less than it. 128 // Received entropy cannot be calculated for numbers less than it.
129 QuicPacketSequenceNumber largest_sequence_number_; 129 QuicPacketSequenceNumber largest_sequence_number_;
130 130
131
132 // Track some peer state so we can do less bookkeeping. 131 // Track some peer state so we can do less bookkeeping.
133 // Largest sequence number that the peer has observed. Mostly received, 132 // Largest sequence number that the peer has observed. Mostly received,
134 // missing in case of truncated acks. 133 // missing in case of truncated acks.
135 QuicPacketSequenceNumber peer_largest_observed_packet_; 134 QuicPacketSequenceNumber peer_largest_observed_packet_;
136 // Least sequence number which the peer is still waiting for. 135 // Least sequence number which the peer is still waiting for.
137 QuicPacketSequenceNumber least_packet_awaited_by_peer_; 136 QuicPacketSequenceNumber least_packet_awaited_by_peer_;
138 // Least sequence number of the the packet sent by the peer for which it 137 // Least sequence number of the the packet sent by the peer for which it
139 // hasn't received an ack. 138 // hasn't received an ack.
140 QuicPacketSequenceNumber peer_least_packet_awaiting_ack_; 139 QuicPacketSequenceNumber peer_least_packet_awaiting_ack_;
141 140
142 // Received packet information used to produce acks. 141 // Received packet information used to produce acks.
143 ReceivedPacketInfo received_info_; 142 ReceivedPacketInfo received_info_;
144 143
145 // The time we received the largest_observed sequence number, or zero if 144 // The time we received the largest_observed sequence number, or zero if
146 // no sequence numbers have been received since UpdateReceivedPacketInfo. 145 // no sequence numbers have been received since UpdateReceivedPacketInfo.
147 // Needed for calculating delta_time_largest_observed. 146 // Needed for calculating delta_time_largest_observed.
148 QuicTime time_largest_observed_; 147 QuicTime time_largest_observed_;
149 148
150 scoped_ptr<ReceiveAlgorithmInterface> receive_algorithm_; 149 scoped_ptr<ReceiveAlgorithmInterface> receive_algorithm_;
151 150
152 QuicConnectionStats* stats_; 151 QuicConnectionStats* stats_;
153 152
154 DISALLOW_COPY_AND_ASSIGN(QuicReceivedPacketManager); 153 DISALLOW_COPY_AND_ASSIGN(QuicReceivedPacketManager);
155 }; 154 };
156 155
157 } // namespace net 156 } // namespace net
158 157
159 #endif // NET_QUIC_QUIC_RECEIVED_PACKET_MANAGER_H_ 158 #endif // NET_QUIC_QUIC_RECEIVED_PACKET_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698