| Index: remoting/protocol/message_serialization.h
|
| diff --git a/remoting/protocol/message_serialization.h b/remoting/protocol/message_serialization.h
|
| index c550fbeba8c75efeb52056fd6ce77a7fbd5749ee..2a035ff5101e57870d0e448813ef766b136b0029 100644
|
| --- a/remoting/protocol/message_serialization.h
|
| +++ b/remoting/protocol/message_serialization.h
|
| @@ -9,6 +9,7 @@
|
| #define REMOTING_PROTOCOL_MESSAGE_SERIALIZATION_H_
|
|
|
| #include "net/base/io_buffer.h"
|
| +#include "remoting/base/compound_buffer.h"
|
|
|
| #if defined(USE_SYSTEM_PROTOBUF)
|
| #include <google/protobuf/message_lite.h>
|
| @@ -19,6 +20,18 @@
|
| namespace remoting {
|
| namespace protocol {
|
|
|
| +template <class T>
|
| +scoped_ptr<T> ParseMessage(CompoundBuffer* buffer) {
|
| + scoped_ptr<T> message(new T());
|
| + CompoundBufferInputStream stream(buffer);
|
| + if (!message->ParseFromZeroCopyStream(&stream)) {
|
| + LOG(WARNING) << "Received message that is not a valid protocol buffer.";
|
| + return nullptr;
|
| + }
|
| + DCHECK_EQ(stream.position(), buffer->total_bytes());
|
| + return message;
|
| +}
|
| +
|
| // Serialize the Protocol Buffer message and provide sufficient framing for
|
| // sending it over the wire.
|
| // This will provide sufficient prefix and suffix for the receiver side to
|
|
|