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

Unified Diff: net/quic/chromium/quic_chromium_packet_writer.h

Issue 2325733004: Makes QuicChromiumPacketWriter use the delegate for interacting with the connection. (Closed)
Patch Set: Nits fixed. Created 4 years, 3 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/chromium/quic_chromium_packet_writer.h
diff --git a/net/quic/chromium/quic_chromium_packet_writer.h b/net/quic/chromium/quic_chromium_packet_writer.h
index 8c0fc6a378d4889de74fd824ecc459cb0ac1cbcb..72b25adb9004ae305a5c8a78a616a500f1fa2920 100644
--- a/net/quic/chromium/quic_chromium_packet_writer.h
+++ b/net/quic/chromium/quic_chromium_packet_writer.h
@@ -22,22 +22,29 @@ namespace net {
// Chrome specific packet writer which uses a datagram Socket for writing data.
class NET_EXPORT_PRIVATE QuicChromiumPacketWriter : public QuicPacketWriter {
public:
- // Interface which receives notifications on socket write errors.
- class NET_EXPORT_PRIVATE WriteErrorObserver {
+ // Delegate interface which receives notifications on socket write events.
+ class NET_EXPORT_PRIVATE Delegate {
public:
- // Called on socket write error, with the error code of the failure
- // and the packet that was not written as a result of the failure.
- // An implementation must return error code from the rewrite
- // attempt if there was one, else return |error_code|.
- virtual int OnWriteError(int error_code,
- scoped_refptr<StringIOBuffer> last_packet) = 0;
+ // Called when a socket write attempt results in a failure, so
+ // that the delegate may recover from it by perhaps rewriting the
+ // packet to a different socket. An implementation must return the
+ // return value from the rewrite attempt if there is one, and
+ // |error_code| otherwise.
+ virtual int HandleWriteError(int error_code,
+ scoped_refptr<StringIOBuffer> last_packet) = 0;
+ // Called to propagate the final write error to the delegate.
+ virtual void OnWriteError(int error_code) = 0;
+ // Called when the writer is unblocked due to a write completion.
+ virtual void OnWriteUnblocked() = 0;
};
QuicChromiumPacketWriter();
+ // |socket| must outlive writer.
explicit QuicChromiumPacketWriter(Socket* socket);
~QuicChromiumPacketWriter() override;
- void Initialize(WriteErrorObserver* observer, QuicConnection* connection);
+ // |delegate| must outlive writer.
+ void set_delegate(Delegate* delegate) { delegate_ = delegate; }
// Writes |packet| to the socket and returns the error code from the write.
int WritePacketToSocket(StringIOBuffer* packet);
@@ -59,9 +66,8 @@ class NET_EXPORT_PRIVATE QuicChromiumPacketWriter : public QuicPacketWriter {
void set_write_blocked(bool is_blocked) { write_blocked_ = is_blocked; }
private:
- Socket* socket_;
- QuicConnection* connection_;
- WriteErrorObserver* observer_;
+ Socket* socket_; // Unowned.
+ Delegate* delegate_; // Unowned.
// When a write returns asynchronously, |packet_| stores the written
// packet until OnWriteComplete is called.
scoped_refptr<StringIOBuffer> packet_;
« no previous file with comments | « net/quic/chromium/quic_chromium_client_session_test.cc ('k') | net/quic/chromium/quic_chromium_packet_writer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698