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

Unified Diff: net/spdy/spdy_proxy_client_socket.cc

Issue 15740018: [SPDY] Change SpdyStream::QueueStreamData() To SendStreamData() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 7 years, 7 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/spdy/spdy_proxy_client_socket.h ('k') | net/spdy/spdy_session_spdy3_unittest.cc » ('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
diff --git a/net/spdy/spdy_proxy_client_socket.cc b/net/spdy/spdy_proxy_client_socket.cc
index 5bc617cb47ff8f08aebb8cfb53349322084b5ff8..43ec5b2313b8792b310f6d579559bc8188278c85 100644
--- a/net/spdy/spdy_proxy_client_socket.cc
+++ b/net/spdy/spdy_proxy_client_socket.cc
@@ -8,6 +8,7 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
+#include "base/callback_helpers.h"
#include "base/logging.h"
#include "base/string_util.h"
#include "base/values.h"
@@ -41,7 +42,6 @@ SpdyProxyClientSocket::SpdyProxyClientSocket(
auth_handler_factory)),
user_buffer_len_(0),
write_buffer_len_(0),
- write_bytes_outstanding_(0),
weak_factory_(this),
net_log_(BoundNetLog::Make(spdy_stream->net_log().net_log(),
NetLog::SOURCE_PROXY_CLIENT_SOCKET)) {
@@ -133,7 +133,6 @@ void SpdyProxyClientSocket::Disconnect() {
read_callback_.Reset();
write_buffer_len_ = 0;
- write_bytes_outstanding_ = 0;
write_callback_.Reset();
next_state_ = STATE_DISCONNECTED;
@@ -227,33 +226,12 @@ int SpdyProxyClientSocket::Write(IOBuffer* buf, int buf_len,
return ERR_SOCKET_NOT_CONNECTED;
DCHECK(spdy_stream_);
- write_bytes_outstanding_= buf_len;
- if (buf_len <= kMaxSpdyFrameChunkSize) {
- spdy_stream_->QueueStreamData(buf, buf_len, DATA_FLAG_NONE);
- net_log_.AddByteTransferEvent(NetLog::TYPE_SOCKET_BYTES_SENT,
- buf_len, buf->data());
- write_callback_ = callback;
- write_buffer_len_ = buf_len;
- return ERR_IO_PENDING;
- }
-
- // 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);
- spdy_stream_->QueueStreamData(iobuf, len, DATA_FLAG_NONE);
- net_log_.AddByteTransferEvent(NetLog::TYPE_SOCKET_BYTES_SENT,
- len, buf->data());
- }
- if (write_bytes_outstanding_ > 0) {
- write_callback_ = callback;
- write_buffer_len_ = buf_len;
- return ERR_IO_PENDING;
- } else {
- return buf_len;
- }
+ spdy_stream_->SendStreamData(buf, buf_len, DATA_FLAG_NONE);
+ net_log_.AddByteTransferEvent(NetLog::TYPE_SOCKET_BYTES_SENT,
+ buf_len, buf->data());
+ write_callback_ = callback;
+ write_buffer_len_ = buf_len;
+ return ERR_IO_PENDING;
}
bool SpdyProxyClientSocket::SetReceiveBufferSize(int32 size) {
@@ -474,8 +452,7 @@ void SpdyProxyClientSocket::OnSendBody() {
CHECK(false);
}
-SpdySendStatus SpdyProxyClientSocket::OnSendBodyComplete(
- size_t /*bytes_sent*/) {
+SpdySendStatus SpdyProxyClientSocket::OnSendBodyComplete() {
// Because we use |spdy_stream_| via STATE_OPEN (ala WebSockets)
// OnSendBodyComplete() must never be called.
CHECK(false);
@@ -528,20 +505,12 @@ int SpdyProxyClientSocket::OnDataReceived(scoped_ptr<SpdyBuffer> buffer) {
return OK;
}
-void SpdyProxyClientSocket::OnDataSent(size_t bytes_sent) {
+void SpdyProxyClientSocket::OnDataSent() {
DCHECK(!write_callback_.is_null());
- DCHECK_LE(static_cast<int>(bytes_sent), write_bytes_outstanding_);
- write_bytes_outstanding_ -= static_cast<int>(bytes_sent);
-
- if (write_bytes_outstanding_ == 0) {
- int rv = write_buffer_len_;
- write_buffer_len_ = 0;
- write_bytes_outstanding_ = 0;
- CompletionCallback c = write_callback_;
- write_callback_.Reset();
- c.Run(rv);
- }
+ int rv = write_buffer_len_;
+ write_buffer_len_ = 0;
+ ResetAndReturn(&write_callback_).Run(rv);
}
void SpdyProxyClientSocket::OnClose(int status) {
@@ -559,7 +528,6 @@ void SpdyProxyClientSocket::OnClose(int status) {
CompletionCallback write_callback = write_callback_;
write_callback_.Reset();
write_buffer_len_ = 0;
- write_bytes_outstanding_ = 0;
// If we're in the middle of connecting, we need to make sure
// we invoke the connect callback.
« no previous file with comments | « net/spdy/spdy_proxy_client_socket.h ('k') | net/spdy/spdy_session_spdy3_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698