Index: remoting/protocol/message_reader.cc |
diff --git a/remoting/protocol/message_reader.cc b/remoting/protocol/message_reader.cc |
index 153bde3292121482e3fe85c49407490642cfd7c9..44389d71473d6dc54a7bf7ac9333cfa1ef76d3af 100644 |
--- a/remoting/protocol/message_reader.cc |
+++ b/remoting/protocol/message_reader.cc |
@@ -23,16 +23,8 @@ namespace protocol { |
static const int kReadBufferSize = 4096; |
-MessageReader::MessageReader() |
- : socket_(nullptr), |
- read_pending_(false), |
- pending_messages_(0), |
- closed_(false), |
- weak_factory_(this) { |
-} |
- |
-MessageReader::~MessageReader() { |
-} |
+MessageReader::MessageReader() : weak_factory_(this) {} |
+MessageReader::~MessageReader() {} |
void MessageReader::SetMessageReceivedCallback( |
const MessageReceivedCallback& callback) { |
@@ -57,8 +49,7 @@ void MessageReader::DoRead() { |
// Don't try to read again if there is another read pending or we |
// have messages that we haven't finished processing yet. |
bool read_succeeded = true; |
- while (read_succeeded && !closed_ && !read_pending_ && |
- pending_messages_ == 0) { |
+ while (read_succeeded && !closed_ && !read_pending_) { |
read_buffer_ = new net::IOBuffer(kReadBufferSize); |
int result = socket_->Read( |
read_buffer_.get(), |
@@ -116,30 +107,16 @@ void MessageReader::OnDataReceived(net::IOBuffer* data, int data_size) { |
CompoundBuffer* buffer = message_decoder_.GetNextMessage(); |
if (!buffer) |
break; |
- pending_messages_++; |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
FROM_HERE, |
- base::Bind(&MessageReader::RunCallback, |
- weak_factory_.GetWeakPtr(), |
+ base::Bind(&MessageReader::RunCallback, weak_factory_.GetWeakPtr(), |
base::Passed(make_scoped_ptr(buffer)))); |
} |
} |
void MessageReader::RunCallback(scoped_ptr<CompoundBuffer> message) { |
- if (!message_received_callback_.is_null()){ |
- message_received_callback_.Run( |
- std::move(message), |
- base::Bind(&MessageReader::OnMessageDone, weak_factory_.GetWeakPtr())); |
- } |
-} |
- |
-void MessageReader::OnMessageDone() { |
- DCHECK(CalledOnValidThread()); |
- pending_messages_--; |
- DCHECK_GE(pending_messages_, 0); |
- |
- // Start next read if necessary. |
- DoRead(); |
+ if (!message_received_callback_.is_null()) |
+ message_received_callback_.Run(std::move(message)); |
} |
} // namespace protocol |