Index: remoting/protocol/message_reader.h |
diff --git a/remoting/protocol/message_reader.h b/remoting/protocol/message_reader.h |
index fb6c92ef1b816b5714fcace7989c51f9a9b59be0..57e897462c7c9a2e1ba1fd3b3f6b97d003e58bf7 100644 |
--- a/remoting/protocol/message_reader.h |
+++ b/remoting/protocol/message_reader.h |
@@ -5,12 +5,10 @@ |
#ifndef REMOTING_PROTOCOL_MESSAGE_READER_H_ |
#define REMOTING_PROTOCOL_MESSAGE_READER_H_ |
-#include "base/bind.h" |
#include "base/callback.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/memory/weak_ptr.h" |
#include "base/threading/non_thread_safe.h" |
-#include "net/base/completion_callback.h" |
#include "remoting/base/compound_buffer.h" |
#include "remoting/protocol/message_decoder.h" |
@@ -38,12 +36,14 @@ class MessageReader : public base::NonThreadSafe { |
typedef base::Callback<void(scoped_ptr<CompoundBuffer>, const base::Closure&)> |
MessageReceivedCallback; |
- MessageReader(); |
+ explicit MessageReader(); |
rmsousa
2015/01/08 02:22:31
nit: explicit with zero arguments?
Sergey Ulanov
2015/01/08 19:20:32
Done.
|
virtual ~MessageReader(); |
- // Initialize the MessageReader with a socket. If a message is received |
- // |callback| is called. |
- void Init(net::Socket* socket, const MessageReceivedCallback& callback); |
+ // Sets the callback to be called for each incoming message. |
+ void SetMessageReceivedCallback(const MessageReceivedCallback& callback); |
+ |
+ // Starts reading from |socket|. |
+ void StartReading(net::Socket* socket); |
private: |
void DoRead(); |
@@ -77,47 +77,6 @@ class MessageReader : public base::NonThreadSafe { |
DISALLOW_COPY_AND_ASSIGN(MessageReader); |
}; |
-// Version of MessageReader for protocol buffer messages, that parses |
-// each incoming message. |
-template <class T> |
-class ProtobufMessageReader { |
- public: |
- // The callback that is called when a new message is received. |done_task| |
- // must be called by the callback when it's done processing the |message|. |
- typedef typename base::Callback<void(scoped_ptr<T> message, |
- const base::Closure& done_task)> |
- MessageReceivedCallback; |
- |
- ProtobufMessageReader() { }; |
- ~ProtobufMessageReader() { }; |
- |
- void Init(net::Socket* socket, const MessageReceivedCallback& callback) { |
- DCHECK(!callback.is_null()); |
- message_received_callback_ = callback; |
- message_reader_.reset(new MessageReader()); |
- message_reader_->Init( |
- socket, base::Bind(&ProtobufMessageReader<T>::OnNewData, |
- base::Unretained(this))); |
- } |
- |
- private: |
- void OnNewData(scoped_ptr<CompoundBuffer> buffer, |
- const base::Closure& done_task) { |
- scoped_ptr<T> message(new T()); |
- CompoundBufferInputStream stream(buffer.get()); |
- bool ret = message->ParseFromZeroCopyStream(&stream); |
- if (!ret) { |
- LOG(WARNING) << "Received message that is not a valid protocol buffer."; |
- } else { |
- DCHECK_EQ(stream.position(), buffer->total_bytes()); |
- message_received_callback_.Run(message.Pass(), done_task); |
- } |
- } |
- |
- scoped_ptr<MessageReader> message_reader_; |
- MessageReceivedCallback message_received_callback_; |
-}; |
- |
} // namespace protocol |
} // namespace remoting |