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

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: rebase 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 if (in_{{param.name}}.has_context()) {
47 // TODO(darin): Add code to delegate message pipe!
48 assert(false);
49 params->set_{{param.name}}(mojo::MessagePipeHandle());
50 } else {
51 mojo::MessagePipe pipe;
52 in_{{param.name}}.ConfigureStub(pipe.handle0.Pass());
53 in_{{param.name}}.Detach();
54 params->set_{{param.name}}(pipe.handle1.release());
55 }
41 {%- elif param.kind|is_handle_kind %} 56 {%- elif param.kind|is_handle_kind %}
42 params->set_{{param.name}}(in_{{param.name}}.release()); 57 params->set_{{param.name}}(in_{{param.name}}.release());
43 {%- else %} 58 {%- else %}
44 params->set_{{param.name}}(in_{{param.name}}); 59 params->set_{{param.name}}(in_{{param.name}});
45 {%- endif %} 60 {%- endif %}
46 {%- endfor %} 61 {%- endfor %}
47 mojo::Message message; 62 mojo::Message message;
48 params->EncodePointersAndHandles(message.mutable_handles()); 63 params->EncodePointersAndHandles(message.mutable_handles());
49 builder.Finish(&message); 64 builder.Finish(&message);
50 {%- endmacro %} 65 {%- endmacro %}
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 bool ok MOJO_ALLOW_UNUSED = responder_->Accept(&message); 173 bool ok MOJO_ALLOW_UNUSED = responder_->Accept(&message);
159 // TODO(darin): !ok returned here indicates a malformed message, and that may 174 // 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 175 // 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. 176 // that from here. We should add a way.
162 delete responder_; 177 delete responder_;
163 responder_ = NULL; 178 responder_ = NULL;
164 } 179 }
165 {%- endif -%} 180 {%- endif -%}
166 {%- endfor %} 181 {%- endfor %}
167 182
168 {{class_name}}Stub::{{class_name}}Stub({{class_name}}* sink) 183 {{class_name}}Stub::{{class_name}}Stub()
169 : sink_(sink) { 184 : sink_(NULL) {
170 } 185 }
171 186
172 {#--- Stub definition #} 187 {#--- Stub definition #}
173 188
174 bool {{class_name}}Stub::Accept(mojo::Message* message) { 189 bool {{class_name}}Stub::Accept(mojo::Message* message) {
175 {%- if interface.methods %} 190 {%- if interface.methods %}
176 switch (message->header()->name) { 191 switch (message->header()->name) {
177 {%- for method in interface.methods %} 192 {%- for method in interface.methods %}
178 case internal::k{{class_name}}_{{method.name}}_Name: { 193 case internal::k{{class_name}}_{{method.name}}_Name: {
179 {%- if method.response_parameters == None %} 194 {%- if method.response_parameters == None %}
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 return true; 234 return true;
220 {%- else %} 235 {%- else %}
221 break; 236 break;
222 {%- endif %} 237 {%- endif %}
223 } 238 }
224 {%- endfor %} 239 {%- endfor %}
225 } 240 }
226 {%- endif %} 241 {%- endif %}
227 return false; 242 return false;
228 } 243 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698