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

Unified Diff: net/flip/flip_session.h

Issue 339047: Cleanup the FlipDelegate API a bit in prep for fixing upload.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 2 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
« no previous file with comments | « net/flip/flip_network_transaction.cc ('k') | net/flip/flip_session.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/flip/flip_session.h
===================================================================
--- net/flip/flip_session.h (revision 30342)
+++ net/flip/flip_session.h (working copy)
@@ -31,18 +31,59 @@
class HttpRequestInfo;
class HttpResponseInfo;
-// A callback interface for HTTP content retrieved from the Flip stream.
+// The FlipDelegate interface is an interface so that the FlipSession
+// can interact with the provider of a given Flip stream.
class FlipDelegate {
public:
virtual ~FlipDelegate() {}
+
+ // Accessors from the delegate.
+
+ // The delegate provides access to the HttpRequestInfo for use by the flip
+ // session.
virtual const HttpRequestInfo* request() = 0;
+
+ // The delegate provides access to an UploadDataStream for use by the
+ // flip session. If the delegate is not uploading content, this call
+ // must return NULL.
virtual const UploadDataStream* data() = 0;
- virtual void OnRequestSent(int status) = 0;
+ // Callbacks.
+
+ // Called by the FlipSession when UploadData has been sent. If the
+ // request has no upload data, this call will never be called. This
+ // callback may be called multiple times if large amounts of data are
+ // being uploaded. This callback will only be called prior to the
+ // OnRequestSent callback.
+ // |result| contains the number of bytes written or an error code.
+ virtual void OnUploadDataSent(int result) = 0;
+
+ // Called by the FlipSession when the Request has been entirely sent.
+ // If the request contains upload data, all upload data has been sent.
+ // |result| contains an error code if a failure has occurred or OK
+ // on success.
+ virtual void OnRequestSent(int result) = 0;
+
+ // Called by the FlipSession when a response (e.g. a SYN_REPLY) has been
+ // received for this request. This callback will never be called prior
+ // to the OnRequestSent() callback.
virtual void OnResponseReceived(HttpResponseInfo* response) = 0;
+
+ // Called by the FlipSession when response data has been received for this
+ // request. This callback may be called multiple times as data arrives
+ // from the network, and will never be called prior to OnResponseReceived.
+ // |buffer| contains the data received. The delegate must copy any data
+ // from this buffer before returning from this callback.
+ // |bytes| is the number of bytes received or an error.
+ // A zero-length count does not indicate end-of-stream.
virtual void OnDataReceived(const char* buffer, int bytes) = 0;
+
+ // Called by the FlipSession when the request is finished. This callback
+ // will always be called at the end of the request and signals to the
+ // delegate that the delegate can be torn down. No further callbacks to the
+ // delegate will be made after this call.
+ // |status| is an error code or OK.
virtual void OnClose(int status) = 0;
- virtual void OnCancel() = 0;
};
class PrioritizedIOBuffer {
« no previous file with comments | « net/flip/flip_network_transaction.cc ('k') | net/flip/flip_session.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698