Nits for protocol discovery (#10112)
Rather than complain about these in a code review I figured I'd just fix them. :-)
diff --git a/packages/flutter_tools/lib/src/protocol_discovery.dart b/packages/flutter_tools/lib/src/protocol_discovery.dart
index d3f3654..aad4c85 100644
--- a/packages/flutter_tools/lib/src/protocol_discovery.dart
+++ b/packages/flutter_tools/lib/src/protocol_discovery.dart
@@ -9,71 +9,83 @@
import 'device.dart';
import 'globals.dart';
-/// Discovers a specific service protocol on a device, and forward the service
+/// Discovers a specific service protocol on a device, and forwards the service
/// protocol device port to the host.
class ProtocolDiscovery {
ProtocolDiscovery._(
- DeviceLogReader logReader,
- String serviceName, {
+ this.logReader,
+ this.serviceName, {
this.portForwarder,
this.hostPort,
this.defaultHostPort,
- }) : _logReader = logReader, _serviceName = serviceName {
- assert(_logReader != null);
+ }) : _prefix = '$serviceName listening on ' {
+ assert(logReader != null);
assert(portForwarder == null || defaultHostPort != null);
- _deviceLogSubscription = _logReader.logLines.listen(_onLine);
+ _deviceLogSubscription = logReader.logLines.listen(_handleLine);
+ _timer = new Timer(const Duration(seconds: 60), () {
+ _stopScrapingLogs();
+ _completer.completeError(new ToolExit('Timeout while attempting to retrieve URL for $serviceName'));
+ });
}
- factory ProtocolDiscovery.observatory(DeviceLogReader logReader,
- {DevicePortForwarder portForwarder, int hostPort}) =>
- new ProtocolDiscovery._(logReader, _kObservatoryService,
- portForwarder: portForwarder,
- hostPort: hostPort,
- defaultHostPort: kDefaultObservatoryPort);
+ factory ProtocolDiscovery.observatory(
+ DeviceLogReader logReader, {
+ DevicePortForwarder portForwarder,
+ int hostPort,
+ }) {
+ const String kObservatoryService = 'Observatory';
+ return new ProtocolDiscovery._(
+ logReader, kObservatoryService,
+ portForwarder: portForwarder,
+ hostPort: hostPort,
+ defaultHostPort: kDefaultObservatoryPort,
+ );
+ }
- factory ProtocolDiscovery.diagnosticService(DeviceLogReader logReader,
- {DevicePortForwarder portForwarder, int hostPort}) =>
- new ProtocolDiscovery._(logReader, _kDiagnosticService,
- portForwarder: portForwarder,
- hostPort: hostPort,
- defaultHostPort: kDefaultDiagnosticPort);
+ factory ProtocolDiscovery.diagnosticService(
+ DeviceLogReader logReader, {
+ DevicePortForwarder portForwarder,
+ int hostPort,
+ }) {
+ const String kDiagnosticService = 'Diagnostic server';
+ return new ProtocolDiscovery._(
+ logReader, kDiagnosticService,
+ portForwarder: portForwarder,
+ hostPort: hostPort,
+ defaultHostPort: kDefaultDiagnosticPort,
+ );
+ }
- static const String _kObservatoryService = 'Observatory';
- static const String _kDiagnosticService = 'Diagnostic server';
-
- final DeviceLogReader _logReader;
- final String _serviceName;
+ final DeviceLogReader logReader;
+ final String serviceName;
final DevicePortForwarder portForwarder;
final int hostPort;
final int defaultHostPort;
+
+ final String _prefix;
final Completer<Uri> _completer = new Completer<Uri>();
StreamSubscription<String> _deviceLogSubscription;
+ Timer _timer;
/// The discovered service URI.
- Future<Uri> get uri {
- return _completer.future
- .timeout(const Duration(seconds: 60), onTimeout: () {
- throwToolExit('Timeout while attempting to retrieve Uri for $_serviceName');
- }).whenComplete(() {
- _stopScrapingLogs();
- });
- }
+ Future<Uri> get uri => _completer.future;
Future<Null> cancel() => _stopScrapingLogs();
Future<Null> _stopScrapingLogs() async {
+ _timer?.cancel();
+ _timer = null;
await _deviceLogSubscription?.cancel();
_deviceLogSubscription = null;
}
- void _onLine(String line) {
+ void _handleLine(String line) {
Uri uri;
- final String prefix = '$_serviceName listening on ';
- final int index = line.indexOf(prefix + 'http://');
+ final int index = line.indexOf(_prefix + 'http://');
if (index >= 0) {
try {
- uri = Uri.parse(line.substring(index + prefix.length));
+ uri = Uri.parse(line.substring(index + _prefix.length));
} catch (error) {
_stopScrapingLogs();
_completer.completeError(error);
@@ -88,7 +100,7 @@
}
Future<Uri> _forwardPort(Uri deviceUri) async {
- printTrace('$_serviceName Uri on device: $deviceUri');
+ printTrace('$serviceName URL on device: $deviceUri');
Uri hostUri = deviceUri;
if (portForwarder != null) {
@@ -97,9 +109,9 @@
hostPort = await portForwarder
.forward(devicePort, hostPort: hostPort)
.timeout(const Duration(seconds: 60), onTimeout: () {
- throwToolExit('Timeout while atempting to foward device port $devicePort for $_serviceName');
+ throwToolExit('Timeout while atempting to foward device port $devicePort for $serviceName');
});
- printTrace('Forwarded host port $hostPort to device port $devicePort for $_serviceName');
+ printTrace('Forwarded host port $hostPort to device port $devicePort for $serviceName');
hostUri = deviceUri.replace(port: hostPort);
}