Chromium Code Reviews| Index: mojo/public/cpp/bindings/lib/message_builder.h |
| diff --git a/mojo/public/cpp/bindings/lib/message_builder.h b/mojo/public/cpp/bindings/lib/message_builder.h |
| index 86ae71db142431980d02dfef94759742dd1abaf4..d8ccc2bd6e788b920492ca6a5e5a3d4b0f57e57a 100644 |
| --- a/mojo/public/cpp/bindings/lib/message_builder.h |
| +++ b/mojo/public/cpp/bindings/lib/message_builder.h |
| @@ -2,6 +2,9 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| +// These are helper classes for allocating, aligning, and framing a |
| +// |mojo::Message|. They are mainly used from within the generated C++ bindings. |
| + |
| #ifndef MOJO_PUBLIC_CPP_BINDINGS_LIB_MESSAGE_BUILDER_H_ |
| #define MOJO_PUBLIC_CPP_BINDINGS_LIB_MESSAGE_BUILDER_H_ |
| @@ -14,26 +17,35 @@ |
| namespace mojo { |
| class Message; |
| -namespace internal { |
| - |
| +// MessageBuilder helps initialize and frame a |mojo::Message| which does not |
|
viettrungluu
2015/11/18 23:55:59
nit: "which" -> "that"
|
| +// expect a response message, and therefore does not tag the message with a |
| +// request id (which may save some bytes). |
| +// |
| +// The underlying |Message| is owned by MessageBuilder, but can be permanently |
| +// moved by calling accessing |message()| and calling its |MoveTo()|. |
| class MessageBuilder { |
| public: |
| + // This frames and configures a |mojo::Message| with the given message name. |
| MessageBuilder(uint32_t name, size_t payload_size); |
| ~MessageBuilder(); |
| - Buffer* buffer() { return &buf_; } |
| Message* message() { return &message_; } |
| + // TODO(vardhan): |buffer()| is internal and only consumed by internal classes |
| + // and unittests. Consider making it private + friend class its consumers? |
| + internal::Buffer* buffer() { return &buf_; } |
| + |
| protected: |
| MessageBuilder(); |
| void Initialize(size_t size); |
| Message message_; |
| - FixedBuffer buf_; |
| + internal::FixedBuffer buf_; |
| MOJO_DISALLOW_COPY_AND_ASSIGN(MessageBuilder); |
| }; |
| +namespace internal { |
|
viettrungluu
2015/11/18 23:55:59
nit:
Generally, there should be a blank line foll
|
| class MessageWithRequestIDBuilder : public MessageBuilder { |
| public: |
| MessageWithRequestIDBuilder(uint32_t name, |
| @@ -41,28 +53,37 @@ class MessageWithRequestIDBuilder : public MessageBuilder { |
| uint32_t flags, |
| uint64_t request_id); |
| }; |
| +} // namespace internal |
| -class RequestMessageBuilder : public MessageWithRequestIDBuilder { |
| +// Builds a |mojo::Message| that is a "request" message, which expects a |
|
viettrungluu
2015/11/18 23:55:59
nit: ", which" -> " that" (no comma)
|
| +// response message. You can give it a unique |request_id| (with which you can |
| +// construct a response message) by calling |message()->set_request_id()|. |
| +// |
| +// Has the same interface as |mojo::MessageBuilder|. |
| +class RequestMessageBuilder : public internal::MessageWithRequestIDBuilder { |
| public: |
| RequestMessageBuilder(uint32_t name, size_t payload_size) |
| : MessageWithRequestIDBuilder(name, |
| payload_size, |
| - kMessageExpectsResponse, |
| + internal::kMessageExpectsResponse, |
| 0) {} |
| }; |
| -class ResponseMessageBuilder : public MessageWithRequestIDBuilder { |
| +// Builds a |mojo::Message| that is a "response" message which pertains to a |
| +// |request_id|. |
| +// |
| +// Has the same interface as |mojo::MessageBuilder|. |
| +class ResponseMessageBuilder : public internal::MessageWithRequestIDBuilder { |
| public: |
| ResponseMessageBuilder(uint32_t name, |
| size_t payload_size, |
| uint64_t request_id) |
| : MessageWithRequestIDBuilder(name, |
| payload_size, |
| - kMessageIsResponse, |
| + internal::kMessageIsResponse, |
| request_id) {} |
| }; |
| -} // namespace internal |
| } // namespace mojo |
| #endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_MESSAGE_BUILDER_H_ |