Chromium Code Reviews| Index: mojo/public/cpp/bindings/message.h |
| diff --git a/mojo/public/cpp/bindings/message.h b/mojo/public/cpp/bindings/message.h |
| index d8eed2bfc3ec00a96948954a86ade3b99fdc088c..cebb2041a599f50e3602171617e0aeaaf3a7a80a 100644 |
| --- a/mojo/public/cpp/bindings/message.h |
| +++ b/mojo/public/cpp/bindings/message.h |
| @@ -19,6 +19,8 @@ |
| namespace mojo { |
| +class Error; |
| + |
| // Message is a holder for the data and handles to be sent over a MessagePipe. |
| // Message owns its data and handles, but a consumer of Message is free to |
| // mutate the data and handles. The message's data is comprised of a header |
| @@ -99,6 +101,10 @@ class Message { |
| // ownership of its internal storage and any attached handles. |
| ScopedMessageHandle TakeMojoMessage(); |
| + // Notifies the system that this message is "bad," in this case meaning it was |
| + // rejected by bindings validation code. |
| + void NotifyBadMessage(const std::string& error); |
| + |
| private: |
| void CloseHandles(); |
| @@ -114,8 +120,9 @@ class MessageReceiver { |
| // The receiver may mutate the given message. Returns true if the message |
| // was accepted and false otherwise, indicating that the message was invalid |
| - // or malformed. |
| - virtual bool Accept(Message* message) WARN_UNUSED_RESULT = 0; |
| + // or malformed. If this returns false, |*error| may be populated with |
| + // additional information about the failure reason. |
| + virtual bool Accept(Message* message, Error* error) WARN_UNUSED_RESULT = 0; |
|
yzshen1
2016/06/14 16:45:32
Does it make sense to merge the return value with
Ken Rockot(use gerrit already)
2016/06/14 21:20:40
Done!
|
| }; |
| class MessageReceiverWithResponder : public MessageReceiver { |
| @@ -133,7 +140,9 @@ class MessageReceiverWithResponder : public MessageReceiver { |
| // |
| // TODO(yzshen): consider changing |responder| to |
| // std::unique_ptr<MessageReceiver>. |
| - virtual bool AcceptWithResponder(Message* message, MessageReceiver* responder) |
| + virtual bool AcceptWithResponder(Message* message, |
| + MessageReceiver* responder, |
| + Error* error) |
| WARN_UNUSED_RESULT = 0; |
| }; |
| @@ -173,7 +182,8 @@ class MessageReceiverWithResponderStatus : public MessageReceiver { |
| // TODO(yzshen): consider changing |responder| to |
| // std::unique_ptr<MessageReceiver>. |
| virtual bool AcceptWithResponder(Message* message, |
| - MessageReceiverWithStatus* responder) |
| + MessageReceiverWithStatus* responder, |
| + Error* error) |
| WARN_UNUSED_RESULT = 0; |
| }; |