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

Unified Diff: net/quic/quic_server_packet_writer.h

Issue 340433002: Port QuicServer to Chrome network stack (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address further comments Created 6 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: net/quic/quic_server_packet_writer.h
diff --git a/net/quic/quic_server_packet_writer.h b/net/quic/quic_server_packet_writer.h
index 63829935521019e5712e27410f70bbc38485ff40..549c6bcd0a4310036809923cd24272a7e8655428 100644
--- a/net/quic/quic_server_packet_writer.h
+++ b/net/quic/quic_server_packet_writer.h
@@ -11,38 +11,49 @@
#include "net/quic/quic_connection.h"
#include "net/quic/quic_packet_writer.h"
#include "net/quic/quic_protocol.h"
+#include "net/quic/quic_types.h"
#include "net/udp/udp_server_socket.h"
wtc 2014/06/20 21:40:50 A forward declaration of class UDPServerSocket may
dmziegler 2014/06/23 18:31:25 Done.
namespace net {
-struct WriteResult;
+class QuicBlockedWriterInterface;
// Chrome specific packet writer which uses a UDPServerSocket for writing
// data.
class QuicServerPacketWriter : public QuicPacketWriter {
public:
- QuicServerPacketWriter();
- explicit QuicServerPacketWriter(UDPServerSocket* socket);
+ typedef base::Callback<void(WriteResult)> WriteCallback;
+
+ QuicServerPacketWriter(QuicBlockedWriterInterface* blocked_writer,
+ UDPServerSocket* socket);
wtc 2014/06/20 21:40:50 Nit: I would reorder these two parameters because
dmziegler 2014/06/23 18:31:24 Done.
virtual ~QuicServerPacketWriter();
+ virtual WriteResult WritePacketWithCallback(
wtc 2014/06/20 21:40:50 Document this method.
dmziegler 2014/06/23 18:31:24 Done.
+ const char* buffer,
+ size_t buf_len,
+ const IPAddressNumber& self_address,
+ const IPEndPoint& peer_address,
+ WriteCallback callback);
+
// QuicPacketWriter
virtual WriteResult WritePacket(const char* buffer,
size_t buf_len,
- const net::IPAddressNumber& self_address,
- const net::IPEndPoint& peer_address) OVERRIDE;
+ const IPAddressNumber& self_address,
+ const IPEndPoint& peer_address) OVERRIDE;
virtual bool IsWriteBlockedDataBuffered() const OVERRIDE;
virtual bool IsWriteBlocked() const OVERRIDE;
virtual void SetWritable() OVERRIDE;
void OnWriteComplete(int rv);
- void SetConnection(QuicConnection* connection) {
- connection_ = connection;
- }
+
private:
base::WeakPtrFactory<QuicServerPacketWriter> weak_factory_;
UDPServerSocket* socket_;
- QuicConnection* connection_;
+
+ // To be notified after every successful asynchronous write.
+ QuicBlockedWriterInterface* blocked_writer_;
+ base::Callback<void(WriteResult wr)> callback_;
wtc 2014/06/20 21:40:50 Change "wr" to "result". But we should be able to
dmziegler 2014/06/23 18:31:24 Done.
bool write_blocked_;
DISALLOW_COPY_AND_ASSIGN(QuicServerPacketWriter);

Powered by Google App Engine
This is Rietveld 408576698