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

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

Issue 1433183002: Generate Mojom Types for Dart (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Removed assert that breaks dart unit test Created 5 years, 1 month 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
OLDNEW
1 {%- for method in interface.methods %} 1 {%- for method in interface.methods %}
2 const int k{{interface|name}}_{{method|name}}_name = {{method.ordinal}}; 2 const int k{{interface|name}}_{{method|name}}_name = {{method.ordinal}};
3 {%- endfor %} 3 {%- endfor %}
4 4
5 const String {{interface|name}}Name = 5 const String {{interface|name}}Name =
6 '{{namespace|replace(".","::")}}::{{interface.name}}'; 6 '{{namespace|replace(".","::")}}::{{interface.name}}';
7 7
8 {#--- Interface Enums #} 8 {#--- Interface Enums #}
9 {%- from "enum_definition.tmpl" import enum_def -%} 9 {%- from "enum_definition.tmpl" import enum_def -%}
10 {%- for enum in interface.enums %} 10 {%- for enum in interface.enums %}
11 {{ enum_def(enum) }} 11 {{ enum_def(enum, typepkg, package) }}
12 {%- endfor %} 12 {%- endfor %}
13 13
14 {{ mojom_type_macros.writeMojomTypeDef(interface, typepkg, package) }}
15
16 class _{{interface|name}}ServiceDescription extends {{descpkg}}ServiceDescriptio n {
17 // Avoid infinite loop by overriding serviceDescription field.
18 final {{descpkg}}ServiceDescription serviceDescription = null;
19 {% if should_gen_mojom_types -%}
20 dynamic getTopLevelInterface([Function responseFactory = null]) {
21 return {{interface|mojom_type_identifier}}();
22 }
23 dynamic getTypeDefinition(String typeKey,[Function responseFactory = null]) {
24 return getAllMojomTypeDefinitions()[typeKey];
25 }
26 dynamic getAllTypeDefinitions([Function responseFactory = null]) {
27 return getAllMojomTypeDefinitions();
28 }
29 {%- else -%}
30 dynamic getTopLevelInterface([Function responseFactory = null]) {
31 return null;
32 }
33 dynamic getTypeDefinition(String typeKey,[Function responseFactory = null]) {
34 return null;
35 }
36 dynamic getAllTypeDefinitions([Function responseFactory = null]) {
37 return null;
38 }
39 {%- endif %}
40 }
41
14 abstract class {{interface|name}} { 42 abstract class {{interface|name}} {
43 final {{descpkg}}ServiceDescription serviceDescription =
zra 2015/11/18 19:24:35 This is probably not the right place for this. See
44 {% if descpkg != '' -%}
45 new _{{interface|name}}ServiceDescription();
46 {%- else -%}
47 null;
48 {%- endif %}
49
15 {%- for method in interface.methods %} 50 {%- for method in interface.methods %}
16 {%- if method.response_parameters == None %} 51 {%- if method.response_parameters == None %}
17 void {{method|name}}( 52 void {{method|name}}(
18 {%- for parameter in method.parameters -%} 53 {%- for parameter in method.parameters -%}
19 {{parameter.kind|dart_type}} {{parameter|name}}{% if not loop.last %}, {% endif %} 54 {{parameter.kind|dart_type}} {{parameter|name}}{% if not loop.last %}, {% endif %}
20 {%- endfor -%} 55 {%- endfor -%}
21 ); 56 );
22 {%- else %} 57 {%- else %}
23 {%- set response_struct = method.response_param_struct %} 58 {%- set response_struct = method.response_param_struct %}
24 dynamic {{method|name}}( 59 dynamic {{method|name}}(
(...skipping 21 matching lines...) Expand all
46 {{interface|name}}ProxyImpl.unbound() : super.unbound(); 81 {{interface|name}}ProxyImpl.unbound() : super.unbound();
47 82
48 static {{interface|name}}ProxyImpl newFromEndpoint( 83 static {{interface|name}}ProxyImpl newFromEndpoint(
49 core.MojoMessagePipeEndpoint endpoint) { 84 core.MojoMessagePipeEndpoint endpoint) {
50 assert(endpoint.setDescription("For {{interface|name}}ProxyImpl")); 85 assert(endpoint.setDescription("For {{interface|name}}ProxyImpl"));
51 return new {{interface|name}}ProxyImpl.fromEndpoint(endpoint); 86 return new {{interface|name}}ProxyImpl.fromEndpoint(endpoint);
52 } 87 }
53 88
54 String get name => {{interface|name}}Name; 89 String get name => {{interface|name}}Name;
55 90
91 {{descpkg}}ServiceDescription get serviceDescription =>
zra 2015/11/18 19:24:36 This seems like the right place. See comment below
92 new _{{interface|name}}ServiceDescription();
93
56 void handleResponse(bindings.ServiceMessage message) { 94 void handleResponse(bindings.ServiceMessage message) {
57 switch (message.header.type) { 95 switch (message.header.type) {
58 {%- for method in interface.methods %} 96 {%- for method in interface.methods %}
59 {%- if method.response_parameters != None %} 97 {%- if method.response_parameters != None %}
60 {%- set response_struct = method.response_param_struct %} 98 {%- set response_struct = method.response_param_struct %}
61 case k{{interface|name}}_{{method|name}}_name: 99 case k{{interface|name}}_{{method|name}}_name:
62 var r = {{response_struct|name}}.deserialize( 100 var r = {{response_struct|name}}.deserialize(
63 message.payload); 101 message.payload);
64 if (!message.header.hasRequestId) { 102 if (!message.header.hasRequestId) {
65 proxyError("Expected a message with a valid request Id."); 103 proxyError("Expected a message with a valid request Id.");
(...skipping 21 matching lines...) Expand all
87 } 125 }
88 } 126 }
89 127
90 String toString() { 128 String toString() {
91 var superString = super.toString(); 129 var superString = super.toString();
92 return "{{interface|name}}ProxyImpl($superString)"; 130 return "{{interface|name}}ProxyImpl($superString)";
93 } 131 }
94 } 132 }
95 133
96 134
97 class _{{interface|name}}ProxyCalls implements {{interface|name}} { 135 class _{{interface|name}}ProxyCalls extends {{interface|name}} {
zra 2015/11/18 19:24:36 Sorry for the lack of comments here. The ProxyCall
alexfandrianto 2015/11/19 23:27:23 As discussed offline, the reason for these changes
98 {{interface|name}}ProxyImpl _proxyImpl; 136 {{interface|name}}ProxyImpl _proxyImpl;
99 137
100 _{{interface|name}}ProxyCalls(this._proxyImpl); 138 _{{interface|name}}ProxyCalls(this._proxyImpl);
101 139
102 {%- for method in interface.methods %} 140 {%- for method in interface.methods %}
103 {%- if method.response_parameters == None %} 141 {%- if method.response_parameters == None %}
104 void {{method|name}}( 142 void {{method|name}}(
105 {%- for parameter in method.parameters -%} 143 {%- for parameter in method.parameters -%}
106 {{parameter.kind|dart_type}} {{parameter|name}}{% if not loop.last %}, {% endif %} 144 {{parameter.kind|dart_type}} {{parameter|name}}{% if not loop.last %}, {% endif %}
107 {%- endfor -%} 145 {%- endfor -%}
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 _impl = d; 332 _impl = d;
295 } 333 }
296 334
297 String toString() { 335 String toString() {
298 var superString = super.toString(); 336 var superString = super.toString();
299 return "{{interface|name}}Stub($superString)"; 337 return "{{interface|name}}Stub($superString)";
300 } 338 }
301 339
302 int get version => {{interface.version}}; 340 int get version => {{interface.version}};
303 } 341 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698