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

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

Issue 265793015: Mojo: Replace RemotePtr with InterfacePtr and InterfaceImpl (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Force InterfaceImpl subclasses to implement OnConnectionError Created 6 years, 7 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 -%}
10 mojo::MakeProxy<{{param.kind.name}}>(mojo::MakePassable(params->{{param.name}}() ).Pass())
9 {%- elif param.kind|is_handle_kind -%} 11 {%- elif param.kind|is_handle_kind -%}
10 mojo::MakePassable(params->{{param.name}}()).Pass() 12 mojo::MakePassable(params->{{param.name}}()).Pass()
11 {%- elif param.kind|is_enum_kind -%} 13 {%- elif param.kind|is_enum_kind -%}
12 static_cast<{{param.kind|cpp_wrapper_type}}>(params->{{param.name}}()) 14 static_cast<{{param.kind|cpp_wrapper_type}}>(params->{{param.name}}())
13 {%- else -%} 15 {%- else -%}
14 params->{{param.name}}() 16 params->{{param.name}}()
15 {%- endif -%} 17 {%- endif -%}
16 {%- if not loop.last %}, {% endif %} 18 {%- if not loop.last %}, {% endif %}
17 {%- endfor %} 19 {%- endfor %}
18 {%- endmacro %} 20 {%- endmacro %}
(...skipping 12 matching lines...) Expand all
31 33
32 {%- macro build_message(params_name, parameters) -%} 34 {%- macro build_message(params_name, parameters) -%}
33 {{params_name}}* params = 35 {{params_name}}* params =
34 {{params_name}}::New(builder.buffer()); 36 {{params_name}}::New(builder.buffer());
35 {#--- Sets #} 37 {#--- Sets #}
36 {% for param in parameters %} 38 {% for param in parameters %}
37 {%- if param.kind|is_object_kind %} 39 {%- if param.kind|is_object_kind %}
38 if (!in_{{param.name}}.is_null()) 40 if (!in_{{param.name}}.is_null())
39 params->set_{{param.name}}( 41 params->set_{{param.name}}(
40 mojo::internal::Unwrap(in_{{param.name}})->Clone(builder.buffer())); 42 mojo::internal::Unwrap(in_{{param.name}})->Clone(builder.buffer()));
43 {%- elif param.kind|is_interface_kind %}
44 if (!in_{{param.name}}.get()) {
45 params->set_{{param.name}}(mojo::MessagePipeHandle());
46 } else {
47 // Delegate handle.
48 params->set_{{param.name}}(
49 in_{{param.name}}.ResetAndReturnMessagePipe().release());
50 }
41 {%- elif param.kind|is_handle_kind %} 51 {%- elif param.kind|is_handle_kind %}
42 params->set_{{param.name}}(in_{{param.name}}.release()); 52 params->set_{{param.name}}(in_{{param.name}}.release());
43 {%- else %} 53 {%- else %}
44 params->set_{{param.name}}(in_{{param.name}}); 54 params->set_{{param.name}}(in_{{param.name}});
45 {%- endif %} 55 {%- endif %}
46 {%- endfor %} 56 {%- endfor %}
47 mojo::Message message; 57 mojo::Message message;
48 params->EncodePointersAndHandles(message.mutable_handles()); 58 params->EncodePointersAndHandles(message.mutable_handles());
49 builder.Finish(&message); 59 builder.Finish(&message);
50 {%- endmacro %} 60 {%- endmacro %}
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 bool ok MOJO_ALLOW_UNUSED = responder_->Accept(&message); 168 bool ok MOJO_ALLOW_UNUSED = responder_->Accept(&message);
159 // TODO(darin): !ok returned here indicates a malformed message, and that may 169 // TODO(darin): !ok returned here indicates a malformed message, and that may
160 // be good reason to close the connection. However, we don't have a way to do 170 // be good reason to close the connection. However, we don't have a way to do
161 // that from here. We should add a way. 171 // that from here. We should add a way.
162 delete responder_; 172 delete responder_;
163 responder_ = NULL; 173 responder_ = NULL;
164 } 174 }
165 {%- endif -%} 175 {%- endif -%}
166 {%- endfor %} 176 {%- endfor %}
167 177
168 {{class_name}}Stub::{{class_name}}Stub({{class_name}}* sink) 178 {{class_name}}Stub::{{class_name}}Stub()
169 : sink_(sink) { 179 : sink_(NULL) {
170 } 180 }
171 181
172 {#--- Stub definition #} 182 {#--- Stub definition #}
173 183
174 bool {{class_name}}Stub::Accept(mojo::Message* message) { 184 bool {{class_name}}Stub::Accept(mojo::Message* message) {
175 {%- if interface.methods %} 185 {%- if interface.methods %}
176 switch (message->header()->name) { 186 switch (message->header()->name) {
177 {%- for method in interface.methods %} 187 {%- for method in interface.methods %}
178 case internal::k{{class_name}}_{{method.name}}_Name: { 188 case internal::k{{class_name}}_{{method.name}}_Name: {
179 {%- if method.response_parameters == None %} 189 {%- if method.response_parameters == None %}
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 return true; 229 return true;
220 {%- else %} 230 {%- else %}
221 break; 231 break;
222 {%- endif %} 232 {%- endif %}
223 } 233 }
224 {%- endfor %} 234 {%- endfor %}
225 } 235 }
226 {%- endif %} 236 {%- endif %}
227 return false; 237 return false;
228 } 238 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698