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

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

Issue 109103003: Mojo: abstract interface implementation from generated Stub classes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase + fix build Created 6 years, 11 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 {%- set class_name = interface.name %} 1 {%- set class_name = interface.name %}
2 {%- set proxy_name = interface.name ~ "Proxy" %} 2 {%- set proxy_name = interface.name ~ "Proxy" %}
3 3
4 {{proxy_name}}::{{proxy_name}}(mojo::MessageReceiver* receiver) 4 {{proxy_name}}::{{proxy_name}}(mojo::MessageReceiver* receiver)
5 : receiver_(receiver) { 5 : receiver_(receiver) {
6 } 6 }
7 7
8 {#--- Proxy definitions #} 8 {#--- Proxy definitions #}
9 {%- macro params_list(method) %} 9 {%- macro params_list(method) %}
10 {%- for param in method.parameters -%} 10 {%- for param in method.parameters -%}
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 48
49 mojo::Message message; 49 mojo::Message message;
50 mojo::internal::EncodePointersAndHandles(params, &message.handles); 50 mojo::internal::EncodePointersAndHandles(params, &message.handles);
51 51
52 message.data = builder.Finish(); 52 message.data = builder.Finish();
53 53
54 receiver_->Accept(&message); 54 receiver_->Accept(&message);
55 } 55 }
56 {%- endfor %} 56 {%- endfor %}
57 57
58 {{class_name}}Stub::{{class_name}}Stub({{class_name}}* sink)
59 : sink_(sink) {
60 }
61
58 {#--- Stub definition #} 62 {#--- Stub definition #}
59 {%- macro params(method) %} 63 {%- macro params(method) %}
60 {%- for param in method.parameters %} 64 {%- for param in method.parameters %}
61 {%- if param.kind|is_object_kind -%} 65 {%- if param.kind|is_object_kind -%}
62 mojo::internal::Wrap(params->{{param.name}}()) 66 mojo::internal::Wrap(params->{{param.name}}())
63 {%- elif param.kind|is_handle_kind -%} 67 {%- elif param.kind|is_handle_kind -%}
64 mojo::MakePassable(params->{{param.name}}()).Pass() 68 mojo::MakePassable(params->{{param.name}}()).Pass()
65 {%- else -%} 69 {%- else -%}
66 params->{{param.name}}() 70 params->{{param.name}}()
67 {%- endif -%} 71 {%- endif -%}
68 {%- if not loop.last %}, {% endif %} 72 {%- if not loop.last %}, {% endif %}
69 {%- endfor %} 73 {%- endfor %}
70 {%- endmacro %} 74 {%- endmacro %}
71 75
72 bool {{class_name}}Stub::Accept(mojo::Message* message) { 76 bool {{class_name}}Stub::Accept(mojo::Message* message) {
73 switch (message->data->header.name) { 77 switch (message->data->header.name) {
74 {%- for method in interface.methods %} 78 {%- for method in interface.methods %}
75 case internal::k{{class_name}}_{{method.name}}_Name: { 79 case internal::k{{class_name}}_{{method.name}}_Name: {
76 internal::{{class_name}}_{{method.name}}_Params_Data* params = 80 internal::{{class_name}}_{{method.name}}_Params_Data* params =
77 reinterpret_cast<internal::{{class_name}}_{{method.name}}_Params_Data* >( 81 reinterpret_cast<internal::{{class_name}}_{{method.name}}_Params_Data* >(
78 message->data->payload); 82 message->data->payload);
79 83
80 if (!mojo::internal::DecodePointersAndHandles(params, message)) 84 if (!mojo::internal::DecodePointersAndHandles(params, message))
81 return false; 85 return false;
82 {{method.name}}({{params(method)}}); 86 sink_->{{method.name}}({{params(method)}});
83 mojo::internal::CloseHandles(params); 87 mojo::internal::CloseHandles(params);
84 break; 88 break;
85 } 89 }
86 {%- endfor %} 90 {%- endfor %}
87 } 91 }
88 return true; 92 return true;
89 } 93 }
OLDNEW
« no previous file with comments | « mojo/examples/sample_app/sample_app.cc ('k') | mojo/public/bindings/generators/cpp_templates/interface_stub_declaration.tmpl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698