summaryrefslogtreecommitdiff
path: root/chromium/net/tools/quic/quic_packet_writer.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/tools/quic/quic_packet_writer.h')
-rw-r--r--chromium/net/tools/quic/quic_packet_writer.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/chromium/net/tools/quic/quic_packet_writer.h b/chromium/net/tools/quic/quic_packet_writer.h
new file mode 100644
index 00000000000..b10e852d299
--- /dev/null
+++ b/chromium/net/tools/quic/quic_packet_writer.h
@@ -0,0 +1,33 @@
+// Copyright (c) 2012 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_TOOLS_QUIC_QUIC_PACKET_WRITER_H_
+#define NET_TOOLS_QUIC_QUIC_PACKET_WRITER_H_
+
+#include "net/base/ip_endpoint.h"
+
+namespace net {
+
+class QuicBlockedWriterInterface;
+
+namespace tools {
+
+// An interface between writers and the entity managing the
+// socket (in our case the QuicDispatcher). This allows the Dispatcher to
+// control writes, and manage any writers who end up write blocked.
+class QuicPacketWriter {
+ public:
+ virtual ~QuicPacketWriter() {}
+
+ virtual int WritePacket(const char* buffer, size_t buf_len,
+ const net::IPAddressNumber& self_address,
+ const net::IPEndPoint& peer_address,
+ QuicBlockedWriterInterface* blocked_writer,
+ int* error) = 0;
+};
+
+} // namespace tools
+} // namespace net
+
+#endif // NET_TOOLS_QUIC_QUIC_PACKET_WRITER_H_