| 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 host_resolver_mojom; | 5 library host_resolver_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/network_error.mojom.dart' as network_error_mojom; | 10 import 'package:mojo/mojo/network_error.mojom.dart' as network_error_mojom; |
| 11 import 'package:mojo_services/mojo/net_address.mojom.dart' as net_address_mojom; | 11 import 'package:mojo_services/mojo/net_address.mojom.dart' as net_address_mojom; |
| 12 | 12 |
| 13 | 13 |
| 14 | 14 |
| 15 class _HostResolverGetHostAddressesParams extends bindings.Struct { | 15 class _HostResolverGetHostAddressesParams extends bindings.Struct { |
| 16 static const List<bindings.StructDataHeader> kVersions = const [ | 16 static const List<bindings.StructDataHeader> kVersions = const [ |
| 17 const bindings.StructDataHeader(24, 0) | 17 const bindings.StructDataHeader(24, 0) |
| 18 ]; | 18 ]; |
| 19 String host = null; | 19 String host = null; |
| 20 net_address_mojom.NetAddressFamily family = null; | 20 net_address_mojom.NetAddressFamily family = null; |
| 21 | 21 |
| 22 _HostResolverGetHostAddressesParams() : super(kVersions.last.size); | 22 _HostResolverGetHostAddressesParams() : super(kVersions.last.size); |
| 23 | 23 |
| 24 _HostResolverGetHostAddressesParams.init( |
| 25 String this.host, |
| 26 net_address_mojom.NetAddressFamily this.family |
| 27 ) : super(kVersions.last.size); |
| 28 |
| 24 static _HostResolverGetHostAddressesParams deserialize(bindings.Message messag
e) { | 29 static _HostResolverGetHostAddressesParams deserialize(bindings.Message messag
e) { |
| 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 _HostResolverGetHostAddressesParams decode(bindings.Decoder decoder0) { | 38 static _HostResolverGetHostAddressesParams decode(bindings.Decoder decoder0) { |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 | 109 |
| 105 class HostResolverGetHostAddressesResponseParams extends bindings.Struct { | 110 class HostResolverGetHostAddressesResponseParams extends bindings.Struct { |
| 106 static const List<bindings.StructDataHeader> kVersions = const [ | 111 static const List<bindings.StructDataHeader> kVersions = const [ |
| 107 const bindings.StructDataHeader(24, 0) | 112 const bindings.StructDataHeader(24, 0) |
| 108 ]; | 113 ]; |
| 109 network_error_mojom.NetworkError result = null; | 114 network_error_mojom.NetworkError result = null; |
| 110 List<net_address_mojom.NetAddress> addresses = null; | 115 List<net_address_mojom.NetAddress> addresses = null; |
| 111 | 116 |
| 112 HostResolverGetHostAddressesResponseParams() : super(kVersions.last.size); | 117 HostResolverGetHostAddressesResponseParams() : super(kVersions.last.size); |
| 113 | 118 |
| 119 HostResolverGetHostAddressesResponseParams.init( |
| 120 network_error_mojom.NetworkError this.result, |
| 121 List<net_address_mojom.NetAddress> this.addresses |
| 122 ) : super(kVersions.last.size); |
| 123 |
| 114 static HostResolverGetHostAddressesResponseParams deserialize(bindings.Message
message) { | 124 static HostResolverGetHostAddressesResponseParams deserialize(bindings.Message
message) { |
| 115 var decoder = new bindings.Decoder(message); | 125 var decoder = new bindings.Decoder(message); |
| 116 var result = decode(decoder); | 126 var result = decode(decoder); |
| 117 if (decoder.excessHandles != null) { | 127 if (decoder.excessHandles != null) { |
| 118 decoder.excessHandles.forEach((h) => h.close()); | 128 decoder.excessHandles.forEach((h) => h.close()); |
| 119 } | 129 } |
| 120 return result; | 130 return result; |
| 121 } | 131 } |
| 122 | 132 |
| 123 static HostResolverGetHostAddressesResponseParams decode(bindings.Decoder deco
der0) { | 133 static HostResolverGetHostAddressesResponseParams decode(bindings.Decoder deco
der0) { |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 Map map = new Map(); | 212 Map map = new Map(); |
| 203 map["result"] = result; | 213 map["result"] = result; |
| 204 map["addresses"] = addresses; | 214 map["addresses"] = addresses; |
| 205 return map; | 215 return map; |
| 206 } | 216 } |
| 207 } | 217 } |
| 208 | 218 |
| 209 const int _hostResolverMethodGetHostAddressesName = 0; | 219 const int _hostResolverMethodGetHostAddressesName = 0; |
| 210 | 220 |
| 211 class _HostResolverServiceDescription implements service_describer.ServiceDescri
ption { | 221 class _HostResolverServiceDescription implements service_describer.ServiceDescri
ption { |
| 212 dynamic getTopLevelInterface([Function responseFactory]) => | 222 void getTopLevelInterface(Function responder) { |
| 213 responseFactory(null); | 223 responder(null); |
| 224 } |
| 214 | 225 |
| 215 dynamic getTypeDefinition(String typeKey, [Function responseFactory]) => | 226 void getTypeDefinition(String typeKey, Function responder) { |
| 216 responseFactory(null); | 227 responder(null); |
| 228 } |
| 217 | 229 |
| 218 dynamic getAllTypeDefinitions([Function responseFactory]) => | 230 void getAllTypeDefinitions(Function responder) { |
| 219 responseFactory(null); | 231 responder(null); |
| 232 } |
| 220 } | 233 } |
| 221 | 234 |
| 222 abstract class HostResolver { | 235 abstract class HostResolver { |
| 223 static const String serviceName = null; | 236 static const String serviceName = null; |
| 224 | 237 |
| 225 static service_describer.ServiceDescription _cachedServiceDescription; | 238 static service_describer.ServiceDescription _cachedServiceDescription; |
| 226 static service_describer.ServiceDescription get serviceDescription { | 239 static service_describer.ServiceDescription get serviceDescription { |
| 227 if (_cachedServiceDescription == null) { | 240 if (_cachedServiceDescription == null) { |
| 228 _cachedServiceDescription = new _HostResolverServiceDescription(); | 241 _cachedServiceDescription = new _HostResolverServiceDescription(); |
| 229 } | 242 } |
| 230 return _cachedServiceDescription; | 243 return _cachedServiceDescription; |
| 231 } | 244 } |
| 232 | 245 |
| 233 static HostResolverProxy connectToService( | 246 static HostResolverProxy connectToService( |
| 234 bindings.ServiceConnector s, String url, [String serviceName]) { | 247 bindings.ServiceConnector s, String url, [String serviceName]) { |
| 235 HostResolverProxy p = new HostResolverProxy.unbound(); | 248 HostResolverProxy p = new HostResolverProxy.unbound(); |
| 236 String name = serviceName ?? HostResolver.serviceName; | 249 String name = serviceName ?? HostResolver.serviceName; |
| 237 if ((name == null) || name.isEmpty) { | 250 if ((name == null) || name.isEmpty) { |
| 238 throw new core.MojoApiError( | 251 throw new core.MojoApiError( |
| 239 "If an interface has no ServiceName, then one must be provided."); | 252 "If an interface has no ServiceName, then one must be provided."); |
| 240 } | 253 } |
| 241 s.connectToService(url, p, name); | 254 s.connectToService(url, p, name); |
| 242 return p; | 255 return p; |
| 243 } | 256 } |
| 244 dynamic getHostAddresses(String host,net_address_mojom.NetAddressFamily family
,[Function responseFactory = null]); | 257 void getHostAddresses(String host,net_address_mojom.NetAddressFamily family,vo
id callback(network_error_mojom.NetworkError result, List<net_address_mojom.NetA
ddress> addresses)); |
| 245 } | 258 } |
| 246 | 259 |
| 247 abstract class HostResolverInterface | 260 abstract class HostResolverInterface |
| 248 implements bindings.MojoInterface<HostResolver>, | 261 implements bindings.MojoInterface<HostResolver>, |
| 249 HostResolver { | 262 HostResolver { |
| 250 factory HostResolverInterface([HostResolver impl]) => | 263 factory HostResolverInterface([HostResolver impl]) => |
| 251 new HostResolverStub.unbound(impl); | 264 new HostResolverStub.unbound(impl); |
| 252 | 265 |
| 253 factory HostResolverInterface.fromEndpoint( | 266 factory HostResolverInterface.fromEndpoint( |
| 254 core.MojoMessagePipeEndpoint endpoint, | 267 core.MojoMessagePipeEndpoint endpoint, |
| (...skipping 29 matching lines...) Expand all Loading... |
| 284 | 297 |
| 285 void handleResponse(bindings.ServiceMessage message) { | 298 void handleResponse(bindings.ServiceMessage message) { |
| 286 switch (message.header.type) { | 299 switch (message.header.type) { |
| 287 case _hostResolverMethodGetHostAddressesName: | 300 case _hostResolverMethodGetHostAddressesName: |
| 288 var r = HostResolverGetHostAddressesResponseParams.deserialize( | 301 var r = HostResolverGetHostAddressesResponseParams.deserialize( |
| 289 message.payload); | 302 message.payload); |
| 290 if (!message.header.hasRequestId) { | 303 if (!message.header.hasRequestId) { |
| 291 proxyError("Expected a message with a valid request Id."); | 304 proxyError("Expected a message with a valid request Id."); |
| 292 return; | 305 return; |
| 293 } | 306 } |
| 294 Completer c = completerMap[message.header.requestId]; | 307 Function callback = callbackMap[message.header.requestId]; |
| 295 if (c == null) { | 308 if (callback == null) { |
| 296 proxyError( | 309 proxyError( |
| 297 "Message had unknown request Id: ${message.header.requestId}"); | 310 "Message had unknown request Id: ${message.header.requestId}"); |
| 298 return; | 311 return; |
| 299 } | 312 } |
| 300 completerMap.remove(message.header.requestId); | 313 callbackMap.remove(message.header.requestId); |
| 301 if (c.isCompleted) { | 314 callback(r.result , r.addresses ); |
| 302 proxyError("Response completer already completed"); | |
| 303 return; | |
| 304 } | |
| 305 c.complete(r); | |
| 306 break; | 315 break; |
| 307 default: | 316 default: |
| 308 proxyError("Unexpected message type: ${message.header.type}"); | 317 proxyError("Unexpected message type: ${message.header.type}"); |
| 309 close(immediate: true); | 318 close(immediate: true); |
| 310 break; | 319 break; |
| 311 } | 320 } |
| 312 } | 321 } |
| 313 | 322 |
| 314 @override | 323 @override |
| 315 String toString() { | 324 String toString() { |
| (...skipping 24 matching lines...) Expand all Loading... |
| 340 return newMockedProxy; | 349 return newMockedProxy; |
| 341 } | 350 } |
| 342 | 351 |
| 343 static HostResolverProxy newFromEndpoint( | 352 static HostResolverProxy newFromEndpoint( |
| 344 core.MojoMessagePipeEndpoint endpoint) { | 353 core.MojoMessagePipeEndpoint endpoint) { |
| 345 assert(endpoint.setDescription("For HostResolverProxy")); | 354 assert(endpoint.setDescription("For HostResolverProxy")); |
| 346 return new HostResolverProxy.fromEndpoint(endpoint); | 355 return new HostResolverProxy.fromEndpoint(endpoint); |
| 347 } | 356 } |
| 348 | 357 |
| 349 | 358 |
| 350 dynamic getHostAddresses(String host,net_address_mojom.NetAddressFamily family
,[Function responseFactory = null]) { | 359 void getHostAddresses(String host,net_address_mojom.NetAddressFamily family,vo
id callback(network_error_mojom.NetworkError result, List<net_address_mojom.NetA
ddress> addresses)) { |
| 351 if (impl != null) { | 360 if (impl != null) { |
| 352 return new Future(() => impl.getHostAddresses(host,family,_HostResolverStu
bControl._hostResolverGetHostAddressesResponseParamsFactory)); | 361 impl.getHostAddresses(host,family,callback); |
| 362 return; |
| 353 } | 363 } |
| 354 var params = new _HostResolverGetHostAddressesParams(); | 364 var params = new _HostResolverGetHostAddressesParams(); |
| 355 params.host = host; | 365 params.host = host; |
| 356 params.family = family; | 366 params.family = family; |
| 357 return ctrl.sendMessageWithRequestId( | 367 ctrl.sendMessageWithRequestId( |
| 358 params, | 368 params, |
| 359 _hostResolverMethodGetHostAddressesName, | 369 _hostResolverMethodGetHostAddressesName, |
| 360 -1, | 370 -1, |
| 361 bindings.MessageHeader.kMessageExpectsResponse); | 371 bindings.MessageHeader.kMessageExpectsResponse, |
| 372 callback); |
| 362 } | 373 } |
| 363 } | 374 } |
| 364 | 375 |
| 365 class _HostResolverStubControl | 376 class _HostResolverStubControl |
| 366 extends bindings.StubMessageHandler | 377 extends bindings.StubMessageHandler |
| 367 implements bindings.StubControl<HostResolver> { | 378 implements bindings.StubControl<HostResolver> { |
| 368 HostResolver _impl; | 379 HostResolver _impl; |
| 369 | 380 |
| 370 _HostResolverStubControl.fromEndpoint( | 381 _HostResolverStubControl.fromEndpoint( |
| 371 core.MojoMessagePipeEndpoint endpoint, [HostResolver impl]) | 382 core.MojoMessagePipeEndpoint endpoint, [HostResolver impl]) |
| 372 : super.fromEndpoint(endpoint, autoBegin: impl != null) { | 383 : super.fromEndpoint(endpoint, autoBegin: impl != null) { |
| 373 _impl = impl; | 384 _impl = impl; |
| 374 } | 385 } |
| 375 | 386 |
| 376 _HostResolverStubControl.fromHandle( | 387 _HostResolverStubControl.fromHandle( |
| 377 core.MojoHandle handle, [HostResolver impl]) | 388 core.MojoHandle handle, [HostResolver impl]) |
| 378 : super.fromHandle(handle, autoBegin: impl != null) { | 389 : super.fromHandle(handle, autoBegin: impl != null) { |
| 379 _impl = impl; | 390 _impl = impl; |
| 380 } | 391 } |
| 381 | 392 |
| 382 _HostResolverStubControl.unbound([this._impl]) : super.unbound(); | 393 _HostResolverStubControl.unbound([this._impl]) : super.unbound(); |
| 383 | 394 |
| 384 String get serviceName => HostResolver.serviceName; | 395 String get serviceName => HostResolver.serviceName; |
| 385 | 396 |
| 386 | 397 |
| 387 static HostResolverGetHostAddressesResponseParams _hostResolverGetHostAddresse
sResponseParamsFactory(network_error_mojom.NetworkError result, List<net_address
_mojom.NetAddress> addresses) { | 398 Function _hostResolverGetHostAddressesResponseParamsResponder( |
| 388 var result = new HostResolverGetHostAddressesResponseParams(); | 399 int requestId) { |
| 389 result.result = result; | 400 return (network_error_mojom.NetworkError result, List<net_address_mojom.NetAdd
ress> addresses) { |
| 390 result.addresses = addresses; | 401 var result = new HostResolverGetHostAddressesResponseParams(); |
| 391 return result; | 402 result.result = result; |
| 403 result.addresses = addresses; |
| 404 sendResponse(buildResponseWithId( |
| 405 result, |
| 406 _hostResolverMethodGetHostAddressesName, |
| 407 requestId, |
| 408 bindings.MessageHeader.kMessageIsResponse)); |
| 409 }; |
| 392 } | 410 } |
| 393 | 411 |
| 394 dynamic handleMessage(bindings.ServiceMessage message) { | 412 void handleMessage(bindings.ServiceMessage message) { |
| 395 if (bindings.ControlMessageHandler.isControlMessage(message)) { | 413 if (bindings.ControlMessageHandler.isControlMessage(message)) { |
| 396 return bindings.ControlMessageHandler.handleMessage(this, | 414 bindings.ControlMessageHandler.handleMessage( |
| 397 0, | 415 this, 0, message); |
| 398 message); | 416 return; |
| 399 } | 417 } |
| 400 if (_impl == null) { | 418 if (_impl == null) { |
| 401 throw new core.MojoApiError("$this has no implementation set"); | 419 throw new core.MojoApiError("$this has no implementation set"); |
| 402 } | 420 } |
| 403 switch (message.header.type) { | 421 switch (message.header.type) { |
| 404 case _hostResolverMethodGetHostAddressesName: | 422 case _hostResolverMethodGetHostAddressesName: |
| 405 var params = _HostResolverGetHostAddressesParams.deserialize( | 423 var params = _HostResolverGetHostAddressesParams.deserialize( |
| 406 message.payload); | 424 message.payload); |
| 407 var response = _impl.getHostAddresses(params.host,params.family,_hostRes
olverGetHostAddressesResponseParamsFactory); | 425 _impl.getHostAddresses(params.host, params.family, _hostResolverGetHostA
ddressesResponseParamsResponder(message.header.requestId)); |
| 408 if (response is Future) { | |
| 409 return response.then((response) { | |
| 410 if (response != null) { | |
| 411 return buildResponseWithId( | |
| 412 response, | |
| 413 _hostResolverMethodGetHostAddressesName, | |
| 414 message.header.requestId, | |
| 415 bindings.MessageHeader.kMessageIsResponse); | |
| 416 } | |
| 417 }); | |
| 418 } else if (response != null) { | |
| 419 return buildResponseWithId( | |
| 420 response, | |
| 421 _hostResolverMethodGetHostAddressesName, | |
| 422 message.header.requestId, | |
| 423 bindings.MessageHeader.kMessageIsResponse); | |
| 424 } | |
| 425 break; | 426 break; |
| 426 default: | 427 default: |
| 427 throw new bindings.MojoCodecError("Unexpected message name"); | 428 throw new bindings.MojoCodecError("Unexpected message name"); |
| 428 break; | 429 break; |
| 429 } | 430 } |
| 430 return null; | |
| 431 } | 431 } |
| 432 | 432 |
| 433 HostResolver get impl => _impl; | 433 HostResolver get impl => _impl; |
| 434 set impl(HostResolver d) { | 434 set impl(HostResolver d) { |
| 435 if (d == null) { | 435 if (d == null) { |
| 436 throw new core.MojoApiError("$this: Cannot set a null implementation"); | 436 throw new core.MojoApiError("$this: Cannot set a null implementation"); |
| 437 } | 437 } |
| 438 if (isBound && (_impl == null)) { | 438 if (isBound && (_impl == null)) { |
| 439 beginHandlingEvents(); | 439 beginHandlingEvents(); |
| 440 } | 440 } |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 474 core.MojoHandle handle, [HostResolver impl]) | 474 core.MojoHandle handle, [HostResolver impl]) |
| 475 : super(new _HostResolverStubControl.fromHandle(handle, impl)); | 475 : super(new _HostResolverStubControl.fromHandle(handle, impl)); |
| 476 | 476 |
| 477 static HostResolverStub newFromEndpoint( | 477 static HostResolverStub newFromEndpoint( |
| 478 core.MojoMessagePipeEndpoint endpoint) { | 478 core.MojoMessagePipeEndpoint endpoint) { |
| 479 assert(endpoint.setDescription("For HostResolverStub")); | 479 assert(endpoint.setDescription("For HostResolverStub")); |
| 480 return new HostResolverStub.fromEndpoint(endpoint); | 480 return new HostResolverStub.fromEndpoint(endpoint); |
| 481 } | 481 } |
| 482 | 482 |
| 483 | 483 |
| 484 dynamic getHostAddresses(String host,net_address_mojom.NetAddressFamily family
,[Function responseFactory = null]) { | 484 void getHostAddresses(String host,net_address_mojom.NetAddressFamily family,vo
id callback(network_error_mojom.NetworkError result, List<net_address_mojom.NetA
ddress> addresses)) { |
| 485 return impl.getHostAddresses(host,family,responseFactory); | 485 return impl.getHostAddresses(host,family,callback); |
| 486 } | 486 } |
| 487 } | 487 } |
| 488 | 488 |
| 489 | 489 |
| 490 | 490 |
| OLD | NEW |