Index: jingle/glue/pseudotcp_adapter_unittest.cc |
diff --git a/jingle/glue/pseudotcp_adapter_unittest.cc b/jingle/glue/pseudotcp_adapter_unittest.cc |
index 6d803a51b38eca2dde92b864f88f8340397a80cd..7ee217a7d3dbab43dae0d676d50a20243eaee012 100644 |
--- a/jingle/glue/pseudotcp_adapter_unittest.cc |
+++ b/jingle/glue/pseudotcp_adapter_unittest.cc |
@@ -10,7 +10,6 @@ |
#include "base/bind_helpers.h" |
#include "base/compiler_specific.h" |
#include "jingle/glue/thread_wrapper.h" |
-#include "net/base/completion_callback.h" |
#include "net/base/io_buffer.h" |
#include "net/base/net_errors.h" |
#include "net/base/test_completion_callback.h" |
@@ -81,8 +80,7 @@ class LeakyBucket : public RateLimiter { |
class FakeSocket : public net::Socket { |
public: |
FakeSocket() |
- : old_read_callback_(NULL), |
- rate_limiter_(NULL), |
+ : rate_limiter_(NULL), |
latency_ms_(0) { |
} |
virtual ~FakeSocket() { } |
@@ -91,20 +89,13 @@ class FakeSocket : public net::Socket { |
if (rate_limiter_ && rate_limiter_->DropNextPacket()) |
return; // Lose the packet. |
- if (old_read_callback_ || !read_callback_.is_null()) { |
+ if (!read_callback_.is_null()) { |
int size = std::min(read_buffer_size_, static_cast<int>(data.size())); |
memcpy(read_buffer_->data(), &data[0], data.size()); |
- if (old_read_callback_) { |
- net::OldCompletionCallback* cb = old_read_callback_; |
- old_read_callback_ = NULL; |
- read_buffer_ = NULL; |
- cb->Run(size); |
- } else { |
- net::CompletionCallback cb = read_callback_; |
- read_callback_.Reset(); |
- read_buffer_ = NULL; |
- cb.Run(size); |
- } |
+ net::CompletionCallback cb = read_callback_; |
+ read_callback_.Reset(); |
+ read_buffer_ = NULL; |
+ cb.Run(size); |
} else { |
incoming_packets_.push_back(data); |
} |
@@ -120,29 +111,10 @@ class FakeSocket : public net::Socket { |
void set_latency(int latency_ms) { latency_ms_ = latency_ms; }; |
- // net::Socket implementation. |
- virtual int Read(net::IOBuffer* buf, int buf_len, |
- net::OldCompletionCallback* callback) { |
- CHECK(!old_read_callback_ && read_callback_.is_null()); |
- CHECK(buf); |
- |
- if (incoming_packets_.size() > 0) { |
- scoped_refptr<net::IOBuffer> buffer(buf); |
- int size = std::min( |
- static_cast<int>(incoming_packets_.front().size()), buf_len); |
- memcpy(buffer->data(), &*incoming_packets_.front().begin(), size); |
- incoming_packets_.pop_front(); |
- return size; |
- } else { |
- old_read_callback_ = callback; |
- read_buffer_ = buf; |
- read_buffer_size_ = buf_len; |
- return net::ERR_IO_PENDING; |
- } |
- } |
+ // net::Socket interface. |
virtual int Read(net::IOBuffer* buf, int buf_len, |
const net::CompletionCallback& callback) { |
- CHECK(!old_read_callback_ && read_callback_.is_null()); |
+ CHECK(read_callback_.is_null()); |
CHECK(buf); |
if (incoming_packets_.size() > 0) { |
@@ -161,7 +133,7 @@ class FakeSocket : public net::Socket { |
} |
virtual int Write(net::IOBuffer* buf, int buf_len, |
- net::OldCompletionCallback* callback) OVERRIDE { |
+ const net::CompletionCallback& callback) OVERRIDE { |
DCHECK(buf); |
if (peer_socket_) { |
MessageLoop::current()->PostDelayedTask( |
@@ -187,7 +159,6 @@ class FakeSocket : public net::Socket { |
private: |
scoped_refptr<net::IOBuffer> read_buffer_; |
int read_buffer_size_; |
- net::OldCompletionCallback* old_read_callback_; |
net::CompletionCallback read_callback_; |
std::deque<std::vector<char> > incoming_packets_; |
@@ -206,10 +177,6 @@ class TCPChannelTester : public base::RefCountedThreadSafe<TCPChannelTester> { |
host_socket_(host_socket), |
client_socket_(client_socket), |
done_(false), |
- ALLOW_THIS_IN_INITIALIZER_LIST( |
- write_cb_(this, &TCPChannelTester::OnWritten)), |
- ALLOW_THIS_IN_INITIALIZER_LIST( |
- read_cb_(this, &TCPChannelTester::OnRead)), |
write_errors_(0), |
read_errors_(0) { |
} |
@@ -264,8 +231,9 @@ class TCPChannelTester : public base::RefCountedThreadSafe<TCPChannelTester> { |
int bytes_to_write = std::min(output_buffer_->BytesRemaining(), |
kMessageSize); |
- result = client_socket_->Write(output_buffer_, bytes_to_write, |
- &write_cb_); |
+ result = client_socket_->Write( |
+ output_buffer_, bytes_to_write, |
+ base::Bind(&TCPChannelTester::OnWritten, base::Unretained(this))); |
HandleWriteResult(result); |
} |
} |
@@ -290,7 +258,9 @@ class TCPChannelTester : public base::RefCountedThreadSafe<TCPChannelTester> { |
while (result > 0) { |
input_buffer_->set_offset(input_buffer_->capacity() - kMessageSize); |
- result = host_socket_->Read(input_buffer_, kMessageSize, &read_cb_); |
+ result = host_socket_->Read(input_buffer_, kMessageSize, |
+ base::Bind(&TCPChannelTester::OnRead, |
+ base::Unretained(this))); |
HandleReadResult(result); |
}; |
} |
@@ -324,8 +294,6 @@ class TCPChannelTester : public base::RefCountedThreadSafe<TCPChannelTester> { |
scoped_refptr<net::DrainableIOBuffer> output_buffer_; |
scoped_refptr<net::GrowableIOBuffer> input_buffer_; |
- net::OldCompletionCallbackImpl<TCPChannelTester> write_cb_; |
- net::OldCompletionCallbackImpl<TCPChannelTester> read_cb_; |
int write_errors_; |
int read_errors_; |
}; |
@@ -354,11 +322,11 @@ class PseudoTcpAdapterTest : public testing::Test { |
}; |
TEST_F(PseudoTcpAdapterTest, DataTransfer) { |
- TestOldCompletionCallback host_connect_cb; |
- TestOldCompletionCallback client_connect_cb; |
+ net::TestCompletionCallback host_connect_cb; |
+ net::TestCompletionCallback client_connect_cb; |
- int rv1 = host_pseudotcp_->Connect(&host_connect_cb); |
- int rv2 = client_pseudotcp_->Connect(&client_connect_cb); |
+ int rv1 = host_pseudotcp_->Connect(host_connect_cb.callback()); |
+ int rv2 = client_pseudotcp_->Connect(client_connect_cb.callback()); |
if (rv1 == net::ERR_IO_PENDING) |
rv1 = host_connect_cb.WaitForResult(); |
@@ -389,11 +357,11 @@ TEST_F(PseudoTcpAdapterTest, LimitedChannel) { |
host_socket_->set_latency(kLatencyMs); |
client_socket_->set_rate_limiter(&client_limiter); |
- TestOldCompletionCallback host_connect_cb; |
- TestOldCompletionCallback client_connect_cb; |
+ net::TestCompletionCallback host_connect_cb; |
+ net::TestCompletionCallback client_connect_cb; |
- int rv1 = host_pseudotcp_->Connect(&host_connect_cb); |
- int rv2 = client_pseudotcp_->Connect(&client_connect_cb); |
+ int rv1 = host_pseudotcp_->Connect(host_connect_cb.callback()); |
+ int rv2 = client_pseudotcp_->Connect(client_connect_cb.callback()); |
if (rv1 == net::ERR_IO_PENDING) |
rv1 = host_connect_cb.WaitForResult(); |
@@ -428,13 +396,12 @@ TEST_F(PseudoTcpAdapterTest, DeleteOnConnected) { |
// This test verifies that deleting the adapter mid-callback doesn't lead |
// to deleted structures being touched as the stack unrolls, so the failure |
// mode is a crash rather than a normal test failure. |
- TestOldCompletionCallback client_connect_cb; |
+ net::TestCompletionCallback client_connect_cb; |
DeleteOnConnected host_delete(&message_loop_, &host_pseudotcp_); |
- net::OldCompletionCallbackImpl<DeleteOnConnected> |
- host_connect_cb(&host_delete, &DeleteOnConnected::OnConnected); |
- host_pseudotcp_->Connect(&host_connect_cb); |
- client_pseudotcp_->Connect(&client_connect_cb); |
+ host_pseudotcp_->Connect(base::Bind(&DeleteOnConnected::OnConnected, |
+ base::Unretained(&host_delete))); |
+ client_pseudotcp_->Connect(client_connect_cb.callback()); |
message_loop_.Run(); |
ASSERT_EQ(NULL, host_pseudotcp_.get()); |