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_manager_mojom; | 5 library view_manager_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_services/mojo/ui/view_associates.mojom.dart' as view_associ
ates_mojom; |
10 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
; |
11 import 'package:mojo_services/mojo/ui/view_trees.mojom.dart' as view_trees_mojom
; | 12 import 'package:mojo_services/mojo/ui/view_trees.mojom.dart' as view_trees_mojom
; |
12 import 'package:mojo_services/mojo/ui/views.mojom.dart' as views_mojom; | 13 import 'package:mojo_services/mojo/ui/views.mojom.dart' as views_mojom; |
13 const int kLabelMaxLength = 32; | 14 const int kLabelMaxLength = 32; |
14 | 15 |
15 | 16 |
16 | 17 |
17 class _ViewManagerCreateViewParams extends bindings.Struct { | 18 class _ViewManagerCreateViewParams extends bindings.Struct { |
18 static const List<bindings.StructDataHeader> kVersions = const [ | 19 static const List<bindings.StructDataHeader> kVersions = const [ |
19 const bindings.StructDataHeader(32, 0) | 20 const bindings.StructDataHeader(32, 0) |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
213 "viewTreeListener: $viewTreeListener" ", " | 214 "viewTreeListener: $viewTreeListener" ", " |
214 "label: $label" ")"; | 215 "label: $label" ")"; |
215 } | 216 } |
216 | 217 |
217 Map toJson() { | 218 Map toJson() { |
218 throw new bindings.MojoCodecError( | 219 throw new bindings.MojoCodecError( |
219 'Object containing handles cannot be encoded to JSON.'); | 220 'Object containing handles cannot be encoded to JSON.'); |
220 } | 221 } |
221 } | 222 } |
222 | 223 |
| 224 |
| 225 class _ViewManagerRegisterViewAssociateParams extends bindings.Struct { |
| 226 static const List<bindings.StructDataHeader> kVersions = const [ |
| 227 const bindings.StructDataHeader(32, 0) |
| 228 ]; |
| 229 Object viewAssociate = null; |
| 230 Object viewAssociateOwner = null; |
| 231 String label = null; |
| 232 |
| 233 _ViewManagerRegisterViewAssociateParams() : super(kVersions.last.size); |
| 234 |
| 235 static _ViewManagerRegisterViewAssociateParams deserialize(bindings.Message me
ssage) { |
| 236 var decoder = new bindings.Decoder(message); |
| 237 var result = decode(decoder); |
| 238 if (decoder.excessHandles != null) { |
| 239 decoder.excessHandles.forEach((h) => h.close()); |
| 240 } |
| 241 return result; |
| 242 } |
| 243 |
| 244 static _ViewManagerRegisterViewAssociateParams decode(bindings.Decoder decoder
0) { |
| 245 if (decoder0 == null) { |
| 246 return null; |
| 247 } |
| 248 _ViewManagerRegisterViewAssociateParams result = new _ViewManagerRegisterVie
wAssociateParams(); |
| 249 |
| 250 var mainDataHeader = decoder0.decodeStructDataHeader(); |
| 251 if (mainDataHeader.version <= kVersions.last.version) { |
| 252 // Scan in reverse order to optimize for more recent versions. |
| 253 for (int i = kVersions.length - 1; i >= 0; --i) { |
| 254 if (mainDataHeader.version >= kVersions[i].version) { |
| 255 if (mainDataHeader.size == kVersions[i].size) { |
| 256 // Found a match. |
| 257 break; |
| 258 } |
| 259 throw new bindings.MojoCodecError( |
| 260 'Header size doesn\'t correspond to known version size.'); |
| 261 } |
| 262 } |
| 263 } else if (mainDataHeader.size < kVersions.last.size) { |
| 264 throw new bindings.MojoCodecError( |
| 265 'Message newer than the last known version cannot be shorter than ' |
| 266 'required by the last known version.'); |
| 267 } |
| 268 if (mainDataHeader.version >= 0) { |
| 269 |
| 270 result.viewAssociate = decoder0.decodeServiceInterface(8, false, view_asso
ciates_mojom.ViewAssociateProxy.newFromEndpoint); |
| 271 } |
| 272 if (mainDataHeader.version >= 0) { |
| 273 |
| 274 result.viewAssociateOwner = decoder0.decodeInterfaceRequest(16, false, vie
w_associates_mojom.ViewAssociateOwnerStub.newFromEndpoint); |
| 275 } |
| 276 if (mainDataHeader.version >= 0) { |
| 277 |
| 278 result.label = decoder0.decodeString(24, true); |
| 279 } |
| 280 return result; |
| 281 } |
| 282 |
| 283 void encode(bindings.Encoder encoder) { |
| 284 var encoder0 = encoder.getStructEncoderAtOffset(kVersions.last); |
| 285 try { |
| 286 encoder0.encodeInterface(viewAssociate, 8, false); |
| 287 } on bindings.MojoCodecError catch(e) { |
| 288 e.message = "Error encountered while encoding field " |
| 289 "viewAssociate of struct _ViewManagerRegisterViewAssociateParams: $e"; |
| 290 rethrow; |
| 291 } |
| 292 try { |
| 293 encoder0.encodeInterfaceRequest(viewAssociateOwner, 16, false); |
| 294 } on bindings.MojoCodecError catch(e) { |
| 295 e.message = "Error encountered while encoding field " |
| 296 "viewAssociateOwner of struct _ViewManagerRegisterViewAssociateParams:
$e"; |
| 297 rethrow; |
| 298 } |
| 299 try { |
| 300 encoder0.encodeString(label, 24, true); |
| 301 } on bindings.MojoCodecError catch(e) { |
| 302 e.message = "Error encountered while encoding field " |
| 303 "label of struct _ViewManagerRegisterViewAssociateParams: $e"; |
| 304 rethrow; |
| 305 } |
| 306 } |
| 307 |
| 308 String toString() { |
| 309 return "_ViewManagerRegisterViewAssociateParams(" |
| 310 "viewAssociate: $viewAssociate" ", " |
| 311 "viewAssociateOwner: $viewAssociateOwner" ", " |
| 312 "label: $label" ")"; |
| 313 } |
| 314 |
| 315 Map toJson() { |
| 316 throw new bindings.MojoCodecError( |
| 317 'Object containing handles cannot be encoded to JSON.'); |
| 318 } |
| 319 } |
| 320 |
| 321 |
| 322 class _ViewManagerFinishedRegisteringViewAssociatesParams extends bindings.Struc
t { |
| 323 static const List<bindings.StructDataHeader> kVersions = const [ |
| 324 const bindings.StructDataHeader(8, 0) |
| 325 ]; |
| 326 |
| 327 _ViewManagerFinishedRegisteringViewAssociatesParams() : super(kVersions.last.s
ize); |
| 328 |
| 329 static _ViewManagerFinishedRegisteringViewAssociatesParams deserialize(binding
s.Message message) { |
| 330 var decoder = new bindings.Decoder(message); |
| 331 var result = decode(decoder); |
| 332 if (decoder.excessHandles != null) { |
| 333 decoder.excessHandles.forEach((h) => h.close()); |
| 334 } |
| 335 return result; |
| 336 } |
| 337 |
| 338 static _ViewManagerFinishedRegisteringViewAssociatesParams decode(bindings.Dec
oder decoder0) { |
| 339 if (decoder0 == null) { |
| 340 return null; |
| 341 } |
| 342 _ViewManagerFinishedRegisteringViewAssociatesParams result = new _ViewManage
rFinishedRegisteringViewAssociatesParams(); |
| 343 |
| 344 var mainDataHeader = decoder0.decodeStructDataHeader(); |
| 345 if (mainDataHeader.version <= kVersions.last.version) { |
| 346 // Scan in reverse order to optimize for more recent versions. |
| 347 for (int i = kVersions.length - 1; i >= 0; --i) { |
| 348 if (mainDataHeader.version >= kVersions[i].version) { |
| 349 if (mainDataHeader.size == kVersions[i].size) { |
| 350 // Found a match. |
| 351 break; |
| 352 } |
| 353 throw new bindings.MojoCodecError( |
| 354 'Header size doesn\'t correspond to known version size.'); |
| 355 } |
| 356 } |
| 357 } else if (mainDataHeader.size < kVersions.last.size) { |
| 358 throw new bindings.MojoCodecError( |
| 359 'Message newer than the last known version cannot be shorter than ' |
| 360 'required by the last known version.'); |
| 361 } |
| 362 return result; |
| 363 } |
| 364 |
| 365 void encode(bindings.Encoder encoder) { |
| 366 encoder.getStructEncoderAtOffset(kVersions.last); |
| 367 } |
| 368 |
| 369 String toString() { |
| 370 return "_ViewManagerFinishedRegisteringViewAssociatesParams("")"; |
| 371 } |
| 372 |
| 373 Map toJson() { |
| 374 Map map = new Map(); |
| 375 return map; |
| 376 } |
| 377 } |
| 378 |
223 const int _viewManagerMethodCreateViewName = 0; | 379 const int _viewManagerMethodCreateViewName = 0; |
224 const int _viewManagerMethodCreateViewTreeName = 1; | 380 const int _viewManagerMethodCreateViewTreeName = 1; |
| 381 const int _viewManagerMethodRegisterViewAssociateName = 2; |
| 382 const int _viewManagerMethodFinishedRegisteringViewAssociatesName = 3; |
225 | 383 |
226 class _ViewManagerServiceDescription implements service_describer.ServiceDescrip
tion { | 384 class _ViewManagerServiceDescription implements service_describer.ServiceDescrip
tion { |
227 dynamic getTopLevelInterface([Function responseFactory]) => | 385 dynamic getTopLevelInterface([Function responseFactory]) => |
228 responseFactory(null); | 386 responseFactory(null); |
229 | 387 |
230 dynamic getTypeDefinition(String typeKey, [Function responseFactory]) => | 388 dynamic getTypeDefinition(String typeKey, [Function responseFactory]) => |
231 responseFactory(null); | 389 responseFactory(null); |
232 | 390 |
233 dynamic getAllTypeDefinitions([Function responseFactory]) => | 391 dynamic getAllTypeDefinitions([Function responseFactory]) => |
234 responseFactory(null); | 392 responseFactory(null); |
235 } | 393 } |
236 | 394 |
237 abstract class ViewManager { | 395 abstract class ViewManager { |
238 static const String serviceName = "mojo::ui::ViewManager"; | 396 static const String serviceName = "mojo::ui::ViewManager"; |
239 void createView(Object view, Object viewOwner, Object viewListener, String lab
el); | 397 void createView(Object view, Object viewOwner, Object viewListener, String lab
el); |
240 void createViewTree(Object viewTree, Object viewTreeListener, String label); | 398 void createViewTree(Object viewTree, Object viewTreeListener, String label); |
| 399 void registerViewAssociate(Object viewAssociate, Object viewAssociateOwner, St
ring label); |
| 400 void finishedRegisteringViewAssociates(); |
241 } | 401 } |
242 | 402 |
243 class _ViewManagerProxyControl | 403 class _ViewManagerProxyControl |
244 extends bindings.ProxyMessageHandler | 404 extends bindings.ProxyMessageHandler |
245 implements bindings.ProxyControl { | 405 implements bindings.ProxyControl { |
246 _ViewManagerProxyControl.fromEndpoint( | 406 _ViewManagerProxyControl.fromEndpoint( |
247 core.MojoMessagePipeEndpoint endpoint) : super.fromEndpoint(endpoint); | 407 core.MojoMessagePipeEndpoint endpoint) : super.fromEndpoint(endpoint); |
248 | 408 |
249 _ViewManagerProxyControl.fromHandle( | 409 _ViewManagerProxyControl.fromHandle( |
250 core.MojoHandle handle) : super.fromHandle(handle); | 410 core.MojoHandle handle) : super.fromHandle(handle); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 ctrl.proxyError("The Proxy is closed."); | 477 ctrl.proxyError("The Proxy is closed."); |
318 return; | 478 return; |
319 } | 479 } |
320 var params = new _ViewManagerCreateViewTreeParams(); | 480 var params = new _ViewManagerCreateViewTreeParams(); |
321 params.viewTree = viewTree; | 481 params.viewTree = viewTree; |
322 params.viewTreeListener = viewTreeListener; | 482 params.viewTreeListener = viewTreeListener; |
323 params.label = label; | 483 params.label = label; |
324 ctrl.sendMessage(params, | 484 ctrl.sendMessage(params, |
325 _viewManagerMethodCreateViewTreeName); | 485 _viewManagerMethodCreateViewTreeName); |
326 } | 486 } |
| 487 void registerViewAssociate(Object viewAssociate, Object viewAssociateOwner, St
ring label) { |
| 488 if (!ctrl.isBound) { |
| 489 ctrl.proxyError("The Proxy is closed."); |
| 490 return; |
| 491 } |
| 492 var params = new _ViewManagerRegisterViewAssociateParams(); |
| 493 params.viewAssociate = viewAssociate; |
| 494 params.viewAssociateOwner = viewAssociateOwner; |
| 495 params.label = label; |
| 496 ctrl.sendMessage(params, |
| 497 _viewManagerMethodRegisterViewAssociateName); |
| 498 } |
| 499 void finishedRegisteringViewAssociates() { |
| 500 if (!ctrl.isBound) { |
| 501 ctrl.proxyError("The Proxy is closed."); |
| 502 return; |
| 503 } |
| 504 var params = new _ViewManagerFinishedRegisteringViewAssociatesParams(); |
| 505 ctrl.sendMessage(params, |
| 506 _viewManagerMethodFinishedRegisteringViewAssociatesName); |
| 507 } |
327 } | 508 } |
328 | 509 |
329 class _ViewManagerStubControl | 510 class _ViewManagerStubControl |
330 extends bindings.StubMessageHandler | 511 extends bindings.StubMessageHandler |
331 implements bindings.StubControl<ViewManager> { | 512 implements bindings.StubControl<ViewManager> { |
332 ViewManager _impl; | 513 ViewManager _impl; |
333 | 514 |
334 _ViewManagerStubControl.fromEndpoint( | 515 _ViewManagerStubControl.fromEndpoint( |
335 core.MojoMessagePipeEndpoint endpoint, [ViewManager impl]) | 516 core.MojoMessagePipeEndpoint endpoint, [ViewManager impl]) |
336 : super.fromEndpoint(endpoint, autoBegin: impl != null) { | 517 : super.fromEndpoint(endpoint, autoBegin: impl != null) { |
(...skipping 23 matching lines...) Expand all Loading... |
360 case _viewManagerMethodCreateViewName: | 541 case _viewManagerMethodCreateViewName: |
361 var params = _ViewManagerCreateViewParams.deserialize( | 542 var params = _ViewManagerCreateViewParams.deserialize( |
362 message.payload); | 543 message.payload); |
363 _impl.createView(params.view, params.viewOwner, params.viewListener, par
ams.label); | 544 _impl.createView(params.view, params.viewOwner, params.viewListener, par
ams.label); |
364 break; | 545 break; |
365 case _viewManagerMethodCreateViewTreeName: | 546 case _viewManagerMethodCreateViewTreeName: |
366 var params = _ViewManagerCreateViewTreeParams.deserialize( | 547 var params = _ViewManagerCreateViewTreeParams.deserialize( |
367 message.payload); | 548 message.payload); |
368 _impl.createViewTree(params.viewTree, params.viewTreeListener, params.la
bel); | 549 _impl.createViewTree(params.viewTree, params.viewTreeListener, params.la
bel); |
369 break; | 550 break; |
| 551 case _viewManagerMethodRegisterViewAssociateName: |
| 552 var params = _ViewManagerRegisterViewAssociateParams.deserialize( |
| 553 message.payload); |
| 554 _impl.registerViewAssociate(params.viewAssociate, params.viewAssociateOw
ner, params.label); |
| 555 break; |
| 556 case _viewManagerMethodFinishedRegisteringViewAssociatesName: |
| 557 _impl.finishedRegisteringViewAssociates(); |
| 558 break; |
370 default: | 559 default: |
371 throw new bindings.MojoCodecError("Unexpected message name"); | 560 throw new bindings.MojoCodecError("Unexpected message name"); |
372 break; | 561 break; |
373 } | 562 } |
374 return null; | 563 return null; |
375 } | 564 } |
376 | 565 |
377 ViewManager get impl => _impl; | 566 ViewManager get impl => _impl; |
378 set impl(ViewManager d) { | 567 set impl(ViewManager d) { |
379 if (d == null) { | 568 if (d == null) { |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
433 static service_describer.ServiceDescription get serviceDescription => | 622 static service_describer.ServiceDescription get serviceDescription => |
434 _ViewManagerStubControl.serviceDescription; | 623 _ViewManagerStubControl.serviceDescription; |
435 | 624 |
436 | 625 |
437 void createView(Object view, Object viewOwner, Object viewListener, String lab
el) { | 626 void createView(Object view, Object viewOwner, Object viewListener, String lab
el) { |
438 return impl.createView(view, viewOwner, viewListener, label); | 627 return impl.createView(view, viewOwner, viewListener, label); |
439 } | 628 } |
440 void createViewTree(Object viewTree, Object viewTreeListener, String label) { | 629 void createViewTree(Object viewTree, Object viewTreeListener, String label) { |
441 return impl.createViewTree(viewTree, viewTreeListener, label); | 630 return impl.createViewTree(viewTree, viewTreeListener, label); |
442 } | 631 } |
| 632 void registerViewAssociate(Object viewAssociate, Object viewAssociateOwner, St
ring label) { |
| 633 return impl.registerViewAssociate(viewAssociate, viewAssociateOwner, label); |
| 634 } |
| 635 void finishedRegisteringViewAssociates() { |
| 636 return impl.finishedRegisteringViewAssociates(); |
| 637 } |
443 } | 638 } |
444 | 639 |
445 | 640 |
446 | 641 |
OLD | NEW |