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

Unified Diff: remoting/protocol/buffered_socket_writer.cc

Issue 8116021: Switch remoting/protocol to new callbacks (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: - Created 9 years, 2 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 | « remoting/protocol/buffered_socket_writer.h ('k') | remoting/protocol/client_control_sender.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/protocol/buffered_socket_writer.cc
diff --git a/remoting/protocol/buffered_socket_writer.cc b/remoting/protocol/buffered_socket_writer.cc
index c89a50ed9af4c66b24a35ae2e4dfaa6623313902..ce8dd87b3458ccceeaa18d457f19231d9a2ef911 100644
--- a/remoting/protocol/buffered_socket_writer.cc
+++ b/remoting/protocol/buffered_socket_writer.cc
@@ -4,6 +4,7 @@
#include "remoting/protocol/buffered_socket_writer.h"
+#include "base/bind.h"
#include "base/location.h"
#include "base/message_loop_proxy.h"
#include "base/stl_util.h"
@@ -14,13 +15,14 @@ namespace protocol {
class BufferedSocketWriterBase::PendingPacket {
public:
- PendingPacket(scoped_refptr<net::IOBufferWithSize> data, Task* done_task)
+ PendingPacket(scoped_refptr<net::IOBufferWithSize> data,
+ const base::Closure& done_task)
: data_(data),
done_task_(done_task) {
}
~PendingPacket() {
- if (done_task_.get())
- done_task_->Run();
+ if (!done_task_.is_null())
+ done_task_.Run();
}
net::IOBufferWithSize* data() {
@@ -29,7 +31,7 @@ class BufferedSocketWriterBase::PendingPacket {
private:
scoped_refptr<net::IOBufferWithSize> data_;
- scoped_ptr<Task> done_task_;
+ base::Closure done_task_;
DISALLOW_COPY_AND_ASSIGN(PendingPacket);
};
@@ -48,22 +50,22 @@ BufferedSocketWriterBase::BufferedSocketWriterBase(
BufferedSocketWriterBase::~BufferedSocketWriterBase() { }
void BufferedSocketWriterBase::Init(net::Socket* socket,
- WriteFailedCallback* callback) {
- // TODO(garykac) Save copy of WriteFailedCallback.
- base::AutoLock auto_lock(lock_);
+ const WriteFailedCallback& callback) {
+ DCHECK(message_loop_->BelongsToCurrentThread());
+ DCHECK(socket);
socket_ = socket;
- DCHECK(socket_);
+ write_failed_callback_ = callback;
}
bool BufferedSocketWriterBase::Write(
- scoped_refptr<net::IOBufferWithSize> data, Task* done_task) {
+ scoped_refptr<net::IOBufferWithSize> data, const base::Closure& done_task) {
{
base::AutoLock auto_lock(lock_);
queue_.push_back(new PendingPacket(data, done_task));
buffer_size_ += data->size();
}
message_loop_->PostTask(
- FROM_HERE, NewRunnableMethod(this, &BufferedSocketWriterBase::DoWrite));
+ FROM_HERE, base::Bind(&BufferedSocketWriterBase::DoWrite, this));
return true;
}
@@ -101,8 +103,8 @@ void BufferedSocketWriterBase::DoWrite() {
write_pending_ = true;
} else {
HandleError(result);
- if (write_failed_callback_.get())
- write_failed_callback_->Run(result);
+ if (!write_failed_callback_.is_null())
+ write_failed_callback_.Run(result);
}
return;
}
@@ -115,8 +117,8 @@ void BufferedSocketWriterBase::OnWritten(int result) {
if (result < 0) {
HandleError(result);
- if (write_failed_callback_.get())
- write_failed_callback_->Run(result);
+ if (!write_failed_callback_.is_null())
+ write_failed_callback_.Run(result);
return;
}
« no previous file with comments | « remoting/protocol/buffered_socket_writer.h ('k') | remoting/protocol/client_control_sender.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698