From 317efb796549e8a832d3dfd0427c3946620f98d8 Mon Sep 17 00:00:00 2001 From: jooyoul_lee Date: Fri, 19 Jul 2013 11:05:21 +0900 Subject: [PATCH] [Title] add foward code [Desc.] [Issue] --- .../communicator/CommunicatorUtils.java | 25 +++++++++++++++------- .../tizen/dynamicanalyzer/model/DeviceInfo.java | 8 ------- .../swap/communicator/Communicator30.java | 23 +++++++++++++++++--- 3 files changed, 37 insertions(+), 19 deletions(-) diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/communicator/CommunicatorUtils.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/communicator/CommunicatorUtils.java index f04fb40..7690401 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/communicator/CommunicatorUtils.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/communicator/CommunicatorUtils.java @@ -311,13 +311,12 @@ public class CommunicatorUtils { return remotePort; } - public static HostResult foward(int local, int remote) { - DeviceInfo currentDevice = DACommunicator.getSelectedDevice(); + public static HostResult foward(IDevice device, int local, int remote) { HostResult result = HostResult.SUCCESS; result.setMessage("foward " + local + " to " + remote + " complete!"); - if (null != currentDevice && isOnline(currentDevice.getIDevice())) { + if (null != device && isOnline(device)) { try { - currentDevice.getIDevice().createForward(local, remote); + device.createForward(local, remote); Thread.sleep(AnalyzerConstants.SOCKET_FORWARD_INTERVAL); } catch (TimeoutException e) { e.printStackTrace(); @@ -340,9 +339,9 @@ public class CommunicatorUtils { result = HostResult.ERR_EXCEPTION_OCCURRED; result.setMessage(e.getMessage()); } - } else if (null == currentDevice) { + } else if (null == device) { result = HostResult.ERR_DEVICE_IS_NULL; - } else if (!isOnline(currentDevice.getIDevice())) { + } else if (!isOnline(device)) { result = HostResult.ERR_DEVICE_IS_OFFLINE; } else { result = HostResult.ERR_UNDEFINED; @@ -350,12 +349,22 @@ public class CommunicatorUtils { return result; } + public static HostResult foward(int local, int remote) { + DeviceInfo currentDevice = DACommunicator.getSelectedDevice(); + + return foward(currentDevice.getIDevice(), local, remote); + } + public static void unfoward(int local, int remote) { DeviceInfo currentDevice = DACommunicator.getSelectedDevice(); - if (null != currentDevice && isOnline(currentDevice.getIDevice())) { + unfoward(currentDevice.getIDevice(), local, remote); + } + + public static void unfoward(IDevice device, int local, int remote) { + if (null != device && isOnline(device)) { try { System.out.println("unfoward!!"); - currentDevice.getIDevice().removeForward(local, remote); + device.removeForward(local, remote); Thread.sleep(AnalyzerConstants.SOCKET_FORWARD_INTERVAL); } catch (TimeoutException e) { e.printStackTrace(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/model/DeviceInfo.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/model/DeviceInfo.java index 7bdcbc1..6bbda77 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/model/DeviceInfo.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/model/DeviceInfo.java @@ -1,23 +1,15 @@ package org.tizen.dynamicanalyzer.model; -import static org.tizen.sdblib.service.SyncServiceConstants.RESULT_OK; - -import java.io.File; import java.net.Socket; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import org.tizen.dynamicanalyzer.common.AnalyzerConstants; -import org.tizen.dynamicanalyzer.common.AnalyzerPaths; -import org.tizen.dynamicanalyzer.common.CommonConstants; import org.tizen.dynamicanalyzer.communicator.CommunicatorUtils; -import org.tizen.dynamicanalyzer.communicator.DACommunicator; import org.tizen.dynamicanalyzer.project.AppInfo; import org.tizen.dynamicanalyzer.swap.model.control.TargetInfo; import org.tizen.dynamicanalyzer.utils.AnalyzerUtil; import org.tizen.sdblib.IDevice; -import org.tizen.sdblib.service.SyncResult; public class DeviceInfo { private IDevice device; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/communicator/Communicator30.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/communicator/Communicator30.java index 06a8643..d08384e 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/communicator/Communicator30.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/communicator/Communicator30.java @@ -13,6 +13,7 @@ import java.net.Socket; import java.net.SocketException; import java.net.SocketTimeoutException; import java.net.UnknownHostException; +import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.common.AnalyzerConstants; @@ -58,18 +59,34 @@ public class Communicator30 extends BaseCommunicator { } // get port + List removeList = new ArrayList(); for (DeviceInfo devInfo : devices) { - int remotePort = CommunicatorUtils.getRemotePort(DACommunicator - .getSelectedDevice().getIDevice()); + int remotePort = CommunicatorUtils.getRemotePort(devInfo.getIDevice()); if (remotePort < 0) { System.out.println(devInfo.getIDevice().getSerialNumber() + " remote port get failed and remove this device"); - devices.remove(devInfo); + removeList.add(devInfo); + // devices.remove(devInfo); } else { devInfo.setRemotePort(remotePort); + // step 4. port foward + HostResult result = CommunicatorUtils.foward( + devInfo.getIDevice(), CommunicatorUtils.LOCAL_PORT, + remotePort); + System.out.println(result.toString()); + if (!HostResult.SUCCESS.equals(result)) { + System.out.println(devInfo.getIDevice().getSerialNumber() + + " port fowarding failed and remove this device"); + // devices.remove(devInfo); + removeList.add(devInfo); + } } } + if (!removeList.isEmpty()) { + devices.removeAll(removeList); + } + // create control socket for (DeviceInfo devInfo : devices) { HostResult result = createControlSocket(devInfo); -- 2.7.4