Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(231)

Side by Side Diff: mojo/public/tools/bindings/generators/cpp_templates/interface_stub_declaration.tmpl

Issue 2766523002: mojo: MessageReceiver*::AcceptWithResponder() now take a unique_ptr to the responder (Closed)
Patch Set: comments Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698