summaryrefslogtreecommitdiff
path: root/chromium/net/quic/quic_default_packet_writer.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/quic/quic_default_packet_writer.h')
-rw-r--r--chromium/net/quic/quic_default_packet_writer.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/chromium/net/quic/quic_default_packet_writer.h b/chromium/net/quic/quic_default_packet_writer.h
new file mode 100644
index 00000000000..f60c76ea9be
--- /dev/null
+++ b/chromium/net/quic/quic_default_packet_writer.h
@@ -0,0 +1,50 @@
+// Copyright 2013 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_QUIC_DEFAULT_PACKET_WRITER_H_
+#define NET_QUIC_QUIC_DEFAULT_PACKET_WRITER_H_
+
+#include "base/basictypes.h"
+#include "base/memory/weak_ptr.h"
+#include "net/base/ip_endpoint.h"
+#include "net/quic/quic_connection.h"
+#include "net/quic/quic_packet_writer.h"
+#include "net/quic/quic_protocol.h"
+#include "net/udp/datagram_client_socket.h"
+
+namespace net {
+
+class QuicBlockedWriterInterface;
+
+// Chrome specific packet writer which uses a DatagramClientSocket for writing
+// data.
+class NET_EXPORT_PRIVATE QuicDefaultPacketWriter : public QuicPacketWriter {
+ public:
+ QuicDefaultPacketWriter();
+ explicit QuicDefaultPacketWriter(DatagramClientSocket* socket);
+ virtual ~QuicDefaultPacketWriter();
+
+ // QuicPacketWriter
+ virtual WriteResult WritePacket(
+ const char* buffer, size_t buf_len,
+ const net::IPAddressNumber& self_address,
+ const net::IPEndPoint& peer_address,
+ QuicBlockedWriterInterface* blocked_writer) OVERRIDE;
+
+ virtual bool IsWriteBlockedDataBuffered() const OVERRIDE;
+
+ void OnWriteComplete(int rv);
+ void SetConnection(QuicConnection* connection) {
+ connection_ = connection;
+ }
+
+ private:
+ base::WeakPtrFactory<QuicDefaultPacketWriter> weak_factory_;
+ DatagramClientSocket* socket_;
+ QuicConnection* connection_;
+};
+
+} // namespace net
+
+#endif // NET_QUIC_QUIC_DEFAULT_PACKET_WRITER_H_