Index: jingle/glue/channel_socket_adapter.cc |
=================================================================== |
--- jingle/glue/channel_socket_adapter.cc (revision 113718) |
+++ jingle/glue/channel_socket_adapter.cc (working copy) |
@@ -19,7 +19,7 @@ |
: message_loop_(MessageLoop::current()), |
channel_(channel), |
old_read_callback_(NULL), |
- old_write_callback_(NULL), |
+ write_callback_(NULL), |
closed_error_code_(net::OK) { |
DCHECK(channel_); |
@@ -73,12 +73,11 @@ |
} |
int TransportChannelSocketAdapter::Write( |
- net::IOBuffer* buffer, int buffer_size, |
- net::OldCompletionCallback* callback) { |
+ net::IOBuffer* buffer, int buffer_size, net::OldCompletionCallback* callback) { |
DCHECK_EQ(MessageLoop::current(), message_loop_); |
DCHECK(buffer); |
DCHECK(callback); |
- CHECK(!old_write_callback_ && write_callback_.is_null()); |
+ CHECK(!write_callback_); |
if (!channel_) { |
DCHECK(closed_error_code_ != net::OK); |
@@ -100,41 +99,6 @@ |
} else { |
// Channel is not writable yet. |
result = net::ERR_IO_PENDING; |
- old_write_callback_ = callback; |
- write_buffer_ = buffer; |
- write_buffer_size_ = buffer_size; |
- } |
- |
- return result; |
-} |
-int TransportChannelSocketAdapter::Write( |
- net::IOBuffer* buffer, int buffer_size, |
- const net::CompletionCallback& callback) { |
- DCHECK_EQ(MessageLoop::current(), message_loop_); |
- DCHECK(buffer); |
- DCHECK(!callback.is_null()); |
- CHECK(!old_write_callback_ && write_callback_.is_null()); |
- |
- if (!channel_) { |
- DCHECK(closed_error_code_ != net::OK); |
- return closed_error_code_; |
- } |
- |
- int result; |
- if (channel_->writable()) { |
- result = channel_->SendPacket(buffer->data(), buffer_size); |
- if (result < 0) { |
- result = net::MapSystemError(channel_->GetError()); |
- |
- // If the underlying socket returns IO pending where it shouldn't we |
- // pretend the packet is dropped and return as succeeded because no |
- // writeable callback will happen. |
- if (result == net::ERR_IO_PENDING) |
- result = net::OK; |
- } |
- } else { |
- // Channel is not writable yet. |
- result = net::ERR_IO_PENDING; |
write_callback_ = callback; |
write_buffer_ = buffer; |
write_buffer_size_ = buffer_size; |
@@ -177,16 +141,11 @@ |
callback.Run(error_code); |
} |
- if (old_write_callback_) { |
- net::OldCompletionCallback* callback = old_write_callback_; |
- old_write_callback_ = NULL; |
+ if (write_callback_) { |
+ net::OldCompletionCallback* callback = write_callback_; |
+ write_callback_ = NULL; |
write_buffer_ = NULL; |
callback->Run(error_code); |
- } else if (!write_callback_.is_null()) { |
- net::CompletionCallback callback = write_callback_; |
- write_callback_.Reset(); |
- write_buffer_ = NULL; |
- callback.Run(error_code); |
} |
} |
@@ -227,24 +186,17 @@ |
cricket::TransportChannel* channel) { |
DCHECK_EQ(MessageLoop::current(), message_loop_); |
// Try to send the packet if there is a pending write. |
- if (old_write_callback_ || !write_callback_.is_null()) { |
+ if (write_callback_) { |
int result = channel_->SendPacket(write_buffer_->data(), |
write_buffer_size_); |
if (result < 0) |
result = net::MapSystemError(channel_->GetError()); |
if (result != net::ERR_IO_PENDING) { |
- if (old_write_callback_) { |
- net::OldCompletionCallback* callback = old_write_callback_; |
- old_write_callback_ = NULL; |
- write_buffer_ = NULL; |
- callback->Run(result); |
- } else { |
- net::CompletionCallback callback = write_callback_; |
- write_callback_.Reset(); |
- write_buffer_ = NULL; |
- callback.Run(result); |
- } |
+ net::OldCompletionCallback* callback = write_callback_; |
+ write_callback_ = NULL; |
+ write_buffer_ = NULL; |
+ callback->Run(result); |
} |
} |
} |