Commit b9e74071 authored by Adam Barth's avatar Adam Barth

Cleanups to network service

This patch contains some minor improvements to the network service:

- We now cache the connection to the network service so we don't need to spin
  it up for each request.
- We now manage the lifetime of NetworkServiceImpl in the same way as other
  services.

Also, update the workbench sky_tools dependency to the latest version.
parent 2c09a982
...@@ -12,6 +12,14 @@ import 'package:mojom/mojo/url_request.mojom.dart'; ...@@ -12,6 +12,14 @@ import 'package:mojom/mojo/url_request.mojom.dart';
import 'package:mojom/mojo/url_response.mojom.dart'; import 'package:mojom/mojo/url_response.mojom.dart';
import 'package:sky/mojo/shell.dart' as shell; import 'package:sky/mojo/shell.dart' as shell;
NetworkServiceProxy _initNetworkService() {
NetworkServiceProxy networkService = new NetworkServiceProxy.unbound();
shell.requestService("mojo:authenticated_network_service", networkService);
return networkService;
}
final NetworkServiceProxy _networkService = _initNetworkService();
class Response { class Response {
ByteData body; ByteData body;
...@@ -26,16 +34,10 @@ class Response { ...@@ -26,16 +34,10 @@ class Response {
Future<UrlResponse> fetch(UrlRequest request) async { Future<UrlResponse> fetch(UrlRequest request) async {
try { try {
NetworkServiceProxy net = new NetworkServiceProxy.unbound();
shell.requestService("mojo:authenticated_network_service", net);
UrlLoaderProxy loader = new UrlLoaderProxy.unbound(); UrlLoaderProxy loader = new UrlLoaderProxy.unbound();
net.ptr.createUrlLoader(loader); _networkService.ptr.createUrlLoader(loader);
UrlResponse response = (await loader.ptr.start(request)).response; UrlResponse response = (await loader.ptr.start(request)).response;
loader.close(); loader.close();
net.close();
return response; return response;
} catch (e) { } catch (e) {
return new UrlResponse()..statusCode = 500; return new UrlResponse()..statusCode = 500;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment