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

Unified 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: snapshot 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 side-by-side diff with in-line comments
Download patch
Index: mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
diff --git a/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
index 7a030238623cef01e45cf74dab417ea83c6cbb3a..8a03b8d8beb22d8617ba35f5094cf4ff84dd870a 100644
--- a/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
+++ b/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
@@ -6,6 +6,8 @@
{%- for param in parameters %}
{%- if param.kind|is_object_kind -%}
mojo::internal::Wrap(params->{{param.name}}())
+{%- elif param.kind|is_interface_kind -%}
+mojo::MakeProxy<{{param.kind.name}}>(mojo::MakePassable(params->{{param.name}}()).Pass())
{%- elif param.kind|is_handle_kind -%}
mojo::MakePassable(params->{{param.name}}()).Pass()
{%- elif param.kind|is_enum_kind -%}
@@ -38,6 +40,19 @@ params->{{param.name}}()
if (!in_{{param.name}}.is_null())
params->set_{{param.name}}(
mojo::internal::Unwrap(in_{{param.name}})->Clone(builder.buffer()));
+{%- elif param.kind|is_interface_kind %}
+ if (!in_{{param.name}}.get()) {
+ params->set_{{param.name}}(mojo::MessagePipeHandle());
+ } else if (in_{{param.name}}.has_context()) {
+ // TODO(darin): Add code to delegate message pipe!
+ assert(false);
+ params->set_{{param.name}}(mojo::MessagePipeHandle());
+ } else {
+ mojo::MessagePipe pipe;
+ in_{{param.name}}.ConfigureStub(pipe.handle0.Pass());
+ in_{{param.name}}.Detach();
+ params->set_{{param.name}}(pipe.handle1.release());
+ }
{%- elif param.kind|is_handle_kind %}
params->set_{{param.name}}(in_{{param.name}}.release());
{%- else %}
@@ -165,8 +180,8 @@ void {{class_name}}_{{method.name}}_ProxyToResponder::Run(
{%- endif -%}
{%- endfor %}
-{{class_name}}Stub::{{class_name}}Stub({{class_name}}* sink)
- : sink_(sink) {
+{{class_name}}Stub::{{class_name}}Stub()
+ : sink_(NULL) {
}
{#--- Stub definition #}

Powered by Google App Engine
This is Rietveld 408576698