Add DevicePortForwarder with adb fix
diff --git a/packages/flutter_tools/lib/src/ios/devices.dart b/packages/flutter_tools/lib/src/ios/devices.dart index 8af09f4..2783296 100644 --- a/packages/flutter_tools/lib/src/ios/devices.dart +++ b/packages/flutter_tools/lib/src/ios/devices.dart
@@ -10,6 +10,7 @@ import '../application_package.dart'; import '../base/common.dart'; +import '../base/os.dart'; import '../base/process.dart'; import '../build_configuration.dart'; import '../device.dart'; @@ -65,6 +66,8 @@ _IOSDeviceLogReader _logReader; + _IOSDevicePortForwarder _portForwarder; + bool get isLocalEmulator => false; bool get supportsStartPaused => false; @@ -230,6 +233,13 @@ return _logReader; } + DevicePortForwarder get portForwarder { + if (_portForwarder == null) + _portForwarder = new _IOSDevicePortForwarder(this); + + return _portForwarder; + } + void clearLogs() { } } @@ -310,3 +320,28 @@ return other.name == name; } } + +class _IOSDevicePortForwarder extends DevicePortForwarder { + _IOSDevicePortForwarder(this.device); + + final IOSDevice device; + + List<ForwardedPort> get forwardedPorts { + final List<ForwardedPort> ports = <ForwardedPort>[]; + // TODO(chinmaygarde): Implement. + return ports; + } + + Future<int> forward(int devicePort, {int hostPort: null}) async { + if ((hostPort == null) || (hostPort == 0)) { + // Auto select host port. + hostPort = await findAvailablePort(); + } + // TODO(chinmaygarde): Implement. + return hostPort; + } + + Future unforward(ForwardedPort forwardedPort) async { + // TODO(chinmaygarde): Implement. + } +}
diff --git a/packages/flutter_tools/lib/src/ios/simulators.dart b/packages/flutter_tools/lib/src/ios/simulators.dart index cda2e47..5475d59 100644 --- a/packages/flutter_tools/lib/src/ios/simulators.dart +++ b/packages/flutter_tools/lib/src/ios/simulators.dart
@@ -321,6 +321,7 @@ bool get isLocalEmulator => true; _IOSSimulatorLogReader _logReader; + _IOSSimulatorDevicePortForwarder _portForwarder; String get xcrunPath => path.join('/usr', 'bin', 'xcrun'); @@ -544,6 +545,13 @@ return _logReader; } + DevicePortForwarder get portForwarder { + if (_portForwarder == null) + _portForwarder = new _IOSSimulatorDevicePortForwarder(this); + + return _portForwarder; + } + void clearLogs() { File logFile = new File(logFilePath); if (logFile.existsSync()) { @@ -772,3 +780,28 @@ int q2 = qualifiers.indexOf(m2[2]); return q1.compareTo(q2); } + +class _IOSSimulatorDevicePortForwarder extends DevicePortForwarder { + _IOSSimulatorDevicePortForwarder(this.device); + + final IOSSimulator device; + + final List<ForwardedPort> _ports = <ForwardedPort>[]; + + List<ForwardedPort> get forwardedPorts { + return _ports; + } + + Future<int> forward(int devicePort, {int hostPort: null}) async { + if ((hostPort == null) || (hostPort == 0)) { + hostPort = devicePort; + } + assert(devicePort == hostPort); + _ports.add(new ForwardedPort(devicePort, hostPort)); + return hostPort; + } + + Future unforward(ForwardedPort forwardedPort) async { + _ports.remove(forwardedPort); + } +}