| Index: net/curvecp/test_client.cc
|
| diff --git a/net/curvecp/test_client.cc b/net/curvecp/test_client.cc
|
| index d57a13f6b9ff2839f1b048c8d20b2dc992aaff46..f5ad5ca288132593911b2e85d77810f493679f00 100644
|
| --- a/net/curvecp/test_client.cc
|
| +++ b/net/curvecp/test_client.cc
|
| @@ -23,14 +23,7 @@ namespace net {
|
| TestClient::TestClient()
|
| : socket_(NULL),
|
| errors_(0),
|
| - bytes_to_send_(0),
|
| - ALLOW_THIS_IN_INITIALIZER_LIST(
|
| - connect_callback_(this, &TestClient::OnConnectComplete)),
|
| - ALLOW_THIS_IN_INITIALIZER_LIST(
|
| - read_callback_(this, &TestClient::OnReadComplete)),
|
| - ALLOW_THIS_IN_INITIALIZER_LIST(
|
| - write_callback_(this, &TestClient::OnWriteComplete)),
|
| - finished_callback_(NULL) {
|
| + bytes_to_send_(0) {
|
| }
|
|
|
| TestClient::~TestClient() {
|
| @@ -45,9 +38,9 @@ TestClient::~TestClient() {
|
|
|
| bool TestClient::Start(const HostPortPair& server_host_port_pair,
|
| int bytes_to_send,
|
| - OldCompletionCallback* callback) {
|
| + const CompletionCallback& callback) {
|
| DCHECK(!socket_);
|
| - DCHECK(!finished_callback_);
|
| + DCHECK(finished_callback_.is_null());
|
|
|
| finished_callback_ = callback;
|
| bytes_to_read_ = bytes_to_send_ = bytes_to_send;
|
| @@ -65,7 +58,8 @@ bool TestClient::Start(const HostPortPair& server_host_port_pair,
|
| }
|
|
|
| socket_ = new CurveCPClientSocket(addresses, NULL, NetLog::Source());
|
| - rv = socket_->Connect(&connect_callback_);
|
| + rv = socket_->Connect(
|
| + base::Bind(&TestClient::OnConnectComplete, base::Unretained(this)));
|
| if (rv == ERR_IO_PENDING)
|
| return true;
|
| OnConnectComplete(rv);
|
| @@ -136,7 +130,9 @@ void TestClient::ReadData() {
|
|
|
| int rv;
|
| do {
|
| - rv = socket_->Read(read_buffer_, kMaxMessage, &read_callback_);
|
| + rv = socket_->Read(read_buffer_, kMaxMessage,
|
| + base::Bind(&TestClient::OnReadComplete,
|
| + base::Unretained(this)));
|
| if (rv == ERR_IO_PENDING)
|
| return;
|
| OnReadComplete(rv); // Complete the read manually
|
| @@ -157,7 +153,8 @@ void TestClient::SendData() {
|
|
|
| int rv = socket_->Write(write_buffer_,
|
| write_buffer_->BytesRemaining(),
|
| - &write_callback_);
|
| + base::Bind(&TestClient::OnWriteComplete,
|
| + base::Unretained(this)));
|
| if (rv == ERR_IO_PENDING)
|
| return;
|
|
|
| @@ -169,12 +166,12 @@ void TestClient::SendData() {
|
| }
|
|
|
| void TestClient::Finish(int result) {
|
| - DCHECK(finished_callback_);
|
| + DCHECK(!finished_callback_.is_null());
|
|
|
| LOG(ERROR) << "TestClient Done!";
|
| - OldCompletionCallback* callback = finished_callback_;
|
| - finished_callback_ = NULL;
|
| - callback->Run(result);
|
| + CompletionCallback callback = finished_callback_;
|
| + finished_callback_.Reset();
|
| + callback.Run(result);
|
| }
|
|
|
| } // namespace net
|
|
|