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

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

Issue 605163004: Land Recent QUIC Changes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@Final_0925
Patch Set: Created 6 years, 2 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/quic_config_test.cc ('k') | net/quic/quic_connection.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 // The entity that handles framing writes for a Quic client or server. 5 // The entity that handles framing writes for a Quic client or server.
6 // Each QuicSession will have a connection associated with it. 6 // Each QuicSession will have a connection associated with it.
7 // 7 //
8 // On the server side, the Dispatcher handles the raw reads, and hands off 8 // On the server side, the Dispatcher handles the raw reads, and hands off
9 // packets via ProcessUdpPacket for framing and processing. 9 // packets via ProcessUdpPacket for framing and processing.
10 // 10 //
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 // points. Implementations must not mutate the state of the connection 118 // points. Implementations must not mutate the state of the connection
119 // as a result of these callbacks. 119 // as a result of these callbacks.
120 class NET_EXPORT_PRIVATE QuicConnectionDebugVisitor 120 class NET_EXPORT_PRIVATE QuicConnectionDebugVisitor
121 : public QuicPacketGenerator::DebugDelegate, 121 : public QuicPacketGenerator::DebugDelegate,
122 public QuicSentPacketManager::DebugDelegate { 122 public QuicSentPacketManager::DebugDelegate {
123 public: 123 public:
124 virtual ~QuicConnectionDebugVisitor() {} 124 virtual ~QuicConnectionDebugVisitor() {}
125 125
126 // Called when a packet has been sent. 126 // Called when a packet has been sent.
127 virtual void OnPacketSent(QuicPacketSequenceNumber sequence_number, 127 virtual void OnPacketSent(QuicPacketSequenceNumber sequence_number,
128 QuicPacketSequenceNumber original_sequence_number,
128 EncryptionLevel level, 129 EncryptionLevel level,
129 TransmissionType transmission_type, 130 TransmissionType transmission_type,
130 const QuicEncryptedPacket& packet, 131 const QuicEncryptedPacket& packet,
131 WriteResult result) {} 132 WriteResult result) {}
132 133
133 // Called when the contents of a packet have been retransmitted as
134 // a new packet.
135 virtual void OnPacketRetransmitted(
136 QuicPacketSequenceNumber old_sequence_number,
137 QuicPacketSequenceNumber new_sequence_number) {}
138
139 // Called when a packet has been received, but before it is 134 // Called when a packet has been received, but before it is
140 // validated or parsed. 135 // validated or parsed.
141 virtual void OnPacketReceived(const IPEndPoint& self_address, 136 virtual void OnPacketReceived(const IPEndPoint& self_address,
142 const IPEndPoint& peer_address, 137 const IPEndPoint& peer_address,
143 const QuicEncryptedPacket& packet) {} 138 const QuicEncryptedPacket& packet) {}
144 139
145 // Called when a packet is received with a connection id that does not 140 // Called when a packet is received with a connection id that does not
146 // match the ID of this connection. 141 // match the ID of this connection.
147 virtual void OnIncorrectConnectionId( 142 virtual void OnIncorrectConnectionId(
148 QuicConnectionId connection_id) {} 143 QuicConnectionId connection_id) {}
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 } 418 }
424 419
425 // Returns true if the underlying UDP socket is writable, there is 420 // Returns true if the underlying UDP socket is writable, there is
426 // no queued data and the connection is not congestion-control 421 // no queued data and the connection is not congestion-control
427 // blocked. 422 // blocked.
428 bool CanWriteStreamData(); 423 bool CanWriteStreamData();
429 424
430 // Returns true if the connection has queued packets or frames. 425 // Returns true if the connection has queued packets or frames.
431 bool HasQueuedData() const; 426 bool HasQueuedData() const;
432 427
428 // TODO(ianswett): Remove when quic_unified_timeouts is removed.
433 // Sets (or resets) the idle state connection timeout. Also, checks and times 429 // Sets (or resets) the idle state connection timeout. Also, checks and times
434 // out the connection if network timer has expired for |timeout|. 430 // out the connection if network timer has expired for |timeout|.
435 void SetIdleNetworkTimeout(QuicTime::Delta timeout); 431 void SetIdleNetworkTimeout(QuicTime::Delta timeout);
436 // Sets (or resets) the total time delta the connection can be alive for. 432 // Sets (or resets) the total time delta the connection can be alive for.
437 // Also, checks and times out the connection if timer has expired for 433 // Also, checks and times out the connection if timer has expired for
438 // |timeout|. Used to limit the time a connection can be alive before crypto 434 // |timeout|. Used to limit the time a connection can be alive before crypto
439 // handshake finishes. 435 // handshake finishes.
440 void SetOverallConnectionTimeout(QuicTime::Delta timeout); 436 void SetOverallConnectionTimeout(QuicTime::Delta timeout);
441 437
438 // Sets the overall and idle state connection timeouts.
439 // Times out the connection if the timeout has been reached and
440 // the quic_timeouts_only_from_alarms flag is false.
441 void SetNetworkTimeouts(QuicTime::Delta overall_timeout,
442 QuicTime::Delta idle_timeout);
443
442 // If the connection has timed out, this will close the connection. 444 // If the connection has timed out, this will close the connection.
443 // Otherwise, it will reschedule the timeout alarm. 445 // Otherwise, it will reschedule the timeout alarm.
444 void CheckForTimeout(); 446 void CheckForTimeout();
445 447
446 // Sends a ping, and resets the ping alarm. 448 // Sends a ping, and resets the ping alarm.
447 void SendPing(); 449 void SendPing();
448 450
449 // Sets up a packet with an QuicAckFrame and sends it out. 451 // Sets up a packet with an QuicAckFrame and sends it out.
450 void SendAck(); 452 void SendAck();
451 453
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
809 // If non-empty this contains the set of versions received in a 811 // If non-empty this contains the set of versions received in a
810 // version negotiation packet. 812 // version negotiation packet.
811 QuicVersionVector server_supported_versions_; 813 QuicVersionVector server_supported_versions_;
812 814
813 DISALLOW_COPY_AND_ASSIGN(QuicConnection); 815 DISALLOW_COPY_AND_ASSIGN(QuicConnection);
814 }; 816 };
815 817
816 } // namespace net 818 } // namespace net
817 819
818 #endif // NET_QUIC_QUIC_CONNECTION_H_ 820 #endif // NET_QUIC_QUIC_CONNECTION_H_
OLDNEW
« no previous file with comments | « net/quic/quic_config_test.cc ('k') | net/quic/quic_connection.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698