OLD | NEW |
1 class {{export_attribute}} {{interface.name}}StubDispatch { | 1 class {{export_attribute}} {{interface.name}}StubDispatch { |
2 public: | 2 public: |
3 static bool Accept({{interface.name}}* impl, mojo::Message* message); | 3 static bool Accept({{interface.name}}* impl, mojo::Message* message); |
4 static bool AcceptWithResponder({{interface.name}}* impl, | 4 static bool AcceptWithResponder( |
5 mojo::Message* message, | 5 {{interface.name}}* impl, |
6 mojo::MessageReceiverWithStatus* responder); | 6 mojo::Message* message, |
| 7 std::unique_ptr<mojo::MessageReceiverWithStatus> responder); |
7 }; | 8 }; |
8 | 9 |
9 template <typename ImplRefTraits = | 10 template <typename ImplRefTraits = |
10 mojo::RawPtrImplRefTraits<{{interface.name}}>> | 11 mojo::RawPtrImplRefTraits<{{interface.name}}>> |
11 class {{interface.name}}Stub | 12 class {{interface.name}}Stub |
12 : public NON_EXPORTED_BASE(mojo::MessageReceiverWithResponderStatus) { | 13 : public NON_EXPORTED_BASE(mojo::MessageReceiverWithResponderStatus) { |
13 public: | 14 public: |
14 using ImplPointerType = typename ImplRefTraits::PointerType; | 15 using ImplPointerType = typename ImplRefTraits::PointerType; |
15 | 16 |
16 {{interface.name}}Stub() {} | 17 {{interface.name}}Stub() {} |
17 ~{{interface.name}}Stub() override {} | 18 ~{{interface.name}}Stub() override {} |
18 | 19 |
19 void set_sink(ImplPointerType sink) { sink_ = std::move(sink); } | 20 void set_sink(ImplPointerType sink) { sink_ = std::move(sink); } |
20 ImplPointerType& sink() { return sink_; } | 21 ImplPointerType& sink() { return sink_; } |
21 | 22 |
22 bool Accept(mojo::Message* message) override { | 23 bool Accept(mojo::Message* message) override { |
23 if (ImplRefTraits::IsNull(sink_)) | 24 if (ImplRefTraits::IsNull(sink_)) |
24 return false; | 25 return false; |
25 return {{interface.name}}StubDispatch::Accept( | 26 return {{interface.name}}StubDispatch::Accept( |
26 ImplRefTraits::GetRawPointer(&sink_), message); | 27 ImplRefTraits::GetRawPointer(&sink_), message); |
27 } | 28 } |
28 | 29 |
29 bool AcceptWithResponder( | 30 bool AcceptWithResponder( |
30 mojo::Message* message, | 31 mojo::Message* message, |
31 mojo::MessageReceiverWithStatus* responder) override { | 32 std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override { |
32 if (ImplRefTraits::IsNull(sink_)) | 33 if (ImplRefTraits::IsNull(sink_)) |
33 return false; | 34 return false; |
34 return {{interface.name}}StubDispatch::AcceptWithResponder( | 35 return {{interface.name}}StubDispatch::AcceptWithResponder( |
35 ImplRefTraits::GetRawPointer(&sink_), message, responder); | 36 ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder)); |
36 } | 37 } |
37 | 38 |
38 private: | 39 private: |
39 ImplPointerType sink_; | 40 ImplPointerType sink_; |
40 }; | 41 }; |
OLD | NEW |