| 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 service_registry_mojom; | 5 library service_registry_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 | 11 |
| 12 | 12 |
| 13 | 13 |
| 14 class _ServiceRegistryAddServicesParams extends bindings.Struct { | 14 class _ServiceRegistryAddServicesParams extends bindings.Struct { |
| 15 static const List<bindings.StructDataHeader> kVersions = const [ | 15 static const List<bindings.StructDataHeader> kVersions = const [ |
| 16 const bindings.StructDataHeader(24, 0) | 16 const bindings.StructDataHeader(24, 0) |
| 17 ]; | 17 ]; |
| 18 List<String> interfaceNames = null; | 18 List<String> interfaceNames = null; |
| 19 Object serviceProvider = null; | 19 service_provider_mojom.ServiceProviderInterface serviceProvider = null; |
| 20 | 20 |
| 21 _ServiceRegistryAddServicesParams() : super(kVersions.last.size); | 21 _ServiceRegistryAddServicesParams() : super(kVersions.last.size); |
| 22 | 22 |
| 23 static _ServiceRegistryAddServicesParams deserialize(bindings.Message message)
{ | 23 static _ServiceRegistryAddServicesParams deserialize(bindings.Message message)
{ |
| 24 var decoder = new bindings.Decoder(message); | 24 var decoder = new bindings.Decoder(message); |
| 25 var result = decode(decoder); | 25 var result = decode(decoder); |
| 26 if (decoder.excessHandles != null) { | 26 if (decoder.excessHandles != null) { |
| 27 decoder.excessHandles.forEach((h) => h.close()); | 27 decoder.excessHandles.forEach((h) => h.close()); |
| 28 } | 28 } |
| 29 return result; | 29 return result; |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 | 117 |
| 118 dynamic getTypeDefinition(String typeKey, [Function responseFactory]) => | 118 dynamic getTypeDefinition(String typeKey, [Function responseFactory]) => |
| 119 responseFactory(null); | 119 responseFactory(null); |
| 120 | 120 |
| 121 dynamic getAllTypeDefinitions([Function responseFactory]) => | 121 dynamic getAllTypeDefinitions([Function responseFactory]) => |
| 122 responseFactory(null); | 122 responseFactory(null); |
| 123 } | 123 } |
| 124 | 124 |
| 125 abstract class ServiceRegistry { | 125 abstract class ServiceRegistry { |
| 126 static const String serviceName = "mojo::ServiceRegistry"; | 126 static const String serviceName = "mojo::ServiceRegistry"; |
| 127 void addServices(List<String> interfaceNames, Object serviceProvider); | 127 |
| 128 static service_describer.ServiceDescription _cachedServiceDescription; |
| 129 static service_describer.ServiceDescription get serviceDescription { |
| 130 if (_cachedServiceDescription == null) { |
| 131 _cachedServiceDescription = new _ServiceRegistryServiceDescription(); |
| 132 } |
| 133 return _cachedServiceDescription; |
| 134 } |
| 135 |
| 136 static ServiceRegistryProxy connectToService( |
| 137 bindings.ServiceConnector s, String url, [String serviceName]) { |
| 138 ServiceRegistryProxy p = new ServiceRegistryProxy.unbound(); |
| 139 String name = serviceName ?? ServiceRegistry.serviceName; |
| 140 if ((name == null) || name.isEmpty) { |
| 141 throw new core.MojoApiError( |
| 142 "If an interface has no ServiceName, then one must be provided."); |
| 143 } |
| 144 s.connectToService(url, p, name); |
| 145 return p; |
| 146 } |
| 147 void addServices(List<String> interfaceNames, service_provider_mojom.ServicePr
oviderInterface serviceProvider); |
| 148 } |
| 149 |
| 150 abstract class ServiceRegistryInterface |
| 151 implements bindings.MojoInterface<ServiceRegistry>, |
| 152 ServiceRegistry { |
| 153 factory ServiceRegistryInterface([ServiceRegistry impl]) => |
| 154 new ServiceRegistryStub.unbound(impl); |
| 155 factory ServiceRegistryInterface.fromEndpoint( |
| 156 core.MojoMessagePipeEndpoint endpoint, |
| 157 [ServiceRegistry impl]) => |
| 158 new ServiceRegistryStub.fromEndpoint(endpoint, impl); |
| 159 } |
| 160 |
| 161 abstract class ServiceRegistryInterfaceRequest |
| 162 implements bindings.MojoInterface<ServiceRegistry>, |
| 163 ServiceRegistry { |
| 164 factory ServiceRegistryInterfaceRequest() => |
| 165 new ServiceRegistryProxy.unbound(); |
| 128 } | 166 } |
| 129 | 167 |
| 130 class _ServiceRegistryProxyControl | 168 class _ServiceRegistryProxyControl |
| 131 extends bindings.ProxyMessageHandler | 169 extends bindings.ProxyMessageHandler |
| 132 implements bindings.ProxyControl { | 170 implements bindings.ProxyControl<ServiceRegistry> { |
| 133 _ServiceRegistryProxyControl.fromEndpoint( | 171 _ServiceRegistryProxyControl.fromEndpoint( |
| 134 core.MojoMessagePipeEndpoint endpoint) : super.fromEndpoint(endpoint); | 172 core.MojoMessagePipeEndpoint endpoint) : super.fromEndpoint(endpoint); |
| 135 | 173 |
| 136 _ServiceRegistryProxyControl.fromHandle( | 174 _ServiceRegistryProxyControl.fromHandle( |
| 137 core.MojoHandle handle) : super.fromHandle(handle); | 175 core.MojoHandle handle) : super.fromHandle(handle); |
| 138 | 176 |
| 139 _ServiceRegistryProxyControl.unbound() : super.unbound(); | 177 _ServiceRegistryProxyControl.unbound() : super.unbound(); |
| 140 | 178 |
| 141 service_describer.ServiceDescription get serviceDescription => | |
| 142 new _ServiceRegistryServiceDescription(); | |
| 143 | |
| 144 String get serviceName => ServiceRegistry.serviceName; | 179 String get serviceName => ServiceRegistry.serviceName; |
| 145 | 180 |
| 146 void handleResponse(bindings.ServiceMessage message) { | 181 void handleResponse(bindings.ServiceMessage message) { |
| 147 switch (message.header.type) { | 182 switch (message.header.type) { |
| 148 default: | 183 default: |
| 149 proxyError("Unexpected message type: ${message.header.type}"); | 184 proxyError("Unexpected message type: ${message.header.type}"); |
| 150 close(immediate: true); | 185 close(immediate: true); |
| 151 break; | 186 break; |
| 152 } | 187 } |
| 153 } | 188 } |
| 154 | 189 |
| 190 ServiceRegistry get impl => null; |
| 191 set impl(ServiceRegistry _) { |
| 192 throw new core.MojoApiError("The impl of a Proxy cannot be set."); |
| 193 } |
| 194 |
| 155 @override | 195 @override |
| 156 String toString() { | 196 String toString() { |
| 157 var superString = super.toString(); | 197 var superString = super.toString(); |
| 158 return "_ServiceRegistryProxyControl($superString)"; | 198 return "_ServiceRegistryProxyControl($superString)"; |
| 159 } | 199 } |
| 160 } | 200 } |
| 161 | 201 |
| 162 class ServiceRegistryProxy | 202 class ServiceRegistryProxy |
| 163 extends bindings.Proxy | 203 extends bindings.Proxy<ServiceRegistry> |
| 164 implements ServiceRegistry { | 204 implements ServiceRegistry, |
| 205 ServiceRegistryInterface, |
| 206 ServiceRegistryInterfaceRequest { |
| 165 ServiceRegistryProxy.fromEndpoint( | 207 ServiceRegistryProxy.fromEndpoint( |
| 166 core.MojoMessagePipeEndpoint endpoint) | 208 core.MojoMessagePipeEndpoint endpoint) |
| 167 : super(new _ServiceRegistryProxyControl.fromEndpoint(endpoint)); | 209 : super(new _ServiceRegistryProxyControl.fromEndpoint(endpoint)); |
| 168 | 210 |
| 169 ServiceRegistryProxy.fromHandle(core.MojoHandle handle) | 211 ServiceRegistryProxy.fromHandle(core.MojoHandle handle) |
| 170 : super(new _ServiceRegistryProxyControl.fromHandle(handle)); | 212 : super(new _ServiceRegistryProxyControl.fromHandle(handle)); |
| 171 | 213 |
| 172 ServiceRegistryProxy.unbound() | 214 ServiceRegistryProxy.unbound() |
| 173 : super(new _ServiceRegistryProxyControl.unbound()); | 215 : super(new _ServiceRegistryProxyControl.unbound()); |
| 174 | 216 |
| 175 static ServiceRegistryProxy newFromEndpoint( | 217 static ServiceRegistryProxy newFromEndpoint( |
| 176 core.MojoMessagePipeEndpoint endpoint) { | 218 core.MojoMessagePipeEndpoint endpoint) { |
| 177 assert(endpoint.setDescription("For ServiceRegistryProxy")); | 219 assert(endpoint.setDescription("For ServiceRegistryProxy")); |
| 178 return new ServiceRegistryProxy.fromEndpoint(endpoint); | 220 return new ServiceRegistryProxy.fromEndpoint(endpoint); |
| 179 } | 221 } |
| 180 | 222 |
| 181 factory ServiceRegistryProxy.connectToService( | |
| 182 bindings.ServiceConnector s, String url, [String serviceName]) { | |
| 183 ServiceRegistryProxy p = new ServiceRegistryProxy.unbound(); | |
| 184 s.connectToService(url, p, serviceName); | |
| 185 return p; | |
| 186 } | |
| 187 | 223 |
| 188 | 224 void addServices(List<String> interfaceNames, service_provider_mojom.ServicePr
oviderInterface serviceProvider) { |
| 189 void addServices(List<String> interfaceNames, Object serviceProvider) { | |
| 190 if (!ctrl.isBound) { | 225 if (!ctrl.isBound) { |
| 191 ctrl.proxyError("The Proxy is closed."); | 226 ctrl.proxyError("The Proxy is closed."); |
| 192 return; | 227 return; |
| 193 } | 228 } |
| 194 var params = new _ServiceRegistryAddServicesParams(); | 229 var params = new _ServiceRegistryAddServicesParams(); |
| 195 params.interfaceNames = interfaceNames; | 230 params.interfaceNames = interfaceNames; |
| 196 params.serviceProvider = serviceProvider; | 231 params.serviceProvider = serviceProvider; |
| 197 ctrl.sendMessage(params, | 232 ctrl.sendMessage(params, |
| 198 _serviceRegistryMethodAddServicesName); | 233 _serviceRegistryMethodAddServicesName); |
| 199 } | 234 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 211 } | 246 } |
| 212 | 247 |
| 213 _ServiceRegistryStubControl.fromHandle( | 248 _ServiceRegistryStubControl.fromHandle( |
| 214 core.MojoHandle handle, [ServiceRegistry impl]) | 249 core.MojoHandle handle, [ServiceRegistry impl]) |
| 215 : super.fromHandle(handle, autoBegin: impl != null) { | 250 : super.fromHandle(handle, autoBegin: impl != null) { |
| 216 _impl = impl; | 251 _impl = impl; |
| 217 } | 252 } |
| 218 | 253 |
| 219 _ServiceRegistryStubControl.unbound([this._impl]) : super.unbound(); | 254 _ServiceRegistryStubControl.unbound([this._impl]) : super.unbound(); |
| 220 | 255 |
| 256 String get serviceName => ServiceRegistry.serviceName; |
| 257 |
| 221 | 258 |
| 222 | 259 |
| 223 dynamic handleMessage(bindings.ServiceMessage message) { | 260 dynamic handleMessage(bindings.ServiceMessage message) { |
| 224 if (bindings.ControlMessageHandler.isControlMessage(message)) { | 261 if (bindings.ControlMessageHandler.isControlMessage(message)) { |
| 225 return bindings.ControlMessageHandler.handleMessage(this, | 262 return bindings.ControlMessageHandler.handleMessage(this, |
| 226 0, | 263 0, |
| 227 message); | 264 message); |
| 228 } | 265 } |
| 229 if (_impl == null) { | 266 if (_impl == null) { |
| 230 throw new core.MojoApiError("$this has no implementation set"); | 267 throw new core.MojoApiError("$this has no implementation set"); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 261 } | 298 } |
| 262 } | 299 } |
| 263 | 300 |
| 264 @override | 301 @override |
| 265 String toString() { | 302 String toString() { |
| 266 var superString = super.toString(); | 303 var superString = super.toString(); |
| 267 return "_ServiceRegistryStubControl($superString)"; | 304 return "_ServiceRegistryStubControl($superString)"; |
| 268 } | 305 } |
| 269 | 306 |
| 270 int get version => 0; | 307 int get version => 0; |
| 271 | |
| 272 static service_describer.ServiceDescription _cachedServiceDescription; | |
| 273 static service_describer.ServiceDescription get serviceDescription { | |
| 274 if (_cachedServiceDescription == null) { | |
| 275 _cachedServiceDescription = new _ServiceRegistryServiceDescription(); | |
| 276 } | |
| 277 return _cachedServiceDescription; | |
| 278 } | |
| 279 } | 308 } |
| 280 | 309 |
| 281 class ServiceRegistryStub | 310 class ServiceRegistryStub |
| 282 extends bindings.Stub<ServiceRegistry> | 311 extends bindings.Stub<ServiceRegistry> |
| 283 implements ServiceRegistry { | 312 implements ServiceRegistry, |
| 313 ServiceRegistryInterface, |
| 314 ServiceRegistryInterfaceRequest { |
| 315 ServiceRegistryStub.unbound([ServiceRegistry impl]) |
| 316 : super(new _ServiceRegistryStubControl.unbound(impl)); |
| 317 |
| 284 ServiceRegistryStub.fromEndpoint( | 318 ServiceRegistryStub.fromEndpoint( |
| 285 core.MojoMessagePipeEndpoint endpoint, [ServiceRegistry impl]) | 319 core.MojoMessagePipeEndpoint endpoint, [ServiceRegistry impl]) |
| 286 : super(new _ServiceRegistryStubControl.fromEndpoint(endpoint, impl)); | 320 : super(new _ServiceRegistryStubControl.fromEndpoint(endpoint, impl)); |
| 287 | 321 |
| 288 ServiceRegistryStub.fromHandle( | 322 ServiceRegistryStub.fromHandle( |
| 289 core.MojoHandle handle, [ServiceRegistry impl]) | 323 core.MojoHandle handle, [ServiceRegistry impl]) |
| 290 : super(new _ServiceRegistryStubControl.fromHandle(handle, impl)); | 324 : super(new _ServiceRegistryStubControl.fromHandle(handle, impl)); |
| 291 | 325 |
| 292 ServiceRegistryStub.unbound([ServiceRegistry impl]) | |
| 293 : super(new _ServiceRegistryStubControl.unbound(impl)); | |
| 294 | |
| 295 static ServiceRegistryStub newFromEndpoint( | 326 static ServiceRegistryStub newFromEndpoint( |
| 296 core.MojoMessagePipeEndpoint endpoint) { | 327 core.MojoMessagePipeEndpoint endpoint) { |
| 297 assert(endpoint.setDescription("For ServiceRegistryStub")); | 328 assert(endpoint.setDescription("For ServiceRegistryStub")); |
| 298 return new ServiceRegistryStub.fromEndpoint(endpoint); | 329 return new ServiceRegistryStub.fromEndpoint(endpoint); |
| 299 } | 330 } |
| 300 | 331 |
| 301 static service_describer.ServiceDescription get serviceDescription => | |
| 302 _ServiceRegistryStubControl.serviceDescription; | |
| 303 | 332 |
| 304 | 333 void addServices(List<String> interfaceNames, service_provider_mojom.ServicePr
oviderInterface serviceProvider) { |
| 305 void addServices(List<String> interfaceNames, Object serviceProvider) { | |
| 306 return impl.addServices(interfaceNames, serviceProvider); | 334 return impl.addServices(interfaceNames, serviceProvider); |
| 307 } | 335 } |
| 308 } | 336 } |
| 309 | 337 |
| 310 | 338 |
| 311 | 339 |
| OLD | NEW |