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

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

Issue 814543006: Move //mojo/{public, edk} underneath //third_party (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 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
OLDNEW
(Empty)
1 {%- for method in interface.methods %}
2 const int k{{interface|name}}_{{method|name}}_name = {{method.ordinal}};
3 {%- endfor %}
4
5 abstract class {{interface|name}}Calls {
6 void sendMessage(bindings.Struct message, int name);
7 Future sendMessageWithRequestId(bindings.Struct message, int name, int id);
8
9 {%- for method in interface.methods %}
10 {%- if method.response_parameters == None %}
11 void call{{method|name|upper_camel_case}}(
12 {%- for parameter in method.parameters -%}
13 {{parameter.kind|dart_type}} {{parameter|name}}{% if not loop.last %}, {% en dif %}
14 {%- endfor -%}
15 {%- set request_struct = method|struct_from_method %}
16 ) {
17 var params = new {{request_struct|name}}();
18 {%- for parameter in method.parameters %}
19 params.{{parameter|name}} = {{parameter|name}};
20 {%- endfor %}
21 sendMessage(params, k{{interface|name}}_{{method|name}}_name);
22 }
23 {% else %}
24 {%- set response_struct = method|response_struct_from_method %}
25 Future<{{response_struct|name}}> call{{method|name|upper_camel_case}}(
26 {%- for parameter in method.parameters -%}
27 {{parameter.kind|dart_type}} {{parameter|name}},
28 {%- endfor -%}
29 {%- set request_struct = method|struct_from_method %}
30 [int requestId = -1]
31 ) {
32 var params = new {{request_struct|name}}();
33 {%- for parameter in method.parameters %}
34 params.{{parameter|name}} = {{parameter|name}};
35 {%- endfor %}
36 return sendMessageWithRequestId(
37 params,
38 k{{interface|name}}_{{method|name}}_name,
39 requestId,
40 bindings.MessageHeader.kMessageExpectsResponse);
41 }
42 {%- endif %}
43 {%- endfor %}
44 }
45
46 class {{interface|name}}Client extends bindings.Client with {{interface|name}}Ca lls {
47 {{interface|name}}Client(core.MojoMessagePipeEndpoint endpoint) : super(endpoi nt);
48
49 {{interface|name}}Client.fromHandle(core.MojoHandle handle) :
50 super.fromHandle(handle);
51
52 {{interface|name}}Client.unbound() : super.unbound();
53
54 static {{interface|name}}Client newFromEndpoint(
55 core.MojoMessagePipeEndpoint endpoint) =>
56 new {{interface|name}}Client(endpoint);
57
58 void handleResponse(bindings.ServiceMessage message) {
59 switch (message.header.type) {
60 {%- for method in interface.methods %}
61 {%- if method.response_parameters != None %}
62 {%- set response_struct = method|response_struct_from_method %}
63 case k{{interface|name}}_{{method|name}}_name:
64 var r = {{response_struct|name}}.deserialize(
65 message.payload);
66 if (!message.header.hasRequestId) {
67 throw 'Expected a message with a valid request Id.';
68 }
69 Completer c = completerMap[message.header.requestId];
70 completerMap[message.header.requestId] = null;
71 c.complete(r);
72 break;
73 {%- endif %}
74 {%- endfor %}
75 default:
76 throw new Exception("Unexpected message name");
77 break;
78 }
79 }
80 }
81
82
83 class {{interface|name}}Interface extends bindings.Interface
84 {% if interface.client != None -%}
85 with {{imported_from[interface.client]}}{{interface.client|upper_camel_case}}Cal ls
86 {% endif -%} {
87 {{interface|name}}Interface _delegate = null;
88
89 {{interface|name}}Interface(core.MojoMessagePipeEndpoint endpoint) : super(end point);
90
91 {{interface|name}}Interface.fromHandle(core.MojoHandle handle) :
92 super.fromHandle(handle);
93
94 {{interface|name}}Interface.unbound() : super.unbound();
95
96 static {{interface|name}}Interface newFromEndpoint(
97 core.MojoMessagePipeEndpoint endpoint) =>
98 new {{interface|name}}Interface(endpoint);
99
100 static const String name = '{{namespace|replace(".","::")}}::{{interface|name} }';
101
102 {% for method in interface.methods %}
103 {%- if method.response_parameters == None %}
104 void {{method|name}}(
105 {%- for parameter in method.parameters -%}
106 {{parameter.kind|dart_type}} {{parameter|name}}{% if not loop.last %}, {% en dif %}
107 {%- endfor -%}
108 ) {
109 assert(_delegate != null);
110 _delegate.{{method|name}}(
111 {%- for parameter in method.parameters -%}
112 {{parameter|name}}{% if not loop.last %}, {% endif %}
113 {%- endfor %});
114 }
115 {%- else %}
116 {%- set response_struct = method|response_struct_from_method %}
117 Future<{{response_struct|name}}> {{method|name}}(
118 {%- for parameter in method.parameters -%}
119 {{parameter.kind|dart_type}} {{parameter|name}}{% if not loop.last %}, {% en dif %}
120 {%- endfor -%}
121 ) {
122 assert(_delegate != null);
123 return _delegate.{{method|name}}(
124 {%- for parameter in method.parameters -%}
125 {{parameter|name}}{% if not loop.last %}, {% endif %}
126 {%- endfor %});
127 }
128 {%- endif %}
129 {%- endfor %}
130
131 Future<bindings.Message> handleMessage(bindings.ServiceMessage message) {
132 switch (message.header.type) {
133 {%- for method in interface.methods %}
134 {%- set request_struct = method|struct_from_method %}
135 case k{{interface|name}}_{{method|name}}_name:
136 var params = {{request_struct|name}}.deserialize(
137 message.payload);
138 {%- if method.response_parameters == None %}
139 {{method|name}}(
140 {%- for parameter in method.parameters -%}
141 params.{{parameter|name}}{% if not loop.last %}, {% endif %}
142 {%- endfor -%}
143 );
144 {%- else %}
145 return {{method|name}}(
146 {%- for parameter in method.parameters -%}
147 params.{{parameter|name}}{% if not loop.last %}, {% endif %}
148 {%- endfor -%}
149 ).then((response) {
150 if (response != null) {
151 return buildResponseWithId(
152 response,
153 k{{interface|name}}_{{method|name}}_name,
154 message.header.requestId,
155 bindings.MessageHeader.kMessageIsResponse);
156 }
157 });
158 {%- endif %}
159 break;
160 {%- endfor %}
161 default:
162 throw new Exception("Unexpected message name");
163 break;
164 }
165 return null;
166 }
167
168 {{interface|name}}Interface get delegate => _delegate;
169 set delegate({{interface|name}}Interface d) {
170 assert(_delegate == null);
171 _delegate = d;
172 }
173 }
174
175
176 {#--- TODO(zra): Validation #}
177
178
179 {#--- Interface Constants #}
180 {% for constant in interface.constants %}
181 final {{constant|name}} = {{constant.value|expression_to_text}};
182 {%- endfor %}
183
184
185 {#--- Interface Enums #}
186 {%- from "enum_definition.tmpl" import enum_def -%}
187 {%- for enum in interface.enums %}
188 {{ enum_def("", enum) }}
189 {%- endfor %}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698