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

Unified Diff: remoting/protocol/message_serialization.h

Issue 1654513003: Simplify message parsing. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@no_done
Patch Set: Created 4 years, 11 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/message_reader_unittest.cc ('k') | remoting/protocol/protobuf_message_parser.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « remoting/protocol/message_reader_unittest.cc ('k') | remoting/protocol/protobuf_message_parser.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698