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

Unified Diff: net/spdy/spdy_proxy_client_socket.cc

Issue 8889036: Revert 113699 - base::Bind: Convert Socket::Write. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years 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/spdy/spdy_proxy_client_socket.h ('k') | net/udp/udp_client_socket.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/spdy_proxy_client_socket.cc
===================================================================
--- net/spdy/spdy_proxy_client_socket.cc (revision 113718)
+++ net/spdy/spdy_proxy_client_socket.cc (working copy)
@@ -34,7 +34,7 @@
next_state_(STATE_DISCONNECTED),
spdy_stream_(spdy_stream),
old_read_callback_(NULL),
- old_write_callback_(NULL),
+ write_callback_(NULL),
endpoint_(endpoint),
auth_(
new HttpAuthController(HttpAuth::AUTH_PROXY,
@@ -126,8 +126,7 @@
write_buffer_len_ = 0;
write_bytes_outstanding_ = 0;
- old_write_callback_ = NULL;
- write_callback_.Reset();
+ write_callback_ = NULL;
next_state_ = STATE_DISCONNECTED;
@@ -245,7 +244,7 @@
int SpdyProxyClientSocket::Write(IOBuffer* buf, int buf_len,
OldCompletionCallback* callback) {
- DCHECK(!old_write_callback_ && write_callback_.is_null());
+ DCHECK(!write_callback_);
if (next_state_ != STATE_OPEN)
return ERR_SOCKET_NOT_CONNECTED;
@@ -254,44 +253,6 @@
if (buf_len <= kMaxSpdyFrameChunkSize) {
int rv = spdy_stream_->WriteStreamData(buf, buf_len, spdy::DATA_FLAG_NONE);
if (rv == ERR_IO_PENDING) {
- old_write_callback_ = callback;
- write_buffer_len_ = buf_len;
- }
- return rv;
- }
-
- // Since a SPDY Data frame can only include kMaxSpdyFrameChunkSize bytes
- // we need to send multiple data frames
- for (int i = 0; i < buf_len; i += kMaxSpdyFrameChunkSize) {
- int len = std::min(kMaxSpdyFrameChunkSize, buf_len - i);
- scoped_refptr<DrainableIOBuffer> iobuf(new DrainableIOBuffer(buf, i + len));
- iobuf->SetOffset(i);
- int rv = spdy_stream_->WriteStreamData(iobuf, len, spdy::DATA_FLAG_NONE);
- if (rv > 0) {
- write_bytes_outstanding_ -= rv;
- } else if (rv != ERR_IO_PENDING) {
- return rv;
- }
- }
- if (write_bytes_outstanding_ > 0) {
- old_write_callback_ = callback;
- write_buffer_len_ = buf_len;
- return ERR_IO_PENDING;
- } else {
- return buf_len;
- }
-}
-int SpdyProxyClientSocket::Write(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) {
- DCHECK(!old_write_callback_ && write_callback_.is_null());
- if (next_state_ != STATE_OPEN)
- return ERR_SOCKET_NOT_CONNECTED;
-
- DCHECK(spdy_stream_);
- write_bytes_outstanding_= buf_len;
- if (buf_len <= kMaxSpdyFrameChunkSize) {
- int rv = spdy_stream_->WriteStreamData(buf, buf_len, spdy::DATA_FLAG_NONE);
- if (rv == ERR_IO_PENDING) {
write_callback_ = callback;
write_buffer_len_ = buf_len;
}
@@ -571,7 +532,7 @@
}
void SpdyProxyClientSocket::OnDataSent(int length) {
- DCHECK(old_write_callback_ || !write_callback_.is_null());
+ DCHECK(write_callback_);
write_bytes_outstanding_ -= length;
@@ -581,15 +542,9 @@
int rv = write_buffer_len_;
write_buffer_len_ = 0;
write_bytes_outstanding_ = 0;
- if (old_write_callback_) {
- OldCompletionCallback* c = old_write_callback_;
- old_write_callback_ = NULL;
- c->Run(rv);
- } else {
- CompletionCallback c = write_callback_;
- write_callback_.Reset();
- c.Run(rv);
- }
+ OldCompletionCallback* c = write_callback_;
+ write_callback_ = NULL;
+ c->Run(rv);
}
}
@@ -606,10 +561,8 @@
next_state_ = STATE_DISCONNECTED;
base::WeakPtr<SpdyProxyClientSocket> weak_ptr = weak_factory_.GetWeakPtr();
- OldCompletionCallback* old_write_callback = old_write_callback_;
- CompletionCallback write_callback = write_callback_;
- old_write_callback_ = NULL;
- write_callback_.Reset();
+ OldCompletionCallback* write_callback = write_callback_;
+ write_callback_ = NULL;
write_buffer_len_ = 0;
write_bytes_outstanding_ = 0;
@@ -631,12 +584,8 @@
OnDataReceived(NULL, 0);
}
// This may have been deleted by read_callback_, so check first.
- if (weak_ptr && (old_write_callback || !write_callback.is_null())) {
- if (old_write_callback)
- old_write_callback->Run(ERR_CONNECTION_CLOSED);
- else
- write_callback.Run(ERR_CONNECTION_CLOSED);
- }
+ if (weak_ptr && write_callback)
+ write_callback->Run(ERR_CONNECTION_CLOSED);
}
void SpdyProxyClientSocket::set_chunk_callback(ChunkCallback* /*callback*/) {
« no previous file with comments | « net/spdy/spdy_proxy_client_socket.h ('k') | net/udp/udp_client_socket.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698