Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Side by Side Diff: examples/dart/wget/main.dart

Issue 959993002: Dart: Removes name conflicts from generated bindings. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Remove interface tear-offs from Proxies Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 // Run with, e.g.: 5 // Run with, e.g.:
6 // mojo_shell "mojo:dart_wget http://www.google.com" 6 // mojo_shell "mojo:dart_wget http://www.google.com"
7 7
8 import 'dart:async'; 8 import 'dart:async';
9 import 'dart:typed_data'; 9 import 'dart:typed_data';
10 import 'mojo:application'; 10 import 'mojo:application';
11 import 'mojo:bindings'; 11 import 'mojo:bindings';
12 import 'mojo:core'; 12 import 'mojo:core';
13 13
14 import 'package:mojo/services/network/public/interfaces/network_service.mojom.da rt'; 14 import 'package:mojo/services/network/public/interfaces/network_service.mojom.da rt';
15 import 'package:mojo/services/network/public/interfaces/url_loader.mojom.dart'; 15 import 'package:mojo/services/network/public/interfaces/url_loader.mojom.dart';
16 16
17 class WGet extends Application { 17 class WGet extends Application {
18 NetworkServiceProxy _networkService; 18 NetworkServiceProxy _networkService;
19 UrlLoaderProxy _urlLoaderProxy; 19 UrlLoaderProxy _urlLoader;
20 20
21 WGet.fromHandle(MojoHandle handle) : super.fromHandle(handle); 21 WGet.fromHandle(MojoHandle handle) : super.fromHandle(handle);
22 22
23 void initialize(List<String> args, String url) { 23 void initialize(List<String> args, String url) {
24 run(args); 24 run(args);
25 } 25 }
26 26
27 run(List<String> args) async { 27 run(List<String> args) async {
28 if (args == null || args.length != 2) { 28 if (args == null || args.length != 2) {
29 throw "Expected URL argument"; 29 throw "Expected URL argument";
30 } 30 }
31 31
32 ByteData bodyData = await _getUrl(args[1]); 32 ByteData bodyData = await _getUrl(args[1]);
33 print(">>> Body <<<"); 33 print(">>> Body <<<");
34 print(new String.fromCharCodes(bodyData.buffer.asUint8List())); 34 print(new String.fromCharCodes(bodyData.buffer.asUint8List()));
35 print(">>> EOF <<<"); 35 print(">>> EOF <<<");
36 36
37 _closeProxies(); 37 _closeProxies();
38 close(); 38 close();
39 } 39 }
40 40
41 Future<ByteData> _getUrl(String url) async { 41 Future<ByteData> _getUrl(String url) async {
42 _initProxiesIfNeeded(); 42 _initProxiesIfNeeded();
43 43
44 var urlRequest = new UrlRequest() 44 var urlRequest = new UrlRequest()
45 ..url = url 45 ..url = url
46 ..autoFollowRedirects = true; 46 ..autoFollowRedirects = true;
47 47
48 var urlResponse = await _urlLoaderProxy.start(urlRequest); 48 var urlResponse = await _urlLoader.interface.start(urlRequest);
49 print(">>> Headers <<<"); 49 print(">>> Headers <<<");
50 print(urlResponse.response.headers.join('\n')); 50 print(urlResponse.response.headers.join('\n'));
51 51
52 return DataPipeDrainer.drainHandle(urlResponse.response.body); 52 return DataPipeDrainer.drainHandle(urlResponse.response.body);
53 } 53 }
54 54
55 void _initProxiesIfNeeded() { 55 void _initProxiesIfNeeded() {
56 if (_networkService == null) { 56 if (_networkService == null) {
57 _networkService = new NetworkServiceProxy.unbound(); 57 _networkService = new NetworkServiceProxy.unbound();
58 connectToService("mojo:network_service", _networkService); 58 connectToService("mojo:network_service", _networkService);
59 } 59 }
60 if (_urlLoaderProxy == null) { 60 if (_urlLoader == null) {
61 _urlLoaderProxy = new UrlLoaderProxy.unbound(); 61 _urlLoader = new UrlLoaderProxy.unbound();
62 _networkService.createUrlLoader(_urlLoaderProxy); 62 _networkService.interface.createUrlLoader(_urlLoader);
63 } 63 }
64 } 64 }
65 65
66 void _closeProxies() { 66 void _closeProxies() {
67 _urlLoaderProxy.close(); 67 _urlLoader.impl.close();
68 _networkService.close(); 68 _urlLoader = null;
69 _urlLoaderProxy = null; 69 _networkService.impl.close();
sky 2015/02/26 20:47:37 Can we have a cover method for close, so that foo.
zra 2015/02/26 22:09:12 Done.
70 _networkService = null; 70 _networkService = null;
71 } 71 }
72 } 72 }
73 73
74 main(List args) { 74 main(List args) {
75 MojoHandle appHandle = new MojoHandle(args[0]); 75 MojoHandle appHandle = new MojoHandle(args[0]);
76 var wget = new WGet.fromHandle(appHandle); 76 new WGet.fromHandle(appHandle);
77 wget.listen();
78 } 77 }
OLDNEW
« no previous file with comments | « examples/dart/hello_world/world/main.dart ('k') | mojo/dart/embedder/test/dart_to_cpp_tests.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698