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

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

Issue 299833008: Move AcceptWithResponder() out of the MessageReceiver interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
1 {%- import "interface_macros.tmpl" as interface_macros %} 1 {%- import "interface_macros.tmpl" as interface_macros %}
2 {%- set class_name = interface.name %} 2 {%- set class_name = interface.name %}
3 {%- set proxy_name = interface.name ~ "Proxy" %} 3 {%- set proxy_name = interface.name ~ "Proxy" %}
4 4
5 {%- macro pass_params(parameters) %} 5 {%- macro pass_params(parameters) %}
6 {%- for param in parameters %} 6 {%- for param in parameters %}
7 {%- if param.kind|is_object_kind -%} 7 {%- if param.kind|is_object_kind -%}
8 mojo::internal::Wrap(params->{{param.name}}()) 8 mojo::internal::Wrap(params->{{param.name}}())
9 {%- elif param.kind|is_interface_kind -%} 9 {%- elif param.kind|is_interface_kind -%}
10 mojo::MakeProxy<{{param.kind.name}}>(mojo::MakePassable(params->{{param.name}}() ).Pass()) 10 mojo::MakeProxy<{{param.kind.name}}>(mojo::MakePassable(params->{{param.name}}() ).Pass())
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 {%- for method in interface.methods -%} 70 {%- for method in interface.methods -%}
71 {%- if method.response_parameters != None %} 71 {%- if method.response_parameters != None %}
72 class {{class_name}}_{{method.name}}_ForwardToCallback 72 class {{class_name}}_{{method.name}}_ForwardToCallback
73 : public mojo::MessageReceiver { 73 : public mojo::MessageReceiver {
74 public: 74 public:
75 {{class_name}}_{{method.name}}_ForwardToCallback( 75 {{class_name}}_{{method.name}}_ForwardToCallback(
76 const {{interface_macros.declare_callback(method)}}& callback) 76 const {{interface_macros.declare_callback(method)}}& callback)
77 : callback_(callback) { 77 : callback_(callback) {
78 } 78 }
79 virtual bool Accept(mojo::Message* message) MOJO_OVERRIDE; 79 virtual bool Accept(mojo::Message* message) MOJO_OVERRIDE;
80 virtual bool AcceptWithResponder(
81 mojo::Message* message,
82 mojo::MessageReceiver* responder) MOJO_OVERRIDE {
83 assert(false);
84 return false;
85 }
86 private: 80 private:
87 {{interface_macros.declare_callback(method)}} callback_; 81 {{interface_macros.declare_callback(method)}} callback_;
88 MOJO_DISALLOW_COPY_AND_ASSIGN({{class_name}}_{{method.name}}_ForwardToCallback ); 82 MOJO_DISALLOW_COPY_AND_ASSIGN({{class_name}}_{{method.name}}_ForwardToCallback );
89 }; 83 };
90 bool {{class_name}}_{{method.name}}_ForwardToCallback::Accept( 84 bool {{class_name}}_{{method.name}}_ForwardToCallback::Accept(
91 mojo::Message* message) { 85 mojo::Message* message) {
92 internal::{{class_name}}_{{method.name}}_ResponseParams_Data* params = 86 internal::{{class_name}}_{{method.name}}_ResponseParams_Data* params =
93 reinterpret_cast<internal::{{class_name}}_{{method.name}}_ResponseParams_D ata*>( 87 reinterpret_cast<internal::{{class_name}}_{{method.name}}_ResponseParams_D ata*>(
94 message->mutable_payload()); 88 message->mutable_payload());
95 89
96 if (!params->DecodePointersAndHandles(message)) 90 if (!params->DecodePointersAndHandles(message))
97 return false; 91 return false;
98 callback_.Run({{pass_params(method.response_parameters)}}); 92 callback_.Run({{pass_params(method.response_parameters)}});
99 params->CloseHandles(); 93 params->CloseHandles();
100 return true; 94 return true;
101 } 95 }
102 {%- endif %} 96 {%- endif %}
103 {%- endfor %} 97 {%- endfor %}
104 98
105 {{proxy_name}}::{{proxy_name}}(mojo::MessageReceiver* receiver) 99 {{proxy_name}}::{{proxy_name}}(mojo::MessageReceiverWithResponder* receiver)
106 : receiver_(receiver) { 100 : receiver_(receiver) {
107 } 101 }
108 102
109 {#--- Proxy definitions #} 103 {#--- Proxy definitions #}
110 104
111 {%- for method in interface.methods %} 105 {%- for method in interface.methods %}
112 {%- set message_name = 106 {%- set message_name =
113 "internal::k%s_%s_Name"|format(interface.name, method.name) %} 107 "internal::k%s_%s_Name"|format(interface.name, method.name) %}
114 {%- set params_name = 108 {%- set params_name =
115 "internal::%s_%s_Params_Data"|format(interface.name, method.name) %} 109 "internal::%s_%s_Params_Data"|format(interface.name, method.name) %}
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 {% if interface|has_callbacks %} 253 {% if interface|has_callbacks %}
260 {{class_name}}ResponseValidator::{{class_name}}ResponseValidator( 254 {{class_name}}ResponseValidator::{{class_name}}ResponseValidator(
261 mojo::MessageReceiver* sink) : MessageFilter(sink) { 255 mojo::MessageReceiver* sink) : MessageFilter(sink) {
262 } 256 }
263 257
264 bool {{class_name}}ResponseValidator::Accept(mojo::Message* message) { 258 bool {{class_name}}ResponseValidator::Accept(mojo::Message* message) {
265 // TODO(yzshen): implement validation logic. 259 // TODO(yzshen): implement validation logic.
266 return sink_->Accept(message); 260 return sink_->Accept(message);
267 } 261 }
268 {%- endif -%} 262 {%- endif -%}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698