* Contact:
* Jooyoul Lee <jy.exe.lee@samsung.com>
* Juyoung Kim <j0.kim@samsung.com>
+ * Hyunjong Pakr <phjwithyou.park@samsung.com>
*
* This program and the accompanying materials are made available
* under the terms of the Eclipse Public License v1.0
package org.tizen.dynamicanalyzer.workbench;
-import java.io.IOException;
-import java.net.ServerSocket;
-import java.net.SocketException;
-
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
import org.eclipse.ui.application.WorkbenchWindowAdvisor;
import org.tizen.dynamicanalyzer.AnalyzerManager;
+import org.tizen.dynamicanalyzer.DASingletonFocusManager;
+import org.tizen.dynamicanalyzer.IDEConnectorManager;
import org.tizen.dynamicanalyzer.PathManager;
import org.tizen.dynamicanalyzer.ResourceCommunicator;
import org.tizen.dynamicanalyzer.constants.AnalyzerConstants;
import org.tizen.dynamicanalyzer.handlers.ExitHandler;
-import org.tizen.dynamicanalyzer.ide.*;
import org.tizen.dynamicanalyzer.ui.views.CoolbarArea;
import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
+import org.tizen.dynamicanalyzer.threads.DASingletonCheckThread;
-class DAMonitor extends Thread {
- static int portNumber = 6824;
- public int bDARunning = -1;
-
- public void run() {
- try {
- portNumber += 12345;
- bDARunning = 0;
- ServerSocket local = new ServerSocket(portNumber);
- local.accept();
- } catch (SocketException e) {
- bDARunning = 1;
- } catch (IOException e) {
- e.printStackTrace();
- bDARunning = 1;
- }
- }
-}
public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
private static final int DEFAULT_HEIGHT = 768;
private static final int MIN_WIDTH = 800;
private static final int MIN_HEIGHT = 600;
+ private static final int DARunningTrue = 1;
private int width = DEFAULT_WIDTH;
private int height = DEFAULT_HEIGHT;
CoolbarArea.createInstance(getWindowConfigurer(), shell);
// Check DA Singleton Dlg.
- DAMonitor monitor_1 = new DAMonitor();
- monitor_1.start();
- while (monitor_1.bDARunning < 0) {
+ DASingletonCheckThread checkFirstPort = new DASingletonCheckThread();
+ checkFirstPort.start();
+ while (checkFirstPort.bDARunning < 0) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
}
- DAMonitor monitors_2 = new DAMonitor();
- monitors_2.start();
- while (monitors_2.bDARunning < 0) {
+ DASingletonCheckThread checkSecondPort = new DASingletonCheckThread();
+ checkSecondPort.start();
+ while (checkSecondPort.bDARunning < 0) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
- if (monitor_1.bDARunning == 1 && monitors_2.bDARunning == 1) {
- FocusDAManager.SetFocusDA();
+ if (checkFirstPort.bDARunning == DARunningTrue && checkSecondPort.bDARunning == DARunningTrue) {
+ System.out.print("Already DA Running \n");
+ DASingletonFocusManager.SetFocusDA();
System.exit(-1);
} else {
- FocusDAManager.SetSaveFocusDAPid();
- IDESocketThread.InitIDESocketThreadListener();
+ DASingletonFocusManager.SetSaveFocusDAPid();
+ IDEConnectorManager.InitIDESocketThreadListener();
}
}
Export-Package: org.tizen.dynamicanalyzer,
org.tizen.dynamicanalyzer.constants,
org.tizen.dynamicanalyzer.handlers,
- org.tizen.dynamicanalyzer.ide,
+ org.tizen.dynamicanalyzer.threads,
org.tizen.dynamicanalyzer.ui.views,
org.tizen.dynamicanalyzer.ui.widgets,
org.tizen.dynamicanalyzer.utils
private static List<String> projectList = null;
- private static boolean bReStartFormIDE = false;
+ private static boolean bReTraceStartFormIDE = false;
+ static boolean bIDEConnetedStatus = false;
if (state.equals(RecordStateSourceProvider.RECORD_RECORDING)) {
CoolbarArea.getInstance().StopTraceButton();
SetTraceConfig( deviceName , appName );
- bReStartFormIDE = true;
+ bReTraceStartFormIDE = true;
} else {
SetTraceConfig( deviceName , appName );
}
public static void recordStartWaitEndDlg() {
- if ( bReStartFormIDE == true ){
+ if ( bReTraceStartFormIDE == true ){
CoolbarArea.getInstance().StartTraceButton();
- bReStartFormIDE = false;
+ bReTraceStartFormIDE = false;
}
}
--- /dev/null
+/*
+ * Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Hyunjong Pakr <phjwithyou.park@samsung.com>
+ *
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * - S-Core Co., Ltd
+ *
+ */
+
+package org.tizen.dynamicanalyzer;
+
+import java.io.IOException;
+import java.lang.management.ManagementFactory;
+import java.lang.management.RuntimeMXBean;
+import org.tizen.dynamicanalyzer.constants.AnalyzerConstants;
+import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
+
+public class DASingletonFocusManager {
+ private static String pid = null;
+ private static String Processid = null;
+ private static int selfPid = 0;
+ private static Runtime runtime;
+ private static Process process;
+
+ private DASingletonFocusManager() {
+ selfPid = -1;
+ }
+
+ private DASingletonFocusManager(int iPid) {
+ selfPid = iPid;
+ }
+
+ private static void GetPid() {
+
+ if (selfPid > 0) {
+ pid = String.valueOf(selfPid);
+ } else {
+ ManagementFactory.getRuntimeMXBean();
+ RuntimeMXBean rt = ManagementFactory.getRuntimeMXBean();
+ Processid = rt.getName();
+ pid = Processid.substring(0, Processid.indexOf("@"));
+ }
+ }
+
+ private static String[] GetSaveFocusPath() {
+
+ String[] returnStr = null;
+ String strPid = ConfigureManager.getInstance().getValue(
+ ConfigureManager.SINGLETON_FOCUS_DA_PID);
+
+ if (AnalyzerUtil.isWin()) {
+ returnStr = new String[] { "wscript",
+ AnalyzerConstants.InstallPathForWindow, strPid };
+ } else {
+ returnStr = new String[] { AnalyzerConstants.InstallPathForLinux,
+ strPid };
+ }
+ return returnStr;
+ }
+
+ private static int executeCommand(String[] cmds) {
+ int retValue = 0;
+
+ try {
+ if (cmds.length == 0) {
+ retValue = -1;
+ } else {
+
+ runtime = Runtime.getRuntime();
+ process = runtime.exec(cmds);
+
+ if (process != null) {
+ process.waitFor();
+ retValue = process.exitValue();
+ }
+ }
+ } catch (IOException e) {
+ System.out.println(" " + e.getMessage() + " " + e + " \n");
+ } catch (InterruptedException e) {
+ System.out.println(" " + e.getMessage() + " " + e + " \n");
+ } finally {
+ if (process != null) {
+ process.destroy();
+ }
+ }
+ return retValue;
+ }
+
+ public static void SetFocusDA() {
+ executeCommand(GetSaveFocusPath());
+ }
+
+ public static void SetSaveFocusDAPid() {
+ GetPid();
+ ConfigureManager.getInstance().setValue(
+ ConfigureManager.SINGLETON_FOCUS_DA_PID, pid);
+ }
+}
-package org.tizen.dynamicanalyzer.ide;
+/*
+ * Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Hyunjong Pakr <phjwithyou.park@samsung.com>
+ *
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * - S-Core Co., Ltd
+ *
+ */
+
+package org.tizen.dynamicanalyzer;
import java.io.BufferedWriter;
import java.io.IOException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
-import org.tizen.dynamicanalyzer.AnalyzerManager;
-import org.tizen.dynamicanalyzer.ImageResources;
import org.tizen.dynamicanalyzer.SymbolManager.SourceLine;
import org.tizen.dynamicanalyzer.constants.AnalyzerConstants;
import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
import org.tizen.dynamicanalyzer.services.RecordStateSourceProvider;
import org.tizen.dynamicanalyzer.ui.widgets.DADialog;
import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
+import org.tizen.dynamicanalyzer.AnalyzerManager;
-
-class RecvThread extends Thread {
+class IDEConnectorAppInfoReceiveThread extends Thread {
static boolean bRunningThread = true;
final int INTSIZE = 4;
final int MAXBUFSIZE = 300;
private Socket socket;
-
- RecvThread( Socket socket ){
+ IDEConnectorAppInfoReceiveThread(Socket socket) {
this.socket = socket;
}
-
+
public void run() {
-
+
int dataSize = 0;
byte arr[] = null;
- while ( bRunningThread ) {
+ AnalyzerManager.bIDEConnetedStatus = true;
+
+ while (bRunningThread) {
try {
arr = new byte[MAXBUFSIZE];
InputStream in = socket.getInputStream();
- dataSize = in.read(arr);
+ dataSize = in.read(arr);
if (dataSize > 0) {
-
+
String msg = new String(arr);
- String[]strMsg = msg.split(" ");
-
- IDESocketThread.deviceName = strMsg[1];
- IDESocketThread.appName = strMsg[2];
-
+ String[] strMsg = msg.split(" ");
+
+ IDEConnectorManager.deviceName = strMsg[1];
+ IDEConnectorManager.appName = strMsg[2];
+
Display.getDefault().syncExec(new Runnable() {
public void run() {
- IDESocketThread.PopupMessage(AnalyzerLabels.RE_TRACE_FORM_IDE);
+ IDEConnectorManager
+ .PopupMessage(AnalyzerLabels.RE_TRACE_FORM_IDE);
}
});
- }
- else{
+ } else {
bRunningThread = false;
}
} catch (IOException e) {
}
}
bRunningThread = true;
+ AnalyzerManager.bIDEConnetedStatus = false;
}
}
+class IDEConnectorAcceptThread extends Thread {
-class ConnectIDEThread extends Thread {
-
-
boolean bThreadRunnig = true;
final static int MINPORT = 45101;
final static int MAXPORT = 45105;
static int port;
-
+
public void run() {
- if (IDESocketThread.isRunnigSocket() == false) {
+ if (IDEConnectorManager.isRunnigSocket() == false) {
- while( bThreadRunnig ){
+ while (bThreadRunnig) {
port = MINPORT;
- while ( port < MAXPORT) {
- if ( IDESocketThread.InitSocket( port ) == true ){
+ while (port < MAXPORT) {
+ if (IDEConnectorManager.InitSocket(port) == true) {
bThreadRunnig = false;
break;
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
- }
+ }
}
}
bThreadRunnig = false;
}
- }
+ }
}
-public class IDESocketThread {
-
-
+public class IDEConnectorManager {
+
static SourceLine sl = null;
static Socket socket = null;
static BufferedWriter writer = null;
static String appName = null;
static String deviceName = null;
-
-
- public static void resetConfig(){
+ public static void resetConfig() {
sl = null;
socket = null;
writer = null;
appName = null;
deviceName = null;
}
-
- public static boolean isRunnigSocket()
- {
+
+ public static boolean isRunnigSocket() {
boolean bSuccess = true;
-
+
if (socket == null) {
bSuccess = false;
}
return bSuccess;
-
+
}
-
- public static void InitIDESocketThreadListener( ){
- ConnectIDEThread connectIde =new ConnectIDEThread( );
- connectIde.start();
+
+ public static void InitIDESocketThreadListener() {
+ IDEConnectorAcceptThread connectIde = new IDEConnectorAcceptThread();
+ connectIde.start();
}
-
- public static boolean InitSocket( int port ) {
+
+ public static boolean InitSocket(int port) {
boolean bSuccess = false;
-
+
socket = GetIDESocket(port);
- if ( socket != null ){
+ if (socket != null) {
bSuccess = true;
- RecvThread recvThread = new RecvThread( socket );
+ IDEConnectorAppInfoReceiveThread recvThread = new IDEConnectorAppInfoReceiveThread(
+ socket);
recvThread.run();
resetConfig();
InitIDESocketThreadListener();
}
return bSuccess;
- }
-
-
+ }
+
public static boolean SendMessageOpenIDE(final String message) {
boolean bSuccess = true;
try {
- if (null != socket ) {
- writer = new BufferedWriter(new OutputStreamWriter( socket.getOutputStream()));
- writer.write( message );
+ if (null != socket) {
+ writer = new BufferedWriter(new OutputStreamWriter(
+ socket.getOutputStream()));
+ writer.write(message);
writer.flush();
} else {
}
return bSuccess;
}
-
-
+
static void PopupMessage(final String message) {
-
- FocusDAManager.SetFocusDA();
-
+
+ DASingletonFocusManager.SetFocusDA();
+
String state = AnalyzerUtil.getRecordState();
if (state.equals(RecordStateSourceProvider.RECORD_RECORDING)) {
ReStartApp();
}
}
-
-
- private static void ReStartApp(){
- AnalyzerManager.recordStartFormIde( deviceName, appName );
+
+ private static void ReStartApp() {
+ AnalyzerManager.recordStartFormIde(deviceName, appName);
}
private static Socket GetIDESocket(int port) {
Socket socket = null;
try {
- socket = new Socket (AnalyzerConstants.LOCAL_HOST, port);
- //socket = new Socket ("172.21.111.236", port);
+ socket = new Socket(AnalyzerConstants.LOCAL_HOST, port);
} catch (UnknownHostException e) {
socket = null;
} catch (IOException e) {
+++ /dev/null
-package org.tizen.dynamicanalyzer.ide;
-
-import java.io.IOException;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.IPath;
-
-public class CommandExecutor {
-
- private Runtime runtime;
- private Process process;
- public IPath file;
-
- public CommandExecutor() {
- }
-
- public int executeCommand(String[] cmds) {
- int retValue = 0;
-
- try {
-
- if (cmds.length == 0) {
- retValue = -1;
- } else {
-
- runtime = Runtime.getRuntime();
- process = runtime.exec(cmds);
-
- if (process != null) {
- ThreadOutput gboInput = new ThreadOutput(
- process.getInputStream());
- ThreadOutput gboError = new ThreadOutput(
- process.getErrorStream());
- gboInput.start();
- gboError.start();
-
- process.waitFor();
-
- retValue = process.exitValue();
- while (true) {
- if (!gboInput.isAlive() && !gboError.isAlive()) {
- break;
- }
- }
- }
- }
- } catch (IOException e) {
- System.out.println(" " + e.getMessage() + " " + e + " \n");
- } catch (InterruptedException e) {
- System.out.println(" " + e.getMessage() + " " + e + " \n");
- } finally {
- if (process != null) {
- process.destroy();
- }
- }
- return retValue;
- }
-
- public String changeString(String cmd, String finder, String changer) {
- String retValue = "";
- if (cmd == null) {
- retValue = "";
- } else {
- StringTokenizer token = new StringTokenizer(cmd, finder);
- while (token.hasMoreTokens()) {
- if (retValue.length() > 0) {
- retValue = retValue + changer + token.nextToken();
- } else {
- retValue = token.nextToken();
- }
- }
- }
- return retValue;
- }
-}
+++ /dev/null
-package org.tizen.dynamicanalyzer.ide;
-
-import java.lang.management.ManagementFactory;
-import java.lang.management.RuntimeMXBean;
-
-import org.tizen.dynamicanalyzer.ConfigureManager;
-import org.tizen.dynamicanalyzer.constants.AnalyzerConstants;
-import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
-
-public class FocusDAManager {
- private static String pid = null;
- private static String Processid = null;
- private static int selfPid = 0;
-
- private FocusDAManager() {
- selfPid = -1;
- }
-
- private FocusDAManager(int iPid) {
- selfPid = iPid;
- }
-
- private static void GetPid() {
-
- if (selfPid > 0) {
- pid = String.valueOf(selfPid);
- } else {
- // get IDE pid.
- ManagementFactory.getRuntimeMXBean();
- RuntimeMXBean rt = ManagementFactory.getRuntimeMXBean();
- Processid = rt.getName();
- pid = Processid.substring(0, Processid.indexOf("@"));
- }
- }
-
- public static void SetSaveFocusDAPid() {
- GetPid();
- ConfigureManager.getInstance().setValue(
- ConfigureManager.SINGLETON_FOCUS_DA_PID, pid);
- }
-
- private static String[] GetSaveFocusPath() {
-
- String[] returnStr = null;
- String strPid = ConfigureManager.getInstance().getValue(
- ConfigureManager.SINGLETON_FOCUS_DA_PID);
-
- if (AnalyzerUtil.isWin()) {
- returnStr = new String[] { "wscript",
- AnalyzerConstants.InstallPathForWindow, strPid };
- } else {
- returnStr = new String[] { AnalyzerConstants.InstallPathForLinux,
- strPid };
- }
-
- return returnStr;
- }
-
- public static void SetFocusDA() {
- CommandExecutor prt = new CommandExecutor();
- prt.executeCommand(GetSaveFocusPath());
- }
-}
+++ /dev/null
-package org.tizen.dynamicanalyzer.ide;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
-public class ThreadOutput extends Thread {
- private InputStream _ips;
-
- public ThreadOutput(InputStream is) {
- _ips = is;
- }
-
- public void run() {
- try {
- InputStreamReader isr = new InputStreamReader(_ips);
- BufferedReader br = new BufferedReader(isr);
- String line;
- while ((line = br.readLine()) != null) {
- System.out.println("log : " + line);
- }
-
- } catch (IOException ioe) {
- } finally {
-
- }
- }
-}
\ No newline at end of file
import org.tizen.dynamicanalyzer.AnalyzerManager;\r
import org.tizen.dynamicanalyzer.ColorResources;\r
import org.tizen.dynamicanalyzer.FontResources;\r
+import org.tizen.dynamicanalyzer.IDEConnectorManager;\r
import org.tizen.dynamicanalyzer.ImageResources;\r
import org.tizen.dynamicanalyzer.SymbolManager;\r
import org.tizen.dynamicanalyzer.SymbolManager.SourceLine;\r
import org.tizen.dynamicanalyzer.constants.AnalyzerConstants;\r
import org.tizen.dynamicanalyzer.constants.LogCenterConstants;\r
-import org.tizen.dynamicanalyzer.ide.IDESocketThread;\r
import org.tizen.dynamicanalyzer.model.DATableDataFormat;\r
import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;\r
import org.tizen.dynamicanalyzer.ui.views.CoolbarArea;\r
+ AnalyzerConstants.DATA_PARSING_TOKEN\r
+ sl.getLineNumber();\r
\r
- IDESocketThread.SendMessageOpenIDE( msg );\r
+ IDEConnectorManager.SendMessageOpenIDE( msg );\r
}\r
\r
public void setSourceButtonToggle(boolean toggle) {\r
--- /dev/null
+/*
+ * Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Hyunjong Pakr <phjwithyou.park@samsung.com>
+ *
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * - S-Core Co., Ltd
+ *
+ */
+
+package org.tizen.dynamicanalyzer.threads;
+
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.net.SocketException;
+
+public class DASingletonCheckThread extends Thread {
+ private static final int DARunningWait = -1;
+ private static final int DARunningFalse = 0;
+ private static final int DARunningTrue = 1;
+
+ static int portNumber = 6824;
+ public int bDARunning = DARunningWait;
+
+ public void run() {
+ try {
+ portNumber += 12345;
+ bDARunning = DARunningFalse;
+ ServerSocket local = new ServerSocket(portNumber);
+ local.accept();
+ } catch (SocketException e) {
+ bDARunning = DARunningTrue;
+ } catch (IOException e) {
+ e.printStackTrace();
+ bDARunning = DARunningTrue;
+ }
+ }
+}
\ No newline at end of file
+/*
+ * Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Hyunjong Pakr <phjwithyou.park@samsung.com>
+ *
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * - S-Core Co., Ltd
+ *
+ */
package org.tizen.dynamicanalyzer.timeline;
import java.util.ArrayList;