import org.tizen.dynamicanalyzer.ui.page.UpdateViewTimer;
import org.tizen.dynamicanalyzer.ui.toolbar.ConfigureManager;
import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
-import org.tizen.dynamicanalyzer.uirecorder.UIRecorderTool;
import org.tizen.dynamicanalyzer.util.CommonUtil;
import org.tizen.dynamicanalyzer.util.DALogger;
return result;
}
- UIRecorderTool.getInstance().startRecorder();
ToolbarArea.getInstance().startTimer();
// start data manager threads
DataManagerRegistry.startThreads();
import org.tizen.dynamicanalyzer.swap.communicator.Communicator30;
import org.tizen.dynamicanalyzer.swap.platform.BinarySettingData;
import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
-import org.tizen.dynamicanalyzer.uirecorder.UIRecorderTool;
-import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
import org.tizen.dynamicanalyzer.util.DALogger;
+import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
import org.tizen.sdblib.IDevice;
import org.tizen.sdblib.IDeviceChangeListener;
import org.tizen.sdblib.SmartDevelopmentBridge;
if (selectedDevice.getIDevice().getSerialNumber()
.equals(deviceInfo.getIDevice().getSerialNumber())) {
DA_LOG.debug("Disconnected while DA is running."); //$NON-NLS-1$
- UIRecorderTool.getInstance().stop();
DACommunicator.setRunning(false);
}
}
import org.eclipse.core.commands.ExecutionException;
import org.tizen.dynamicanalyzer.common.AnalyzerManager;
import org.tizen.dynamicanalyzer.communicator.DACommunicator;
-import org.tizen.dynamicanalyzer.sql.SqlManager;
import org.tizen.dynamicanalyzer.swap.model.ByteUtils;
import org.tizen.dynamicanalyzer.swap.model.DATime;
import org.tizen.dynamicanalyzer.swap.model.data.ReplayData;
import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
import org.tizen.dynamicanalyzer.ui.toolbar.configuration.ConfigurationDialogDataManager;
-import org.tizen.dynamicanalyzer.uirecorder.UIRecorderTool;
+import org.tizen.dynamicanalyzer.ui.toolbar.replay.data.ReplayDataManager;
import org.tizen.dynamicanalyzer.widgets.timer.IAlarm;
import org.tizen.dynamicanalyzer.widgets.timer.TimerClock;
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
if (!DACommunicator.isSWAPVersion()) {
- UIRecorderTool recorderMng = UIRecorderTool.getInstance();
String xmlFileName = AnalyzerManager.getProject().getSavePath()
+ RECORD_DATA_FILE_NAME;
if (xmlFileName == null || xmlFileName.isEmpty()) {
return FAILED;
} else {
- recorderMng.setXmlPath(xmlFileName);
- recorderMng.setReplayFlag(true);
isReplay = true;
stopTime = AnalyzerManager.getProject().getStopTime();
}
// make replay event
// on/off , replay start time, count, event objs
- ReplayData replayData = SqlManager.getInstance()
- .getReplayLogs(true);
+ ReplayData replayData = ReplayDataManager.getInstance()
+ .getReplayDBManager().getReplayLogs(true);
+
int count = replayData.getObjectCount();
byte[] eventObjs = null;
for (int i = 0; i < count; i++) {
}
replayEvent = ByteUtils.getByte(REPLAY_ON, startTime.getSec(),
startTime.getNano(), count, eventObjs);
- // SqlManager.getInstance().closeReplayConnection();
}
return null;
}
import org.tizen.dynamicanalyzer.swap.logparser.Logs;
import org.tizen.dynamicanalyzer.swap.model.data.LogData;
import org.tizen.dynamicanalyzer.swap.model.data.LogDataFactory;
-import org.tizen.dynamicanalyzer.swap.model.data.ProfileData;
import org.tizen.dynamicanalyzer.util.DALogger;
/** log insert into database **/
public class LogInserter implements Runnable {
private static final DALogger DA_LOG = DALogger.getInstance();
-
+
private static Thread insertLogThread = null;
private static InsertLogQueue insertLogQueue = null;
private static boolean isCompleted = false;
for (int i = 0; i < size; i++) {
int logId = logIds.get(i);
Logs logs = logPack.getLogs(logId);
+ if (null != logs
+ && logId == DataChannelConstants.MSG_DATA_RECORD) {
+ continue;
+ }
if (null != logs) {
List<LogData> newLogs = new ArrayList<LogData>();
newLogs.addAll(logs.getRawLogs());
import org.tizen.dynamicanalyzer.ui.toolbar.StopLogProcessor;
import org.tizen.dynamicanalyzer.ui.toolbar.StopProcessManager;
import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
-import org.tizen.dynamicanalyzer.uirecorder.RecordingQueue;
-import org.tizen.dynamicanalyzer.uirecorder.UIRecorderRecordThread;
-import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
import org.tizen.dynamicanalyzer.util.DALogger;
+import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
public class MessageProcess {
private static final DALogger DA_LOG = DALogger.getInstance();
processTerminate();
break;
case AnalyzerConstants.MSG_RECORD: /* terminate : 7 */
- processRecordLog(messages[MSG_PAYLOAD_INDEX]);
break;
default:
break;
// return name;
// }
- private void processRecordLog(final String record) {
- RecordingQueue rq = UIRecorderRecordThread.getRecordingQueue();
- rq.putLog(record);
- }
// private void processImage(final String from) {
// final String fileName = getImageName(from);
import org.tizen.dynamicanalyzer.swap.channel.data.LibraryObject;
import org.tizen.dynamicanalyzer.swap.channel.data.ProcessInfo;
import org.tizen.dynamicanalyzer.swap.channel.data.ProcessInfoPackage;
-import org.tizen.dynamicanalyzer.swap.model.RecordEventObject;
import org.tizen.dynamicanalyzer.swap.model.data.LogData;
import org.tizen.dynamicanalyzer.swap.model.data.LogDataFactory;
-import org.tizen.dynamicanalyzer.swap.model.data.ReplayData;
import org.tizen.dynamicanalyzer.swap.model.format.LogFormat;
-import org.tizen.dynamicanalyzer.swap.model.format.ReplayLogFormat;
import org.tizen.dynamicanalyzer.ui.info.callstack.CallStackData;
import org.tizen.dynamicanalyzer.ui.info.callstack.CallStackUnit;
import org.tizen.dynamicanalyzer.ui.summary.failed.FailedChecker;
private static SqlManager instance = null;
private Connection connection = null;
- private Connection replayConnection = null;
private boolean isQueryPrint = false;
return null;
}
- public Connection getReplayConnection(String path) {
- try {
- if (null != replayConnection) {
- return replayConnection;
- }
- Class.forName("org.hsqldb.jdbcDriver");
- String dbUrl = "jdbc:hsqldb:"
- + path
- + File.separator
- + AnalyzerConstants.DATABASE_NAME
- + ";shutdown=true;hsqldb.default_table_type=cached;hsqldb.large_data=true;hdqldb.log_data=false"; //$NON-NLS-1$
- replayConnection = DriverManager.getConnection(dbUrl, "SA", "");
- SQLWarning warning = replayConnection.getWarnings();
- while (warning != null) {
- DA_LOG.debug("Message: " + warning.getMessage());
- DA_LOG.debug("SQL state: " + warning.getSQLState());
- DA_LOG.debug("Vendor code: " + warning.getErrorCode());
- warning = warning.getNextWarning();
- }
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return replayConnection;
- }
-
public Connection getConnection(String path) {
try {
if (null != connection) {
// }
}
- public void closeReplayConnection() {
- if (replayConnection == null) {
- return;
- } else {
- try {
- Statement st = replayConnection.createStatement();
- st.execute("SHUTDOWN");
- CommonUtil.tryClose(st);
- replayConnection.close();
- } catch (SQLException se) {
- if (!se.getSQLState().equals("XJ015")) {
- DA_LOG.debug("DB did not shutdown normally");
- }
- }
- replayConnection = null;
- }
- }
-
public void closeConnection() {
if (connection == null) {
return;
int dataRowSize = input.size();
for (int i = 0; i < dataRowSize; i++) {
logData = input.get(i);
- if (logData.getId() != DataChannelConstants.MSG_DATA_RECORD) {
- logData.makePreparedStatement(prep);
- if (logData.getId() == DataChannelConstants.MSG_FUNCTION_ENTRY) {
- ProcessInfoPackage processInfoPkg = AnalyzerManager
- .getProject().getProcessInfoPackage(
- logData.getPid());
- processInfoPkg.addFunctionEntryInsertLogCount();
- }
-
- prep.addBatch();
- } else {
- ReplayData replayData = (ReplayData) logData;
- int count = replayData.getObjectCount();
- List<RecordEventObject> events = replayData
- .getRecordEvent();
- RecordEventObject reo = null;
- for (int ii = 0; ii < count; ii++) {
- reo = events.get(ii);
- reo.makePreparedStatement(prep);
- prep.addBatch();
- }
+ logData.makePreparedStatement(prep);
+ if (logData.getId() == DataChannelConstants.MSG_FUNCTION_ENTRY) {
+ ProcessInfoPackage processInfoPkg = AnalyzerManager
+ .getProject().getProcessInfoPackage(
+ logData.getPid());
+ processInfoPkg.addFunctionEntryInsertLogCount();
}
+ prep.addBatch();
+
}
conn.setAutoCommit(false);
prep.executeBatch();
int columnSize = rowData.size();
for (int j = 0; j < columnSize; j++) {
String rstr = rowData.get(j);
- if(rstr != null && rstr.length() > 256) {
- rstr = rstr.substring(0, 256);
+ if (rstr != null && rstr.length() > 256) {
+ rstr = rstr.substring(0, 256);
prep.setString(j + 1, rstr);
} else {
prep.setString(j + 1, rstr);
int dataRowSize = input.size();
for (int i = 0; i < dataRowSize; i++) {
String data = input.get(i);
- if(data.length() > 1024) {
+ if (data.length() > 1024) {
data = data.substring(0, 1024);
}
prep.setString(1, data);
return 0;
}
- public ReplayData getReplayLogs(boolean isReplay) {
- String query = null;
- Statement stat = null;
- ResultSet rs = null;
- Connection conn = null;
- ReplayData output = null;
- try {
- if (isReplay) {
- conn = getReplayConnection(AnalyzerManager.getProject()
- .getSavePath());
- } else {
- conn = getConnection();
- }
-
- if (null == conn) {
- return null;
- }
- semaphoreAcquire();
- StringBuffer buffer = new StringBuffer();
- List<String> columnNames = ReplayLogFormat.getInstance()
- .getDBColumnNames();
- for (int i = 0; i < columnNames.size(); i++) {
- buffer.append(columnNames.get(i));
- if (i + 1 != columnNames.size()) {
- buffer.append(",");
- }
- }
- stat = conn.createStatement();
- query = "select * from replay order by time, rid";
- if (isQueryPrint) {
- DA_LOG.debug("query : " + query);
- }
- rs = stat.executeQuery(query);
- if (null == rs) {
- return null;
- }
- output = new ReplayData();
- List<RecordEventObject> eventObjs = output.getRecordEvent();
- while (rs.next()) {
- RecordEventObject reObj = new RecordEventObject();
- reObj.loadData(rs);
- eventObjs.add(reObj);
- }
-
- output.setObjectCount(eventObjs.size());
- } catch (SQLException e) {
- DA_LOG.debug("SQLException - select : " + query);
- e.printStackTrace();
- } finally {
- CommonUtil.tryClose(stat, rs);
- if (null != conn) {
- semaphoreRelease();
- }
- }
- return output;
- }
-
- public boolean deleteReplayTableItems(boolean isSave, String dbPath,
- List<Integer> input) {
- Statement stat = null;
- PreparedStatement prep = null;
- try {
- semaphoreAcquire();
- Connection conn = null;
- if (isSave) {
- conn = getReplayConnection(dbPath);
- } else {
- conn = getConnection();
- }
-
- if (null == conn) {
- return false;
- }
- stat = conn.createStatement();
- String query = String.format("delete from replay");//$NON-NLS-1$
- StringBuffer queryBuffer = new StringBuffer(query);
- // for (int i = 0; i < input.size(); i++) {
- // if (i == 0) {
- // queryBuffer.append(" where ");
- // }
- // queryBuffer.append(" rid = ").append(input.get(i));
- // if (i < input.size() - 1) {
- // queryBuffer.append(" or ");
- // }
- // }
- if (isQueryPrint) {
- DA_LOG.debug("query : " + queryBuffer.toString());
- }
- stat.executeUpdate(queryBuffer.toString());
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- if (null != prep) {
- try {
- prep.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- semaphoreRelease();
- }
- return true;
- }
-
- public void insertRepalyTableItem(boolean isSave, String dbPath,
- List<List<String>> dataList) {
- LogFormat logFormat = LogDataFactory
- .getLogFormatById(DataChannelConstants.MSG_DATA_RECORD);
-
- StringBuffer buffer = new StringBuffer();
- buffer.append("insert into ").append(logFormat.getName())
- .append(" values( ");
-
- int columnCount = logFormat.getDBTotalColumnCount();
- for (int i = 0; i < columnCount; i++) {
- if (i + 1 == columnCount) {
- buffer.append(" ? );");
- } else {
- buffer.append("?, ");
- }
- }
- insertRepalyQuery(isSave, dbPath, buffer.toString(), dataList);
- }
-
- public boolean insertRepalyQuery(boolean isSave, String dbPath,
- String query, List<List<String>> input) {
- PreparedStatement prep = null;
- try {
- Connection conn = null;
- if (isSave) {
- conn = getReplayConnection(dbPath);
- } else {
- conn = getConnection();
- }
- if (null == conn || null == query || null == input) {
- DA_LOG.debug("failed sql inset : " + input);
- return false;
- }
- semaphoreAcquire();
- if (isQueryPrint) {
- DA_LOG.debug("query : " + query);
- }
- prep = conn.prepareStatement(query);
- int dataRowSize = input.size();
- for (int i = 0; i < dataRowSize; i++) {
- List<String> rowData = input.get(i);
- prep.setInt(1, Integer.parseInt(rowData.get(0)));
- prep.setInt(2, Integer.parseInt(rowData.get(1)));
- prep.setLong(3, Long.parseLong(rowData.get(2)));
- prep.setLong(4, Long.parseLong(rowData.get(3)));
- prep.setInt(5, Integer.parseInt(rowData.get(4)));
- prep.setInt(6, Integer.parseInt(rowData.get(5)));
- prep.setInt(7, Integer.parseInt(rowData.get(6)));
- prep.setInt(8, Integer.parseInt(rowData.get(7)));
- prep.setInt(9, Integer.parseInt(rowData.get(8)));
- prep.setInt(10, Integer.parseInt(rowData.get(9)));
- prep.addBatch();
- }
- conn.setAutoCommit(false);
- prep.executeBatch();
- conn.setAutoCommit(true);
- } catch (SQLException e) {
- DA_LOG.error("[Error insert] query = " + query);
- e.printStackTrace();
- } finally {
- if (null != prep) {
- try {
- prep.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- semaphoreRelease();
-
- }
- return true;
- }
-
private String makeSaveFormat(List<Long> input) {
if (null == input || input.isEmpty()) {
return null;
import org.tizen.dynamicanalyzer.ui.toolbar.ConfigureManager;
import org.tizen.dynamicanalyzer.ui.toolbar.StartProcessManager;
import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
-import org.tizen.dynamicanalyzer.uirecorder.UIRecorderTool;
+import org.tizen.dynamicanalyzer.util.DALogger;
import org.tizen.dynamicanalyzer.util.WorkbenchUtil;
import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
-import org.tizen.dynamicanalyzer.util.DALogger;
import org.tizen.dynamicanalyzer.widgets.da.base.DADialog;
import org.tizen.sdblib.exception.SdbCommandRejectedException;
import org.tizen.sdblib.exception.TimeoutException;
profilingStartTime.setSec(sec);
profilingStartTime.setNano(nano);
- UIRecorderTool.getInstance().startRecorder();
- DA_LOG.performance("TEST", "Start Trace", "Start recoding thread");
ToolbarArea.getInstance().startTimer();
DA_LOG.performance("TEST", "Start Trace", "Start Timer");
SWAPLogParser.startLogParser();
format = SystemLogFormat.getInstance();
break;
case MSG_DATA_RECORD:
- format = ReplayLogFormat.getInstance();
+ // format = ReplayLogFormat.getInstance();
break;
default:
break;
logFormats.add(LifeCycleLogFormat.getInstance());
logFormats.add(MemoryLogFormat.getInstance());
logFormats.add(ProfilingLogFormat.getInstance());
- logFormats.add(ReplayLogFormat.getInstance());
+ // logFormats.add(ReplayLogFormat.getInstance());
logFormats.add(SceneLogFormat.getInstance());
logFormats.add(ScreenShotLogFormat.getInstance());
logFormats.add(SyncLogFormat.getInstance());
import org.tizen.dynamicanalyzer.ui.timeline.calltrace.CallTraceView;
import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineChartManager;
import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineView;
+import org.tizen.dynamicanalyzer.ui.toolbar.replay.data.ReplayDataManager;
import org.tizen.dynamicanalyzer.widgets.da.view.DAPageComposite;
public class TimelinePage extends DAPageComposite {
rightForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
DataManagerRegistry.registerPageDataManager(TimelineChartManager.getInstance());
+ DataManagerRegistry.registerPageDataManager(ReplayDataManager.getInstance());
+
}
@Override
import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
import org.tizen.dynamicanalyzer.common.AnalyzerManager;
import org.tizen.dynamicanalyzer.communicator.DACommunicator;
-import org.tizen.dynamicanalyzer.database.SqlConnectionManager;
import org.tizen.dynamicanalyzer.logparser.LogInserter;
import org.tizen.dynamicanalyzer.logparser.LogParser;
import org.tizen.dynamicanalyzer.project.Project;
import org.tizen.dynamicanalyzer.sql.SqlManager;
import org.tizen.dynamicanalyzer.swap.logparser.SWAPLogParser;
import org.tizen.dynamicanalyzer.ui.page.UpdateViewTimer;
-import org.tizen.dynamicanalyzer.uirecorder.UIRecorderTool;
import org.tizen.dynamicanalyzer.util.DALogger;
public class StopLogProcessor implements Runnable {
percent += 5;
StopProcessManager.getInstance().setValue(percent);
- UIRecorderTool.getInstance().stop();
- percent += 5;
StopProcessManager.getInstance().setValue(percent);
/* save Project */
--- /dev/null
+package org.tizen.dynamicanalyzer.ui.toolbar.replay.data;
+
+import java.util.List;
+
+import org.tizen.dynamicanalyzer.database.DBColumn;
+import org.tizen.dynamicanalyzer.database.DBConstants;
+import org.tizen.dynamicanalyzer.database.DBTable;
+import org.tizen.dynamicanalyzer.database.SqlConnectionManager;
+import org.tizen.dynamicanalyzer.swap.model.DATime;
+import org.tizen.dynamicanalyzer.swap.model.RecordEventObject;
+import org.tizen.dynamicanalyzer.swap.model.data.ReplayData;
+
+public class ReplayDBManager extends DBTable {
+
+ private static final String TABLENAME = "REPLAY";
+ public static final String RID = "RID";
+ public static final String MESSAGE_ID = "MESSAGE_ID";
+ public static final String SEQ = "SEQ";
+ public static final String TIME = "TIME";
+ public static final String SEC = "SEC";
+ public static final String NANO = "NANO";
+ public static final String EVENT_ID = "EVENT_ID";
+ public static final String EVENT_TYPE = "EVENT_TYPE";
+ public static final String EVENT_CODE = "EVENT_CODE";
+ public static final String EVENT_VALUE = "EVENT_VALUE";
+
+ private static final String SELECT_QUERY = "select * from " + TABLENAME + " order by " + TIME + " , " + RID; //$NON-NLS-1$
+ private static final String DELETE_QUERY = "delete from " + TABLENAME;
+
+ @Override
+ public String getTableName() {
+ return TABLENAME;
+ }
+
+ public ReplayDBManager() {
+ addColumn(new DBColumn(RID, DBConstants.PRIMARY_KEY,
+ DBConstants.INTEGER));
+ addColumn(new DBColumn(MESSAGE_ID, DBConstants.NOT_NULL,
+ DBConstants.INTEGER));
+ addColumn(new DBColumn(SEQ, DBConstants.NOT_NULL, DBConstants.INTEGER));
+ addColumn(new DBColumn(TIME, DBConstants.NOT_NULL, DBConstants.LONG));
+ addColumn(new DBColumn(SEC, DBConstants.NOT_NULL, DBConstants.INTEGER));
+ addColumn(new DBColumn(NANO, DBConstants.NOT_NULL, DBConstants.INTEGER));
+ addColumn(new DBColumn(EVENT_ID, DBConstants.NOT_NULL,
+ DBConstants.INTEGER));
+ addColumn(new DBColumn(EVENT_TYPE, DBConstants.NOT_NULL,
+ DBConstants.INTEGER));
+ addColumn(new DBColumn(EVENT_CODE, DBConstants.NOT_NULL,
+ DBConstants.INTEGER));
+ addColumn(new DBColumn(EVENT_VALUE, DBConstants.NOT_NULL,
+ DBConstants.INTEGER));
+ }
+
+ public ReplayData getReplayLogs(boolean isReplay) {
+
+ List<List<Object>> result = SqlConnectionManager
+ .executeQuery(SELECT_QUERY);
+ if (null == result || result.size() == 0 || result.get(0).size() == 0) {
+ return null;
+ }
+
+ ReplayData output = new ReplayData();
+ List<RecordEventObject> eventObjs = output.getRecordEvent();
+ for (List<Object> data : result) {
+ RecordEventObject reObj = new RecordEventObject();
+ reObj.setId((Integer) data.get(0));
+ reObj.setSeq((Integer) data.get(2));
+ reObj.setTime((Long) data.get(3));
+ DATime eventTime = new DATime();
+ eventTime.setSec((Integer) data.get(4));
+ eventTime.setNano((Integer) data.get(5));
+ reObj.setEventTime(eventTime);
+ reObj.setEventId((Integer) data.get(6));
+ reObj.setEventType((Integer) data.get(7));
+ reObj.setEventCode((Integer) data.get(8));
+ reObj.setEventValue((Integer) data.get(9));
+ eventObjs.add(reObj);
+ }
+ output.setObjectCount(eventObjs.size());
+ return output;
+ }
+
+ public boolean deleteReplayTableItems() {
+ SqlConnectionManager.executeUpdate(DELETE_QUERY);
+ return true;
+ }
+}
--- /dev/null
+/*
+ * Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Hyunjong Park <phjwithyou.park@samsung.com>
+ * Jooyoul Lee <jy.exe.lee@samsung.com>
+ * Juyoung Kim <j0.kim@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Contributors:
+ * - S-Core Co., Ltd
+ *
+ */
+
+package org.tizen.dynamicanalyzer.ui.toolbar.replay.data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.tizen.dynamicanalyzer.common.AnalyzerManager;
+import org.tizen.dynamicanalyzer.swap.channel.data.DataChannelConstants;
+import org.tizen.dynamicanalyzer.swap.logparser.LogPackage;
+import org.tizen.dynamicanalyzer.swap.logparser.Logs;
+import org.tizen.dynamicanalyzer.swap.logparser.PageDataManager;
+import org.tizen.dynamicanalyzer.swap.model.RecordEventObject;
+import org.tizen.dynamicanalyzer.swap.model.data.LogData;
+import org.tizen.dynamicanalyzer.swap.model.data.ReplayData;
+import org.tizen.dynamicanalyzer.util.DALogger;
+
+public class ReplayDataManager extends PageDataManager {
+ private static ReplayDataManager instance = null;
+
+ private ReplayDBManager replayDBManager = null;
+ private int rid = 0;
+
+ public ReplayDataManager() {
+ replayDBManager = new ReplayDBManager();
+ addDBTable(replayDBManager);
+ }
+
+ public synchronized static ReplayDataManager getInstance() {
+ if (null == instance) {
+ instance = new ReplayDataManager();
+ }
+ return instance;
+ }
+
+ /*** make network data thread ***/
+ @Override
+ public void run() {
+ while (!AnalyzerManager.isExit()) {
+ LogPackage pack = pollPack();
+ if (pack == null) // stop thread
+ break;
+
+ Logs logs = pack.getLogs(DataChannelConstants.MSG_DATA_RECORD);
+ if (null != logs && logs.getRawLogs().size() != 0) {
+
+ List<List<Object>> insertData = new ArrayList<List<Object>>();
+
+ List<LogData> inputs = logs.getLogs();
+ int dataRowSize = inputs.size();
+ for (int i = 0; i < dataRowSize; i++) {
+ ReplayData replayData = (ReplayData) inputs.get(i);
+ List<RecordEventObject> events = replayData
+ .getRecordEvent();
+ for (int ii = 0; ii < replayData.getObjectCount(); ii++) {
+ RecordEventObject reo = events.get(ii);
+ List<Object> insertObject = new ArrayList<Object>();
+ insertObject.add(rid++);
+ insertObject.add(7);
+ insertObject.add(reo.getSeq());
+ insertObject.add(reo.getTime());
+ insertObject.add(reo.getEventTime().getSec());
+ insertObject.add(reo.getEventTime().getNano());
+ insertObject.add(reo.getEventId());
+ insertObject.add(reo.getEventType());
+ insertObject.add(reo.getEventCode());
+ insertObject.add(reo.getEventValue());
+ insertData.add(insertObject);
+ }
+ }
+ replayDBManager.insertData(insertData);
+ }
+ }
+
+ /* log for debug */
+ DALogger.getInstance().info(getName() + " thread end!!");
+ }
+
+ public void clear() {
+ instance = null;
+ replayDBManager = null;
+ rid = 0;
+ }
+
+ public ReplayDBManager getReplayDBManager() {
+ return replayDBManager;
+ }
+
+}
import org.tizen.dynamicanalyzer.swap.model.DATime;
import org.tizen.dynamicanalyzer.swap.model.RecordEventObject;
import org.tizen.dynamicanalyzer.swap.model.data.ReplayData;
+import org.tizen.dynamicanalyzer.ui.toolbar.replay.data.ReplayDataManager;
import org.tizen.dynamicanalyzer.ui.widgets.table.DATableComposite;
import org.tizen.dynamicanalyzer.util.WorkbenchUtil;
import org.tizen.dynamicanalyzer.widgets.button.DACustomButton;
private List<ReplayEditTableData> replayModifyDataList = null;
private List<List<String>> tableItemsList = null;
- private List<Integer> removeDBIndex = new ArrayList<Integer>();
-
public static ReplayEditDialogDataManager getInstance() {
if (null == instance) {
instance = new ReplayEditDialogDataManager();
public ReplayData getReplayDBData() {
if (null == replayDBData) {
replayDBData = new ReplayData();
- replayDBData = SqlManager.getInstance().getReplayLogs(false);
+ replayDBData = ReplayDataManager.getInstance().getReplayDBManager()
+ .getReplayLogs(false);
+ // replayDBData = SqlManager.getInstance().getReplayLogs(false);
}
return replayDBData;
}
dbPath = AnalyzerManager.getProject().getSavePath();
}
insertDB(true, dbPath);
- SqlManager.getInstance().closeReplayConnection();
}
}
public void insertDB(boolean isSave, String dbPath) {
- SqlManager.getInstance().deleteReplayTableItems(isSave, dbPath,
- removeDBIndex);
+ ReplayDataManager.getInstance().getReplayDBManager()
+ .deleteReplayTableItems();
insertDBData(isSave, dbPath);
}
int size = getTableItemsList().size();
for (int i = 0; i < size; i++) {
List<String> item = getTableItemsList().get(i);
- List<List<String>> dataList = new ArrayList<List<String>>();
+ List<List<Object>> dataList = new ArrayList<List<Object>>();
if (item.get(EVENT_TYPE_TABLE_INDEX).equals(
ReplayEditLabels.CONTEXT_TOUCH)) {
dataList = makeDBTouchData(item);
dataList = makeDBKeyData(item);
}
if (dataList.size() > 0) {
- SqlManager.getInstance().insertRepalyTableItem(isSave, dbPath,
- dataList);
+ ReplayDataManager.getInstance().getReplayDBManager()
+ .insertData(dataList);
}
}
}
return strTime;
}
- private String getDBPoint(String point) {
+ private int getDBPoint(String point) {
String strPoint = point;
if (strPoint.contains(ReplayEditLabels.CONTEXT_VALUE_X)) {
strPoint = strPoint.replace(ReplayEditLabels.CONTEXT_VALUE_X,
strPoint = strPoint.replace(ReplayEditLabels.CONTEXT_VALUE_Y,
CommonConstants.EMPTY);
}
- return strPoint.trim();
+ return Integer.parseInt(strPoint.trim());
}
public long getTimeValue(long sec, long nano) {
return resultTime;
}
- private String getKeyValue(List<String> item) {
+ private int getKeyValue(List<String> item) {
String keyValue = item.get(EVENT_VALUE1_TABLE_INDEX);
int nKey = 0;
if (keyValue.equals(ReplayEditLabels.CONTEXT_KEY_MENU)) {
} else if (keyValue.equals(ReplayEditLabels.CONTEXT_KEY_VOLUME_UP)) {
nKey = 114;
}
- return Integer.toString(nKey);
+ return nKey;
}
- private List<List<String>> makeDBKeyData(List<String> item) {
+ private List<List<Object>> makeDBKeyData(List<String> item) {
String itemMouseDownTime = getDBTime(item
.get(EVENT_MOUSE_DOWN_TIME_TABLE_INDEX));
String itemMouseUpTime = getDBTime(item
.get(EVENT_MOUSE_UP_TIME_TABLE_INDEX));
DATime mouseDownTime = getDATimeValue(Long.parseLong(itemMouseDownTime));
DATime mouseUpTime = getDATimeValue(Long.parseLong(itemMouseUpTime));
- String itemValue1 = getKeyValue(item);
+ int itemValue1 = getKeyValue(item);
- List<List<String>> dbKeyDataList = new ArrayList<List<String>>();
+ List<List<Object>> dbKeyDataList = new ArrayList<List<Object>>();
for (int i = 0; i < 4; i++) {
- List<String> keyData = new ArrayList<String>();
+ List<Object> keyData = new ArrayList<Object>();
if (i == 0) {
- keyData.add(Integer.toString(mouseDownTime.getSec()
- + insertDBRid++));
- keyData.add(Integer.toString(MESSAGE_ID));
- keyData.add(Integer.toString(sequenceNaumber));
- keyData.add(itemMouseDownTime);
- keyData.add(Long.toString(mouseDownTime.getSec()));
- keyData.add(Long.toString(mouseDownTime.getNano()));
- keyData.add("1");
- keyData.add(Integer.toString(KEY));
+ keyData.add(mouseDownTime.getSec() + insertDBRid++);
+ keyData.add(MESSAGE_ID);
+ keyData.add(sequenceNaumber);
+ keyData.add(Long.parseLong(itemMouseDownTime));
+ keyData.add(mouseDownTime.getSec());
+ keyData.add(mouseDownTime.getNano());
+ keyData.add(1);
+ keyData.add(KEY);
keyData.add(itemValue1);
- keyData.add("1");
+ keyData.add(1);
} else if (i == 1) {
- keyData.add(Integer.toString(mouseUpTime.getSec()
- + insertDBRid++));
- keyData.add(Integer.toString(MESSAGE_ID));
- keyData.add(Integer.toString(sequenceNaumber));
- keyData.add(itemMouseDownTime);
- keyData.add(Long.toString(mouseDownTime.getSec()));
- keyData.add(Long.toString(mouseDownTime.getNano()));
- keyData.add("1");
- keyData.add("0");
- keyData.add("0");
- keyData.add("0");
+ keyData.add(mouseUpTime.getSec() + insertDBRid++);
+ keyData.add(MESSAGE_ID);
+ keyData.add(sequenceNaumber);
+ keyData.add(Long.parseLong(itemMouseDownTime));
+ keyData.add(mouseDownTime.getSec());
+ keyData.add(mouseDownTime.getNano());
+ keyData.add(1);
+ keyData.add(0);
+ keyData.add(0);
+ keyData.add(0);
} else if (i == 2) {
- keyData.add(Integer.toString(mouseUpTime.getSec()
- + insertDBRid++));
- keyData.add(Integer.toString(MESSAGE_ID));
- keyData.add(Integer.toString(sequenceNaumber));
- keyData.add(itemMouseUpTime);
- keyData.add(Long.toString(mouseUpTime.getSec()));
- keyData.add(Long.toString(mouseUpTime.getNano()));
- keyData.add("1");
- keyData.add(Integer.toString(KEY));
+ keyData.add(mouseUpTime.getSec() + insertDBRid++);
+ keyData.add(MESSAGE_ID);
+ keyData.add(sequenceNaumber);
+ keyData.add(Long.parseLong(itemMouseDownTime));
+ keyData.add(mouseUpTime.getSec());
+ keyData.add(mouseUpTime.getNano());
+ keyData.add(1);
+ keyData.add(KEY);
keyData.add(itemValue1);
- keyData.add("0");
+ keyData.add(0);
} else if (i == 3) {
- keyData.add(Integer.toString(mouseUpTime.getSec()
- + insertDBRid++));
- keyData.add(Integer.toString(MESSAGE_ID));
- keyData.add(Integer.toString(sequenceNaumber));
- keyData.add(itemMouseUpTime);
- keyData.add(Long.toString(mouseUpTime.getSec()));
- keyData.add(Long.toString(mouseUpTime.getNano()));
- keyData.add("1");
- keyData.add("0");
- keyData.add("0");
- keyData.add("0");
+ keyData.add(mouseUpTime.getSec() + insertDBRid++);
+ keyData.add(MESSAGE_ID);
+ keyData.add(sequenceNaumber);
+ keyData.add(Long.parseLong(itemMouseDownTime));
+ keyData.add(mouseUpTime.getSec());
+ keyData.add(mouseUpTime.getNano());
+ keyData.add(1);
+ keyData.add(0);
+ keyData.add(0);
+ keyData.add(0);
}
dbKeyDataList.add(keyData);
}
return dbKeyDataList;
}
- private List<List<String>> makeDBTouchData(List<String> item) {
+ private List<List<Object>> makeDBTouchData(List<String> item) {
String itemMouseDownTime = getDBTime(item
.get(EVENT_MOUSE_DOWN_TIME_TABLE_INDEX));
DATime mouseDownTime = getDATimeValue(Long.parseLong(itemMouseDownTime));
String itemValue1 = item.get(EVENT_VALUE1_TABLE_INDEX).trim();
String itemValue2 = item.get(EVENT_VALUE2_TABLE_INDEX).trim();
- List<List<String>> dbKeyDataList = new ArrayList<List<String>>();
+ List<List<Object>> dbKeyDataList = new ArrayList<List<Object>>();
for (int i = 0; i < makeLogCount; i++) {
- List<String> keyData = new ArrayList<String>();
+ List<Object> keyData = new ArrayList<Object>();
if (i == 0) {
- keyData.add(Integer.toString(mouseDownTime.getSec()
- + insertDBRid++));
- keyData.add(Integer.toString(MESSAGE_ID));
- keyData.add(Integer.toString(sequenceNaumber));
- keyData.add(itemMouseDownTime);
- keyData.add(Long.toString(mouseDownTime.getSec()));
- keyData.add(Long.toString(mouseDownTime.getNano()));
- keyData.add("0");
- keyData.add(Integer.toString(TOUCH));
- keyData.add(Integer
- .toString(TOUCH_EVENT_CODE_MOUSED_DOWN_START));
- keyData.add(Integer.toString(insertkeySequence++));
+ keyData.add(mouseDownTime.getSec() + insertDBRid++);
+ keyData.add(MESSAGE_ID);
+ keyData.add(sequenceNaumber);
+ keyData.add(Long.parseLong(itemMouseDownTime));
+ keyData.add(mouseDownTime.getSec());
+ keyData.add(mouseDownTime.getNano());
+ keyData.add(0);
+ keyData.add(TOUCH);
+ keyData.add(TOUCH_EVENT_CODE_MOUSED_DOWN_START);
+ keyData.add(insertkeySequence++);
} else if (i == 1) {
- keyData.add(Integer.toString(mouseDownTime.getSec()
- + insertDBRid++));
- keyData.add(Integer.toString(MESSAGE_ID));
- keyData.add(Integer.toString(sequenceNaumber));
- keyData.add(itemMouseDownTime);
- keyData.add(Long.toString(mouseDownTime.getSec()));
- keyData.add(Long.toString(mouseDownTime.getNano()));
- keyData.add("0");
- keyData.add(Integer.toString(TOUCH));
- keyData.add(Integer.toString(TOUCH_EVENT_CODE_SECOND_ITEM));
- keyData.add(Integer.toString(TOUCH_EVENT_VALUE_SECOND_ITEM));
+ keyData.add(mouseDownTime.getSec() + insertDBRid++);
+ keyData.add(MESSAGE_ID);
+ keyData.add(sequenceNaumber);
+ keyData.add(Long.parseLong(itemMouseDownTime));
+ keyData.add(mouseDownTime.getSec());
+ keyData.add(mouseDownTime.getNano());
+ keyData.add(0);
+ keyData.add(TOUCH);
+ keyData.add(TOUCH_EVENT_CODE_SECOND_ITEM);
+ keyData.add(TOUCH_EVENT_VALUE_SECOND_ITEM);
} else if (i == 2) {
- keyData.add(Integer.toString(mouseDownTime.getSec()
- + insertDBRid++));
- keyData.add(Integer.toString(MESSAGE_ID));
- keyData.add(Integer.toString(sequenceNaumber));
- keyData.add(itemMouseDownTime);
- keyData.add(Long.toString(mouseDownTime.getSec()));
- keyData.add(Long.toString(mouseDownTime.getNano()));
- keyData.add("0");
- keyData.add(Integer.toString(TOUCH));
- keyData.add(Integer.toString(TOUCH_EVENT_CODE_X));
+ keyData.add(mouseDownTime.getSec() + insertDBRid++);
+ keyData.add(MESSAGE_ID);
+ keyData.add(sequenceNaumber);
+ keyData.add(Long.parseLong(itemMouseDownTime));
+ keyData.add(mouseDownTime.getSec());
+ keyData.add(mouseDownTime.getNano());
+ keyData.add(0);
+ keyData.add(TOUCH);
+ keyData.add(TOUCH_EVENT_CODE_X);
keyData.add(getDBPoint(itemValue1));
} else if (i == 3) {
- keyData.add(Integer.toString(mouseDownTime.getSec()
- + insertDBRid++));
- keyData.add(Integer.toString(MESSAGE_ID));
- keyData.add(Integer.toString(sequenceNaumber));
- keyData.add(itemMouseDownTime);
- keyData.add(Long.toString(mouseDownTime.getSec()));
- keyData.add(Long.toString(mouseDownTime.getNano()));
- keyData.add("0");
- keyData.add(Integer.toString(TOUCH));
- keyData.add(Integer.toString(TOUCH_EVENT_CODE_Y));
+ keyData.add(mouseDownTime.getSec() + insertDBRid++);
+ keyData.add(MESSAGE_ID);
+ keyData.add(sequenceNaumber);
+ keyData.add(Long.parseLong(itemMouseDownTime));
+ keyData.add(mouseDownTime.getSec());
+ keyData.add(mouseDownTime.getNano());
+ keyData.add(0);
+ keyData.add(TOUCH);
+ keyData.add(TOUCH_EVENT_CODE_Y);
keyData.add(getDBPoint(itemValue2));
} else if (i == 4) {
- keyData.add(Integer.toString(mouseDownTime.getSec()
- + insertDBRid++));
- keyData.add(Integer.toString(MESSAGE_ID));
- keyData.add(Integer.toString(sequenceNaumber));
- keyData.add(itemMouseDownTime);
- keyData.add(Long.toString(mouseDownTime.getSec()));
- keyData.add(Long.toString(mouseDownTime.getNano()));
- keyData.add("0");
- keyData.add("0");
- keyData.add("0");
- keyData.add("0");
+ keyData.add(mouseDownTime.getSec() + insertDBRid++);
+ keyData.add(MESSAGE_ID);
+ keyData.add(sequenceNaumber);
+ keyData.add(Long.parseLong(itemMouseDownTime));
+ keyData.add(mouseDownTime.getSec());
+ keyData.add(mouseDownTime.getNano());
+ keyData.add(0);
+ keyData.add(0);
+ keyData.add(0);
+ keyData.add(0);
} else if (i == 5) {
- keyData.add(Integer.toString(mouseDownTime.getSec()
- + insertDBRid++));
- keyData.add(Integer.toString(MESSAGE_ID));
- keyData.add(Integer.toString(sequenceNaumber));
- keyData.add(itemMouseUpTime);
- keyData.add(Long.toString(mouseUpTime.getSec()));
- keyData.add(Long.toString(mouseUpTime.getNano()));
- keyData.add("0");
- keyData.add(Integer.toString(TOUCH));
- keyData.add(Integer.toString(TOUCH_EVENT_CODE_MOUSED_UP_START));
- keyData.add("-1");
+ keyData.add(mouseDownTime.getSec() + insertDBRid++);
+ keyData.add(MESSAGE_ID);
+ keyData.add(sequenceNaumber);
+ keyData.add(Long.parseLong(itemMouseDownTime));
+ keyData.add(mouseUpTime.getSec());
+ keyData.add(mouseUpTime.getNano());
+ keyData.add(0);
+ keyData.add(TOUCH);
+ keyData.add(TOUCH_EVENT_CODE_MOUSED_UP_START);
+ keyData.add(-1);
} else if (i == 6) {
- keyData.add(Integer.toString(mouseDownTime.getSec()
- + insertDBRid++));
- keyData.add(Integer.toString(MESSAGE_ID));
- keyData.add(Integer.toString(sequenceNaumber));
- keyData.add(itemMouseUpTime);
- keyData.add(Long.toString(mouseUpTime.getSec()));
- keyData.add(Long.toString(mouseUpTime.getNano()));
- keyData.add("0");
- keyData.add("0");
- keyData.add("0");
- keyData.add("0");
+ keyData.add(mouseDownTime.getSec() + insertDBRid++);
+ keyData.add(MESSAGE_ID);
+ keyData.add(sequenceNaumber);
+ keyData.add(Long.parseLong(itemMouseDownTime));
+ keyData.add(mouseUpTime.getSec());
+ keyData.add(mouseUpTime.getNano());
+ keyData.add(0);
+ keyData.add(0);
+ keyData.add(0);
+ keyData.add(0);
}
dbKeyDataList.add(keyData);
}