OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef MOJO_PUBLIC_CPP_BINDINGS_MESSAGE_H_ | 5 #ifndef MOJO_PUBLIC_CPP_BINDINGS_MESSAGE_H_ |
6 #define MOJO_PUBLIC_CPP_BINDINGS_MESSAGE_H_ | 6 #define MOJO_PUBLIC_CPP_BINDINGS_MESSAGE_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
177 | 177 |
178 class MessageReceiverWithResponder : public MessageReceiver { | 178 class MessageReceiverWithResponder : public MessageReceiver { |
179 public: | 179 public: |
180 ~MessageReceiverWithResponder() override {} | 180 ~MessageReceiverWithResponder() override {} |
181 | 181 |
182 // A variant on Accept that registers a MessageReceiver (known as the | 182 // A variant on Accept that registers a MessageReceiver (known as the |
183 // responder) to handle the response message generated from the given | 183 // responder) to handle the response message generated from the given |
184 // message. The responder's Accept method may be called during | 184 // message. The responder's Accept method may be called during |
185 // AcceptWithResponder or some time after its return. | 185 // AcceptWithResponder or some time after its return. |
186 // | 186 // |
187 // NOTE: Upon returning true, AcceptWithResponder assumes ownership of | 187 // NOTE: If AcceptWithReponder returns false, |responder| may be deleted |
188 // |responder| and will delete it after calling |responder->Accept| or upon | 188 // immediately. Otherwise it will delete it after calling |responder->Accept| |
189 // its own destruction. | 189 // or upon its own destruction. |
watk
2017/03/21 04:09:38
Do you think this comment is useful to keep or sha
yzshen1
2017/03/21 16:10:00
IMO it is not very useful now so I lean towards de
watk
2017/03/22 07:09:15
Done.
| |
190 // | 190 virtual bool AcceptWithResponder(Message* message, |
191 // TODO(yzshen): consider changing |responder| to | 191 std::unique_ptr<MessageReceiver> responder) |
192 // std::unique_ptr<MessageReceiver>. | |
193 virtual bool AcceptWithResponder(Message* message, MessageReceiver* responder) | |
194 WARN_UNUSED_RESULT = 0; | 192 WARN_UNUSED_RESULT = 0; |
195 }; | 193 }; |
196 | 194 |
197 // A MessageReceiver that is also able to provide status about the state | 195 // A MessageReceiver that is also able to provide status about the state |
198 // of the underlying MessagePipe to which it will be forwarding messages | 196 // of the underlying MessagePipe to which it will be forwarding messages |
199 // received via the |Accept()| call. | 197 // received via the |Accept()| call. |
200 class MessageReceiverWithStatus : public MessageReceiver { | 198 class MessageReceiverWithStatus : public MessageReceiver { |
201 public: | 199 public: |
202 ~MessageReceiverWithStatus() override {} | 200 ~MessageReceiverWithStatus() override {} |
203 | 201 |
(...skipping 12 matching lines...) Expand all Loading... | |
216 // of the MessagePipe which will carry the responses. | 214 // of the MessagePipe which will carry the responses. |
217 class MessageReceiverWithResponderStatus : public MessageReceiver { | 215 class MessageReceiverWithResponderStatus : public MessageReceiver { |
218 public: | 216 public: |
219 ~MessageReceiverWithResponderStatus() override {} | 217 ~MessageReceiverWithResponderStatus() override {} |
220 | 218 |
221 // A variant on Accept that registers a MessageReceiverWithStatus (known as | 219 // A variant on Accept that registers a MessageReceiverWithStatus (known as |
222 // the responder) to handle the response message generated from the given | 220 // the responder) to handle the response message generated from the given |
223 // message. Any of the responder's methods (Accept or IsValid) may be called | 221 // message. Any of the responder's methods (Accept or IsValid) may be called |
224 // during AcceptWithResponder or some time after its return. | 222 // during AcceptWithResponder or some time after its return. |
225 // | 223 // |
226 // NOTE: Upon returning true, AcceptWithResponder assumes ownership of | 224 // NOTE: If AcceptWithReponder returns false, |responder| may be deleted |
227 // |responder| and will delete it after calling |responder->Accept| or upon | 225 // immediately. Otherwise it will delete it after calling |responder->Accept| |
228 // its own destruction. | 226 // or upon its own destruction. |
229 // | |
230 // TODO(yzshen): consider changing |responder| to | |
231 // std::unique_ptr<MessageReceiver>. | |
232 virtual bool AcceptWithResponder(Message* message, | 227 virtual bool AcceptWithResponder(Message* message, |
233 MessageReceiverWithStatus* responder) | 228 std::unique_ptr<MessageReceiverWithStatus> |
234 WARN_UNUSED_RESULT = 0; | 229 responder) WARN_UNUSED_RESULT = 0; |
235 }; | 230 }; |
236 | 231 |
237 class MOJO_CPP_BINDINGS_EXPORT PassThroughFilter | 232 class MOJO_CPP_BINDINGS_EXPORT PassThroughFilter |
238 : NON_EXPORTED_BASE(public MessageReceiver) { | 233 : NON_EXPORTED_BASE(public MessageReceiver) { |
239 public: | 234 public: |
240 PassThroughFilter(); | 235 PassThroughFilter(); |
241 ~PassThroughFilter() override; | 236 ~PassThroughFilter() override; |
242 | 237 |
243 // MessageReceiver: | 238 // MessageReceiver: |
244 bool Accept(Message* message) override; | 239 bool Accept(Message* message) override; |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
306 // Message as bad. Note that this is only legal to call from directly within the | 301 // Message as bad. Note that this is only legal to call from directly within the |
307 // stack frame of a message dispatch, but the returned callback may be called | 302 // stack frame of a message dispatch, but the returned callback may be called |
308 // exactly once any time thereafter to report the message as bad. This may only | 303 // exactly once any time thereafter to report the message as bad. This may only |
309 // be called once per message. | 304 // be called once per message. |
310 MOJO_CPP_BINDINGS_EXPORT | 305 MOJO_CPP_BINDINGS_EXPORT |
311 ReportBadMessageCallback GetBadMessageCallback(); | 306 ReportBadMessageCallback GetBadMessageCallback(); |
312 | 307 |
313 } // namespace mojo | 308 } // namespace mojo |
314 | 309 |
315 #endif // MOJO_PUBLIC_CPP_BINDINGS_MESSAGE_H_ | 310 #endif // MOJO_PUBLIC_CPP_BINDINGS_MESSAGE_H_ |
OLD | NEW |