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

Unified Diff: net/quic/core/quic_ack_listener_interface.h

Issue 2547583002: Landing Recent QUIC changes until Fri Nov 18 23:21:04 2016 +0000 (Closed)
Patch Set: Remove explicit HTTP/2 enum usage Created 4 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/core/frames/quic_window_update_frame.cc ('k') | net/quic/core/quic_ack_listener_interface.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/core/quic_ack_listener_interface.h
diff --git a/net/quic/core/quic_ack_listener_interface.h b/net/quic/core/quic_ack_listener_interface.h
new file mode 100644
index 0000000000000000000000000000000000000000..955721005116a84b0fd83c79f6d3bbdf408a09ac
--- /dev/null
+++ b/net/quic/core/quic_ack_listener_interface.h
@@ -0,0 +1,48 @@
+// Copyright (c) 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef NET_QUIC_CORE_QUIC_ACK_LISTENER_INTERFACE_H_
+#define NET_QUIC_CORE_QUIC_ACK_LISTENER_INTERFACE_H_
+
+#include "base/memory/ref_counted.h"
+#include "net/quic/core/quic_time.h"
+#include "net/quic/core/quic_types.h"
+
+namespace net {
+
+// Pure virtual class to listen for packet acknowledgements.
+class NET_EXPORT_PRIVATE QuicAckListenerInterface
+ : public base::RefCounted<QuicAckListenerInterface> {
+ public:
+ QuicAckListenerInterface() {}
+
+ // Called when a packet is acked. Called once per packet.
+ // |acked_bytes| is the number of data bytes acked.
+ virtual void OnPacketAcked(int acked_bytes,
+ QuicTime::Delta ack_delay_time) = 0;
+
+ // Called when a packet is retransmitted. Called once per packet.
+ // |retransmitted_bytes| is the number of data bytes retransmitted.
+ virtual void OnPacketRetransmitted(int retransmitted_bytes) = 0;
+
+ protected:
+ friend class base::RefCounted<QuicAckListenerInterface>;
+
+ // Delegates are ref counted.
+ virtual ~QuicAckListenerInterface() {}
+};
+
+struct NET_EXPORT_PRIVATE AckListenerWrapper {
+ AckListenerWrapper(QuicAckListenerInterface* listener,
+ QuicPacketLength data_length);
+ AckListenerWrapper(const AckListenerWrapper& other);
+ ~AckListenerWrapper();
+
+ scoped_refptr<QuicAckListenerInterface> ack_listener;
+ QuicPacketLength length;
+};
+
+} // namespace net
+
+#endif // NET_QUIC_CORE_QUIC_ACK_LISTENER_INTERFACE_H_
« no previous file with comments | « net/quic/core/frames/quic_window_update_frame.cc ('k') | net/quic/core/quic_ack_listener_interface.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698