diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-28 16:28:44 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-28 16:28:44 +0000 |
commit | 9b5e46cbcd9b292cb6e7ff59d61dde9426e3bed3 (patch) | |
tree | 480b5b99942f44386a469e9ccda0e288c5e576a5 /net/http/http_response_body_drainer.h | |
parent | c1f06d70cb2c39e48877cdef363d16dd6b8d5e64 (diff) | |
download | chromium_src-9b5e46cbcd9b292cb6e7ff59d61dde9426e3bed3.zip chromium_src-9b5e46cbcd9b292cb6e7ff59d61dde9426e3bed3.tar.gz chromium_src-9b5e46cbcd9b292cb6e7ff59d61dde9426e3bed3.tar.bz2 |
Kill all HttpResponseBodyDrainers when HttpNetworkSession goes away.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/3388022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60798 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http/http_response_body_drainer.h')
-rw-r--r-- | net/http/http_response_body_drainer.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/net/http/http_response_body_drainer.h b/net/http/http_response_body_drainer.h index 16a4c88..1aa4e93 100644 --- a/net/http/http_response_body_drainer.h +++ b/net/http/http_response_body_drainer.h @@ -11,6 +11,7 @@ #include "base/scoped_ptr.h" #include "base/timer.h" #include "net/base/completion_callback.h" +#include "net/http/http_network_session.h" namespace net { @@ -27,10 +28,12 @@ class HttpResponseBodyDrainer { static const int kTimeoutInSeconds = 5; explicit HttpResponseBodyDrainer(HttpStream* stream); + ~HttpResponseBodyDrainer(); // Starts reading the body until completion, or we hit the buffer limit, or we - // timeout. After Start(), |this| will eventually delete itself. - void Start(); + // timeout. After Start(), |this| will eventually delete itself. If it + // doesn't complete immediately, it will add itself to |session|. + void Start(HttpNetworkSession* session); private: enum State { @@ -39,8 +42,6 @@ class HttpResponseBodyDrainer { STATE_NONE, }; - ~HttpResponseBodyDrainer(); - int DoLoop(int result); int DoDrainResponseBody(); @@ -50,13 +51,14 @@ class HttpResponseBodyDrainer { void OnTimerFired(); void Finish(int result); + scoped_refptr<IOBuffer> read_buf_; const scoped_ptr<HttpStream> stream_; State next_state_; - scoped_refptr<IOBuffer> read_buf_; int total_read_; CompletionCallbackImpl<HttpResponseBodyDrainer> io_callback_; CompletionCallback* user_callback_; base::OneShotTimer<HttpResponseBodyDrainer> timer_; + HttpNetworkSession* session_; DISALLOW_COPY_AND_ASSIGN(HttpResponseBodyDrainer); }; |