OLD | NEW |
1 {%- for method in interface.methods %} | 1 {%- for method in interface.methods %} |
2 const int _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name =
{{method.ordinal}}; | 2 const int _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name =
{{method.ordinal}}; |
3 {%- endfor %} | 3 {%- endfor %} |
4 | 4 |
5 {#--- Interface Enums #} | 5 {#--- Interface Enums #} |
6 {%- from "enum_definition.tmpl" import enum_def -%} | 6 {%- from "enum_definition.tmpl" import enum_def -%} |
7 {%- for enum in interface.enums %} | 7 {%- for enum in interface.enums %} |
8 {{ enum_def(enum, typepkg, package) }} | 8 {{ enum_def(enum, typepkg, package) }} |
9 {%- endfor %} | 9 {%- endfor %} |
10 | 10 |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 {%- endif %} | 56 {%- endif %} |
57 {%- endfor %} | 57 {%- endfor %} |
58 | 58 |
59 {#--- Interface Constants #} | 59 {#--- Interface Constants #} |
60 {%- for constant in interface.constants %} | 60 {%- for constant in interface.constants %} |
61 static const {{constant.kind|dart_type}} {{constant|name}} = {{constant.resolv
ed_value}}; | 61 static const {{constant.kind|dart_type}} {{constant|name}} = {{constant.resolv
ed_value}}; |
62 {%- endfor %} | 62 {%- endfor %} |
63 } | 63 } |
64 | 64 |
65 | 65 |
66 class _{{interface|name}}ProxyImpl extends bindings.Proxy { | 66 class _{{interface|name}}ProxyControl extends bindings.ProxyMessageHandler |
67 _{{interface|name}}ProxyImpl.fromEndpoint( | 67 implements bindings.ProxyControl { |
| 68 _{{interface|name}}ProxyControl.fromEndpoint( |
68 core.MojoMessagePipeEndpoint endpoint) : super.fromEndpoint(endpoint); | 69 core.MojoMessagePipeEndpoint endpoint) : super.fromEndpoint(endpoint); |
69 | 70 |
70 _{{interface|name}}ProxyImpl.fromHandle(core.MojoHandle handle) : | 71 _{{interface|name}}ProxyControl.fromHandle( |
71 super.fromHandle(handle); | 72 core.MojoHandle handle) : super.fromHandle(handle); |
72 | 73 |
73 _{{interface|name}}ProxyImpl.unbound() : super.unbound(); | 74 _{{interface|name}}ProxyControl.unbound() : super.unbound(); |
74 | |
75 static _{{interface|name}}ProxyImpl newFromEndpoint( | |
76 core.MojoMessagePipeEndpoint endpoint) { | |
77 assert(endpoint.setDescription("For _{{interface|name}}ProxyImpl")); | |
78 return new _{{interface|name}}ProxyImpl.fromEndpoint(endpoint); | |
79 } | |
80 | 75 |
81 {{descpkg}}ServiceDescription get serviceDescription => | 76 {{descpkg}}ServiceDescription get serviceDescription => |
82 new _{{interface|name}}ServiceDescription(); | 77 new _{{interface|name}}ServiceDescription(); |
83 | 78 |
| 79 String get serviceName => {{interface|name}}.serviceName; |
| 80 |
| 81 @override |
84 void handleResponse(bindings.ServiceMessage message) { | 82 void handleResponse(bindings.ServiceMessage message) { |
85 switch (message.header.type) { | 83 switch (message.header.type) { |
86 {%- for method in interface.methods %} | 84 {%- for method in interface.methods %} |
87 {%- if method.response_parameters != None %} | 85 {%- if method.response_parameters != None %} |
88 {%- set response_struct = method.response_param_struct %} | 86 {%- set response_struct = method.response_param_struct %} |
89 case _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name: | 87 case _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name: |
90 var r = {{response_struct|name}}.deserialize( | 88 var r = {{response_struct|name}}.deserialize( |
91 message.payload); | 89 message.payload); |
92 if (!message.header.hasRequestId) { | 90 if (!message.header.hasRequestId) { |
93 proxyError("Expected a message with a valid request Id."); | 91 proxyError("Expected a message with a valid request Id."); |
(...skipping 14 matching lines...) Expand all Loading... |
108 break; | 106 break; |
109 {%- endif %} | 107 {%- endif %} |
110 {%- endfor %} | 108 {%- endfor %} |
111 default: | 109 default: |
112 proxyError("Unexpected message type: ${message.header.type}"); | 110 proxyError("Unexpected message type: ${message.header.type}"); |
113 close(immediate: true); | 111 close(immediate: true); |
114 break; | 112 break; |
115 } | 113 } |
116 } | 114 } |
117 | 115 |
| 116 @override |
118 String toString() { | 117 String toString() { |
119 var superString = super.toString(); | 118 var superString = super.toString(); |
120 return "_{{interface|name}}ProxyImpl($superString)"; | 119 return "_{{interface|name}}ProxyControl($superString)"; |
121 } | 120 } |
122 } | 121 } |
123 | 122 |
124 | 123 |
125 class _{{interface|name}}ProxyCalls implements {{interface|name}} { | 124 class {{interface|name}}Proxy extends bindings.Proxy |
126 {%- if interface.methods %} | 125 implements {{interface|name}} { |
127 _{{interface|name}}ProxyImpl _proxyImpl; | 126 {{interface|name}}Proxy.fromEndpoint( |
| 127 core.MojoMessagePipeEndpoint endpoint) |
| 128 : super(new _{{interface|name}}ProxyControl.fromEndpoint(endpoint)); |
128 | 129 |
129 _{{interface|name}}ProxyCalls(this._proxyImpl); | 130 {{interface|name}}Proxy.fromHandle(core.MojoHandle handle) |
130 {%- else %} | 131 : super(new _{{interface|name}}ProxyControl.fromHandle(handle)); |
131 _{{interface|name}}ProxyCalls(_{{interface|name}}ProxyImpl _); | |
132 {%- endif %} | |
133 | 132 |
134 {%- for method in interface.methods %} | 133 {{interface|name}}Proxy.unbound() |
135 {%- if method.response_parameters == None %} | 134 : super(new _{{interface|name}}ProxyControl.unbound()); |
136 void {{method|name}}( | |
137 {%- for parameter in method.parameters -%} | |
138 {{parameter.kind|dart_type}} {{parameter|name}}{% if not loop.last %}, {%
endif %} | |
139 {%- endfor -%} | |
140 {%- set request_struct = method.param_struct -%} | |
141 ) { | |
142 if (!_proxyImpl.isBound) { | |
143 _proxyImpl.proxyError("The Proxy is closed."); | |
144 return; | |
145 } | |
146 var params = new {{request_struct|name}}(); | |
147 {%- for parameter in method.parameters %} | |
148 params.{{parameter|name}} = {{parameter|name}}; | |
149 {%- endfor %} | |
150 _proxyImpl.sendMessage(params, _{{interface|name|lower_camel}}Method{{meth
od|name|upper_camel}}Name); | |
151 } | |
152 {%- else %} | |
153 {%- set request_struct = method.param_struct %} | |
154 dynamic {{method|name}}( | |
155 {%- for parameter in method.parameters -%} | |
156 {{parameter.kind|dart_type}} {{parameter|name}}, | |
157 {%- endfor -%} | |
158 [Function responseFactory = null]) { | |
159 var params = new {{request_struct|name}}(); | |
160 {%- for parameter in method.parameters %} | |
161 params.{{parameter|name}} = {{parameter|name}}; | |
162 {%- endfor %} | |
163 return _proxyImpl.sendMessageWithRequestId( | |
164 params, | |
165 _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name, | |
166 -1, | |
167 bindings.MessageHeader.kMessageExpectsResponse); | |
168 } | |
169 {%- endif %} | |
170 {%- endfor %} | |
171 } | |
172 | 135 |
173 | 136 static {{interface|name}}Proxy newFromEndpoint( |
174 class {{interface|name}}Proxy implements bindings.ProxyBase { | 137 core.MojoMessagePipeEndpoint endpoint) { |
175 final bindings.Proxy impl; | 138 assert(endpoint.setDescription("For {{interface|name}}Proxy")); |
176 {{interface|name}} ptr; | 139 return new {{interface|name}}Proxy.fromEndpoint(endpoint); |
177 | |
178 {{interface|name}}Proxy(_{{interface|name}}ProxyImpl proxyImpl) : | |
179 impl = proxyImpl, | |
180 ptr = new _{{interface|name}}ProxyCalls(proxyImpl); | |
181 | |
182 {{interface|name}}Proxy.fromEndpoint( | |
183 core.MojoMessagePipeEndpoint endpoint) : | |
184 impl = new _{{interface|name}}ProxyImpl.fromEndpoint(endpoint) { | |
185 ptr = new _{{interface|name}}ProxyCalls(impl); | |
186 } | |
187 | |
188 {{interface|name}}Proxy.fromHandle(core.MojoHandle handle) : | |
189 impl = new _{{interface|name}}ProxyImpl.fromHandle(handle) { | |
190 ptr = new _{{interface|name}}ProxyCalls(impl); | |
191 } | |
192 | |
193 {{interface|name}}Proxy.unbound() : | |
194 impl = new _{{interface|name}}ProxyImpl.unbound() { | |
195 ptr = new _{{interface|name}}ProxyCalls(impl); | |
196 } | 140 } |
197 | 141 |
198 factory {{interface|name}}Proxy.connectToService( | 142 factory {{interface|name}}Proxy.connectToService( |
199 bindings.ServiceConnector s, String url, [String serviceName]) { | 143 bindings.ServiceConnector s, String url, [String serviceName]) { |
200 {{interface|name}}Proxy p = new {{interface|name}}Proxy.unbound(); | 144 {{interface|name}}Proxy p = new {{interface|name}}Proxy.unbound(); |
201 s.connectToService(url, p, serviceName); | 145 s.connectToService(url, p, serviceName); |
202 return p; | 146 return p; |
203 } | 147 } |
204 | 148 |
205 static {{interface|name}}Proxy newFromEndpoint( | 149 {% for method in interface.methods %} |
206 core.MojoMessagePipeEndpoint endpoint) { | 150 {%- if method.response_parameters == None %} |
207 assert(endpoint.setDescription("For {{interface|name}}Proxy")); | 151 void {{method|name}}( |
208 return new {{interface|name}}Proxy.fromEndpoint(endpoint); | 152 {%- for parameter in method.parameters -%} |
| 153 {{parameter.kind|dart_type}} {{parameter|name}}{% if not loop.last %}, {% en
dif %} |
| 154 {%- endfor -%} |
| 155 {%- set request_struct = method.param_struct -%} |
| 156 ) { |
| 157 if (!ctrl.isBound) { |
| 158 ctrl.proxyError("The Proxy is closed."); |
| 159 return; |
| 160 } |
| 161 var params = new {{request_struct|name}}(); |
| 162 {%- for parameter in method.parameters %} |
| 163 params.{{parameter|name}} = {{parameter|name}}; |
| 164 {%- endfor %} |
| 165 ctrl.sendMessage(params, |
| 166 _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name); |
209 } | 167 } |
210 | 168 {%- else %} |
211 String get serviceName => {{interface|name}}.serviceName; | 169 {%- set request_struct = method.param_struct %} |
212 | 170 dynamic {{method|name}}( |
213 Future close({bool immediate: false}) => impl.close(immediate: immediate); | 171 {%- for parameter in method.parameters -%} |
214 | 172 {{parameter.kind|dart_type}} {{parameter|name}}, |
215 Future responseOrError(Future f) => impl.responseOrError(f); | 173 {%- endfor -%} |
216 | 174 [Function responseFactory = null]) { |
217 Future get errorFuture => impl.errorFuture; | 175 var params = new {{request_struct|name}}(); |
218 | 176 {%- for parameter in method.parameters %} |
219 int get version => impl.version; | 177 params.{{parameter|name}} = {{parameter|name}}; |
220 | 178 {%- endfor %} |
221 Future<int> queryVersion() => impl.queryVersion(); | 179 return ctrl.sendMessageWithRequestId( |
222 | 180 params, |
223 void requireVersion(int requiredVersion) { | 181 _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name, |
224 impl.requireVersion(requiredVersion); | 182 -1, |
| 183 bindings.MessageHeader.kMessageExpectsResponse); |
225 } | 184 } |
226 | 185 {%- endif %} |
227 String toString() { | 186 {%- endfor %} |
228 return "{{interface|name}}Proxy($impl)"; | |
229 } | |
230 } | 187 } |
231 | 188 |
232 | 189 |
233 class {{interface|name}}Stub extends bindings.Stub { | 190 class {{interface|name}}Stub extends bindings.Stub { |
234 {{interface|name}} _impl; | 191 {{interface|name}} _impl; |
235 | 192 |
236 {{interface|name}}Stub.fromEndpoint( | 193 {{interface|name}}Stub.fromEndpoint( |
237 core.MojoMessagePipeEndpoint endpoint, [{{interface|name}} impl]) | 194 core.MojoMessagePipeEndpoint endpoint, [{{interface|name}} impl]) |
238 : super.fromEndpoint(endpoint, autoBegin: impl != null) { | 195 : super.fromEndpoint(endpoint, autoBegin: impl != null) { |
239 _impl = impl; | 196 _impl = impl; |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
354 int get version => {{interface.version}}; | 311 int get version => {{interface.version}}; |
355 | 312 |
356 static {{descpkg}}ServiceDescription _cachedServiceDescription; | 313 static {{descpkg}}ServiceDescription _cachedServiceDescription; |
357 static {{descpkg}}ServiceDescription get serviceDescription { | 314 static {{descpkg}}ServiceDescription get serviceDescription { |
358 if (_cachedServiceDescription == null) { | 315 if (_cachedServiceDescription == null) { |
359 _cachedServiceDescription = new _{{interface|name}}ServiceDescription(); | 316 _cachedServiceDescription = new _{{interface|name}}ServiceDescription(); |
360 } | 317 } |
361 return _cachedServiceDescription; | 318 return _cachedServiceDescription; |
362 } | 319 } |
363 } | 320 } |
OLD | NEW |