Index: mojo/public/bindings/lib/message_builder.cc |
diff --git a/mojo/public/bindings/lib/message_builder.cc b/mojo/public/bindings/lib/message_builder.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f861a6b0d1e92645aa9a330bb53207dc53698a15 |
--- /dev/null |
+++ b/mojo/public/bindings/lib/message_builder.cc |
@@ -0,0 +1,26 @@ |
+// Copyright 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "mojo/public/bindings/lib/message_builder.h" |
+ |
+#include "mojo/public/bindings/lib/message.h" |
+ |
+namespace mojo { |
+ |
+MessageBuilder::MessageBuilder(uint32_t message_name, size_t payload_size) |
+ : buf_(sizeof(MessageHeader) + payload_size) { |
+ MessageHeader* header = |
+ static_cast<MessageHeader*>(buf_.Allocate(sizeof(MessageHeader))); |
+ header->num_bytes = static_cast<uint32_t>(buf_.size()); |
+ header->name = message_name; |
+} |
+ |
+MessageBuilder::~MessageBuilder() { |
+} |
+ |
+MessageData* MessageBuilder::Finish() { |
+ return static_cast<MessageData*>(buf_.Leak()); |
+} |
+ |
+} // namespace mojo |