Chromium Code Reviews| 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 |