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

Unified Diff: net/http/http_response_body_drainer.cc

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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/http/http_response_body_drainer.h ('k') | net/http/http_response_body_drainer_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/http_response_body_drainer.cc
diff --git a/net/http/http_response_body_drainer.cc b/net/http/http_response_body_drainer.cc
deleted file mode 100644
index fdcec3115d3fc515723f977c54bf68cfd9b4f8f8..0000000000000000000000000000000000000000
--- a/net/http/http_response_body_drainer.cc
+++ /dev/null
@@ -1,126 +0,0 @@
-// Copyright (c) 2012 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.
-
-#include "net/http/http_response_body_drainer.h"
-
-#include "base/compiler_specific.h"
-#include "base/logging.h"
-#include "net/base/io_buffer.h"
-#include "net/base/net_errors.h"
-#include "net/http/http_network_session.h"
-#include "net/http/http_stream.h"
-
-namespace net {
-
-HttpResponseBodyDrainer::HttpResponseBodyDrainer(HttpStream* stream)
- : stream_(stream),
- next_state_(STATE_NONE),
- total_read_(0),
- session_(NULL) {}
-
-HttpResponseBodyDrainer::~HttpResponseBodyDrainer() {}
-
-void HttpResponseBodyDrainer::Start(HttpNetworkSession* session) {
- read_buf_ = new IOBuffer(kDrainBodyBufferSize);
- next_state_ = STATE_DRAIN_RESPONSE_BODY;
- int rv = DoLoop(OK);
-
- if (rv == ERR_IO_PENDING) {
- timer_.Start(FROM_HERE,
- base::TimeDelta::FromSeconds(kTimeoutInSeconds),
- this,
- &HttpResponseBodyDrainer::OnTimerFired);
- session_ = session;
- session->AddResponseDrainer(this);
- return;
- }
-
- Finish(rv);
-}
-
-int HttpResponseBodyDrainer::DoLoop(int result) {
- DCHECK_NE(next_state_, STATE_NONE);
-
- int rv = result;
- do {
- State state = next_state_;
- next_state_ = STATE_NONE;
- switch (state) {
- case STATE_DRAIN_RESPONSE_BODY:
- DCHECK_EQ(OK, rv);
- rv = DoDrainResponseBody();
- break;
- case STATE_DRAIN_RESPONSE_BODY_COMPLETE:
- rv = DoDrainResponseBodyComplete(rv);
- break;
- default:
- NOTREACHED() << "bad state";
- rv = ERR_UNEXPECTED;
- break;
- }
- } while (rv != ERR_IO_PENDING && next_state_ != STATE_NONE);
-
- return rv;
-}
-
-int HttpResponseBodyDrainer::DoDrainResponseBody() {
- next_state_ = STATE_DRAIN_RESPONSE_BODY_COMPLETE;
-
- return stream_->ReadResponseBody(
- read_buf_.get(),
- kDrainBodyBufferSize - total_read_,
- base::Bind(&HttpResponseBodyDrainer::OnIOComplete,
- base::Unretained(this)));
-}
-
-int HttpResponseBodyDrainer::DoDrainResponseBodyComplete(int result) {
- DCHECK_NE(ERR_IO_PENDING, result);
-
- if (result < 0)
- return result;
-
- total_read_ += result;
- if (stream_->IsResponseBodyComplete())
- return OK;
-
- DCHECK_LE(total_read_, kDrainBodyBufferSize);
- if (total_read_ >= kDrainBodyBufferSize)
- return ERR_RESPONSE_BODY_TOO_BIG_TO_DRAIN;
-
- if (result == 0)
- return ERR_CONNECTION_CLOSED;
-
- next_state_ = STATE_DRAIN_RESPONSE_BODY;
- return OK;
-}
-
-void HttpResponseBodyDrainer::OnIOComplete(int result) {
- int rv = DoLoop(result);
- if (rv != ERR_IO_PENDING) {
- timer_.Stop();
- Finish(rv);
- }
-}
-
-void HttpResponseBodyDrainer::OnTimerFired() {
- Finish(ERR_TIMED_OUT);
-}
-
-void HttpResponseBodyDrainer::Finish(int result) {
- DCHECK_NE(ERR_IO_PENDING, result);
-
- if (session_)
- session_->RemoveResponseDrainer(this);
-
- if (result < 0) {
- stream_->Close(true /* no keep-alive */);
- } else {
- DCHECK_EQ(OK, result);
- stream_->Close(false /* keep-alive */);
- }
-
- delete this;
-}
-
-} // namespace net
« no previous file with comments | « net/http/http_response_body_drainer.h ('k') | net/http/http_response_body_drainer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698