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

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: fix mac compile, use ignore_result more 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({{interface.name}}* impl,
5 mojo::Message* message, 5 mojo::Message* message,
6 mojo::MessageReceiverWithStatus* responder); 6 std::unique_ptr<mojo::MessageReceiverWithStatu s> responder);
yzshen1 2017/03/21 16:10:00 < 80 chars please.
watk 2017/03/22 07:09:15 Done.
7 }; 7 };
8 8
9 template <typename ImplRefTraits = 9 template <typename ImplRefTraits =
10 mojo::RawPtrImplRefTraits<{{interface.name}}>> 10 mojo::RawPtrImplRefTraits<{{interface.name}}>>
11 class {{interface.name}}Stub 11 class {{interface.name}}Stub
12 : public NON_EXPORTED_BASE(mojo::MessageReceiverWithResponderStatus) { 12 : public NON_EXPORTED_BASE(mojo::MessageReceiverWithResponderStatus) {
13 public: 13 public:
14 using ImplPointerType = typename ImplRefTraits::PointerType; 14 using ImplPointerType = typename ImplRefTraits::PointerType;
15 15
16 {{interface.name}}Stub() {} 16 {{interface.name}}Stub() {}
17 ~{{interface.name}}Stub() override {} 17 ~{{interface.name}}Stub() override {}
18 18
19 void set_sink(ImplPointerType sink) { sink_ = std::move(sink); } 19 void set_sink(ImplPointerType sink) { sink_ = std::move(sink); }
20 ImplPointerType& sink() { return sink_; } 20 ImplPointerType& sink() { return sink_; }
21 21
22 bool Accept(mojo::Message* message) override { 22 bool Accept(mojo::Message* message) override {
23 if (ImplRefTraits::IsNull(sink_)) 23 if (ImplRefTraits::IsNull(sink_))
24 return false; 24 return false;
25 return {{interface.name}}StubDispatch::Accept( 25 return {{interface.name}}StubDispatch::Accept(
26 ImplRefTraits::GetRawPointer(&sink_), message); 26 ImplRefTraits::GetRawPointer(&sink_), message);
27 } 27 }
28 28
29 bool AcceptWithResponder( 29 bool AcceptWithResponder(
30 mojo::Message* message, 30 mojo::Message* message,
31 mojo::MessageReceiverWithStatus* responder) override { 31 std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {
32 if (ImplRefTraits::IsNull(sink_)) 32 if (ImplRefTraits::IsNull(sink_))
33 return false; 33 return false;
34 return {{interface.name}}StubDispatch::AcceptWithResponder( 34 return {{interface.name}}StubDispatch::AcceptWithResponder(
35 ImplRefTraits::GetRawPointer(&sink_), message, responder); 35 ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder));
36 } 36 }
37 37
38 private: 38 private:
39 ImplPointerType sink_; 39 ImplPointerType sink_;
40 }; 40 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698