OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 library view_provider_mojom; | 5 library view_provider_mojom; |
6 import 'dart:async'; | 6 import 'dart:async'; |
7 import 'package:mojo/bindings.dart' as bindings; | 7 import 'package:mojo/bindings.dart' as bindings; |
8 import 'package:mojo/core.dart' as core; | 8 import 'package:mojo/core.dart' as core; |
9 import 'package:mojo/mojo/bindings/types/service_describer.mojom.dart' as servic
e_describer; | 9 import 'package:mojo/mojo/bindings/types/service_describer.mojom.dart' as servic
e_describer; |
10 import 'package:mojo/mojo/service_provider.mojom.dart' as service_provider_mojom
; | 10 import 'package:mojo/mojo/service_provider.mojom.dart' as service_provider_mojom
; |
11 import 'package:mojo_services/mojo/ui/view_token.mojom.dart' as view_token_mojom
; | 11 import 'package:mojo_services/mojo/ui/view_token.mojom.dart' as view_token_mojom
; |
12 | 12 |
13 | 13 |
14 | 14 |
15 class _ViewProviderCreateViewParams extends bindings.Struct { | 15 class _ViewProviderCreateViewParams extends bindings.Struct { |
16 static const List<bindings.StructDataHeader> kVersions = const [ | 16 static const List<bindings.StructDataHeader> kVersions = const [ |
17 const bindings.StructDataHeader(16, 0) | 17 const bindings.StructDataHeader(16, 0) |
18 ]; | 18 ]; |
19 view_token_mojom.ViewOwnerInterfaceRequest viewOwner = null; | 19 view_token_mojom.ViewOwnerInterfaceRequest viewOwner = null; |
20 service_provider_mojom.ServiceProviderInterfaceRequest services = null; | 20 service_provider_mojom.ServiceProviderInterfaceRequest services = null; |
21 | 21 |
22 _ViewProviderCreateViewParams() : super(kVersions.last.size); | 22 _ViewProviderCreateViewParams() : super(kVersions.last.size); |
23 | 23 |
| 24 _ViewProviderCreateViewParams.init( |
| 25 view_token_mojom.ViewOwnerInterfaceRequest this.viewOwner, |
| 26 service_provider_mojom.ServiceProviderInterfaceRequest this.services |
| 27 ) : super(kVersions.last.size); |
| 28 |
24 static _ViewProviderCreateViewParams deserialize(bindings.Message message) { | 29 static _ViewProviderCreateViewParams deserialize(bindings.Message message) { |
25 var decoder = new bindings.Decoder(message); | 30 var decoder = new bindings.Decoder(message); |
26 var result = decode(decoder); | 31 var result = decode(decoder); |
27 if (decoder.excessHandles != null) { | 32 if (decoder.excessHandles != null) { |
28 decoder.excessHandles.forEach((h) => h.close()); | 33 decoder.excessHandles.forEach((h) => h.close()); |
29 } | 34 } |
30 return result; | 35 return result; |
31 } | 36 } |
32 | 37 |
33 static _ViewProviderCreateViewParams decode(bindings.Decoder decoder0) { | 38 static _ViewProviderCreateViewParams decode(bindings.Decoder decoder0) { |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
91 | 96 |
92 Map toJson() { | 97 Map toJson() { |
93 throw new bindings.MojoCodecError( | 98 throw new bindings.MojoCodecError( |
94 'Object containing handles cannot be encoded to JSON.'); | 99 'Object containing handles cannot be encoded to JSON.'); |
95 } | 100 } |
96 } | 101 } |
97 | 102 |
98 const int _viewProviderMethodCreateViewName = 0; | 103 const int _viewProviderMethodCreateViewName = 0; |
99 | 104 |
100 class _ViewProviderServiceDescription implements service_describer.ServiceDescri
ption { | 105 class _ViewProviderServiceDescription implements service_describer.ServiceDescri
ption { |
101 dynamic getTopLevelInterface([Function responseFactory]) => | 106 void getTopLevelInterface(Function responder) { |
102 responseFactory(null); | 107 responder(null); |
| 108 } |
103 | 109 |
104 dynamic getTypeDefinition(String typeKey, [Function responseFactory]) => | 110 void getTypeDefinition(String typeKey, Function responder) { |
105 responseFactory(null); | 111 responder(null); |
| 112 } |
106 | 113 |
107 dynamic getAllTypeDefinitions([Function responseFactory]) => | 114 void getAllTypeDefinitions(Function responder) { |
108 responseFactory(null); | 115 responder(null); |
| 116 } |
109 } | 117 } |
110 | 118 |
111 abstract class ViewProvider { | 119 abstract class ViewProvider { |
112 static const String serviceName = "mojo::ui::ViewProvider"; | 120 static const String serviceName = "mojo::ui::ViewProvider"; |
113 | 121 |
114 static service_describer.ServiceDescription _cachedServiceDescription; | 122 static service_describer.ServiceDescription _cachedServiceDescription; |
115 static service_describer.ServiceDescription get serviceDescription { | 123 static service_describer.ServiceDescription get serviceDescription { |
116 if (_cachedServiceDescription == null) { | 124 if (_cachedServiceDescription == null) { |
117 _cachedServiceDescription = new _ViewProviderServiceDescription(); | 125 _cachedServiceDescription = new _ViewProviderServiceDescription(); |
118 } | 126 } |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 : super.fromHandle(handle, autoBegin: impl != null) { | 244 : super.fromHandle(handle, autoBegin: impl != null) { |
237 _impl = impl; | 245 _impl = impl; |
238 } | 246 } |
239 | 247 |
240 _ViewProviderStubControl.unbound([this._impl]) : super.unbound(); | 248 _ViewProviderStubControl.unbound([this._impl]) : super.unbound(); |
241 | 249 |
242 String get serviceName => ViewProvider.serviceName; | 250 String get serviceName => ViewProvider.serviceName; |
243 | 251 |
244 | 252 |
245 | 253 |
246 dynamic handleMessage(bindings.ServiceMessage message) { | 254 void handleMessage(bindings.ServiceMessage message) { |
247 if (bindings.ControlMessageHandler.isControlMessage(message)) { | 255 if (bindings.ControlMessageHandler.isControlMessage(message)) { |
248 return bindings.ControlMessageHandler.handleMessage(this, | 256 bindings.ControlMessageHandler.handleMessage( |
249 0, | 257 this, 0, message); |
250 message); | 258 return; |
251 } | 259 } |
252 if (_impl == null) { | 260 if (_impl == null) { |
253 throw new core.MojoApiError("$this has no implementation set"); | 261 throw new core.MojoApiError("$this has no implementation set"); |
254 } | 262 } |
255 switch (message.header.type) { | 263 switch (message.header.type) { |
256 case _viewProviderMethodCreateViewName: | 264 case _viewProviderMethodCreateViewName: |
257 var params = _ViewProviderCreateViewParams.deserialize( | 265 var params = _ViewProviderCreateViewParams.deserialize( |
258 message.payload); | 266 message.payload); |
259 _impl.createView(params.viewOwner, params.services); | 267 _impl.createView(params.viewOwner, params.services); |
260 break; | 268 break; |
261 default: | 269 default: |
262 throw new bindings.MojoCodecError("Unexpected message name"); | 270 throw new bindings.MojoCodecError("Unexpected message name"); |
263 break; | 271 break; |
264 } | 272 } |
265 return null; | |
266 } | 273 } |
267 | 274 |
268 ViewProvider get impl => _impl; | 275 ViewProvider get impl => _impl; |
269 set impl(ViewProvider d) { | 276 set impl(ViewProvider d) { |
270 if (d == null) { | 277 if (d == null) { |
271 throw new core.MojoApiError("$this: Cannot set a null implementation"); | 278 throw new core.MojoApiError("$this: Cannot set a null implementation"); |
272 } | 279 } |
273 if (isBound && (_impl == null)) { | 280 if (isBound && (_impl == null)) { |
274 beginHandlingEvents(); | 281 beginHandlingEvents(); |
275 } | 282 } |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
316 } | 323 } |
317 | 324 |
318 | 325 |
319 void createView(view_token_mojom.ViewOwnerInterfaceRequest viewOwner, service_
provider_mojom.ServiceProviderInterfaceRequest services) { | 326 void createView(view_token_mojom.ViewOwnerInterfaceRequest viewOwner, service_
provider_mojom.ServiceProviderInterfaceRequest services) { |
320 return impl.createView(viewOwner, services); | 327 return impl.createView(viewOwner, services); |
321 } | 328 } |
322 } | 329 } |
323 | 330 |
324 | 331 |
325 | 332 |
OLD | NEW |