add some field for Project class (config history, device info, application info)
rename TargetInfo to ComponentInfo
Change-Id: I6d4e076d6ac00dc151a5b417586a592156d81306
Signed-off-by: greatim <jaewon81.lim@samsung.com>
import org.tizen.dynamicanalyzer.model.DeviceInfo;
import org.tizen.dynamicanalyzer.project.AppInfo;
import org.tizen.dynamicanalyzer.project.Project;
+import org.tizen.dynamicanalyzer.swap.channel.control.RunTimeConfiguration;
// This class is for global information that can be accessed from anywhere in dynamic analyzer code.
// So this class contains only static methods and variables.
private static DeviceInfo currentDevice = null;
private static AppInfo currentApplication = null;
private static Project currentProject = null;
+ private static RunTimeConfiguration currentConfiguration = null;
public static DeviceInfo getCurrentDeviceInfo() {
return currentDevice;
public static void setCurrentApplication(AppInfo appInfo) {
currentApplication = appInfo;
}
+
+ public static RunTimeConfiguration getCurrentConfiguration() {
+ return currentConfiguration;
+ }
+
+ public static void setCurrentConfiguration(
+ RunTimeConfiguration currentConfig) {
+ currentConfiguration = currentConfig;
+ }
}
import org.tizen.dynamicanalyzer.resources.ImageResources;
import org.tizen.dynamicanalyzer.sql.SqlManager;
import org.tizen.dynamicanalyzer.swap.callstack.BaseCallstackManager;
-import org.tizen.dynamicanalyzer.swap.channel.control.TargetInfo;
+import org.tizen.dynamicanalyzer.swap.channel.control.ComponentInfo;
import org.tizen.dynamicanalyzer.swap.channel.data.ApiNameManager;
import org.tizen.dynamicanalyzer.swap.channel.data.DataChannelConstants;
import org.tizen.dynamicanalyzer.swap.channel.data.LibraryObject;
isSuccess = false;
} else {
List<String> info = dbInfo.get(0);
- TargetInfo targetInfo = new TargetInfo();
+ ComponentInfo targetInfo = new ComponentInfo();
targetInfo.loadSaveFormat(info);
- GlobalInformation.getCurrentDeviceInfo().setTargetInfo(targetInfo);
+ GlobalInformation.getCurrentDeviceInfo().setComponentInfo(targetInfo);
}
List<String> pids = SqlManager.getInstance().getPids();
coreCount = i + 1;
}
if (coreCount != 0) {
- GlobalInformation.getCurrentDeviceInfo().getTargetInfo()
+ GlobalInformation.getCurrentDeviceInfo().getComponentInfo()
.setCpuCount(coreCount);
}
byte[] cpuFrequency = new byte[temp.length];
import org.tizen.dynamicanalyzer.constant.CommonConstants;
import org.tizen.dynamicanalyzer.project.AppInfo;
import org.tizen.dynamicanalyzer.project.PackageInfo;
-import org.tizen.dynamicanalyzer.swap.channel.control.TargetInfo;
+import org.tizen.dynamicanalyzer.swap.channel.control.ComponentInfo;
import org.tizen.dynamicanalyzer.swap.communicator.Communicator30;
import org.tizen.dynamicanalyzer.ui.info.screenshot.EmulatorScreenshot;
import org.tizen.dynamicanalyzer.util.CommonUtil;
private HashMap<String, PackageInfo> pkgInfoHash = null;
private List<String> apiList = null;
- private TargetInfo targetInfo = null;
+ private ComponentInfo componentInfo = null;
/*** for version 3.0 */
private int remotePort = -1;
appInfoList = new ArrayList<AppInfo>();
appInfoHash = new HashMap<String, AppInfo>();
pkgInfoHash = new HashMap<String, PackageInfo>();
- targetInfo = new TargetInfo();
+ componentInfo = new ComponentInfo();
apiList = CommunicatorUtils.getApiMap(device);
}
return false;
}
- public void setTargetInfo(TargetInfo info) {
- targetInfo = info;
+ public void setComponentInfo(ComponentInfo info) {
+ componentInfo = info;
}
- public TargetInfo getTargetInfo() {
- return targetInfo;
+ public ComponentInfo getComponentInfo() {
+ return componentInfo;
}
public void closeAllSocket() {
import org.tizen.dynamicanalyzer.database.SqlConnectionManager;
import org.tizen.dynamicanalyzer.model.DeviceInfo;
import org.tizen.dynamicanalyzer.sql.SqlManager;
+import org.tizen.dynamicanalyzer.swap.channel.control.ComponentInfo;
+import org.tizen.dynamicanalyzer.swap.channel.control.RunTimeConfiguration;
import org.tizen.dynamicanalyzer.swap.channel.data.ProcessInfo;
import org.tizen.dynamicanalyzer.swap.channel.data.ProcessInfoPackage;
import org.tizen.dynamicanalyzer.swap.logparser.DataManagerRegistry;
private Map<Integer, ProcessInfoPackage> processInfoPackageMap = new HashMap<Integer, ProcessInfoPackage>();
+ private List<RunTimeConfiguration> configHistory = new ArrayList<RunTimeConfiguration>();
+
+ private ComponentInfo targetDeviceComponentInfo = null;
+ private AppInfo targetApplicationInfo = null;
+
// for performance
private DATime profileStartTimeCache = null;
Double.toString(protocolVersion));
}
- public void setCoreCount(int count) {
- GlobalInformation.getCurrentDeviceInfo().getTargetInfo()
- .setCpuCount(count);
+ public void addConfigHistory(RunTimeConfiguration config) {
+ if (config != null) {
+ synchronized (configHistory) {
+ configHistory.add(config);
+ }
+ }
}
- public int getCoreCount() {
- return GlobalInformation.getCurrentDeviceInfo().getTargetInfo()
- .getCpuCount();
+ public ComponentInfo getDeviceComponentInfo() {
+ return targetDeviceComponentInfo;
}
- public int getMaxBrightness() {
- return GlobalInformation.getCurrentDeviceInfo().getTargetInfo()
- .getMaxBrightness();
+ public void setDeviceComponentInfo(ComponentInfo comInfo) {
+ targetDeviceComponentInfo = comInfo;
}
- public long getSystemMemorySize() {
- return GlobalInformation.getCurrentDeviceInfo().getTargetInfo()
- .getSystemMemorySize();
+ public AppInfo getApplicationInfo() {
+ return targetApplicationInfo;
}
+ public void setApplicationInfo(AppInfo appInfo) {
+ targetApplicationInfo = appInfo;
+ }
+
+ // this init() function called only when trace is started.
public void init() {
if (null == GlobalInformation.getCurrentApplication()) {
String comboText = ToolbarArea.getInstance().getAppCombo()
GlobalInformation.getCurrentDeviceInfo().getCommunicator()
.onAppSelected(appInfo);
}
+
+ setDeviceComponentInfo(GlobalInformation.getCurrentDeviceInfo()
+ .getComponentInfo());
+ setApplicationInfo(GlobalInformation.getCurrentApplication());
+ RunTimeConfiguration currentConfig = GlobalInformation
+ .getCurrentConfiguration();
+ if (currentConfig != null) {
+ addConfigHistory(currentConfig);
+ }
+
setAppName(GlobalInformation.getCurrentApplication().getInfo(
AppInfo.LABEL_INDEX));
setPkgId(GlobalInformation.getCurrentApplication().getInfo(
import org.tizen.dynamicanalyzer.logparser.LogCenterConstants;
import org.tizen.dynamicanalyzer.project.Project;
import org.tizen.dynamicanalyzer.swap.callstack.BaseCallstackManager;
-import org.tizen.dynamicanalyzer.swap.channel.control.TargetInfo;
+import org.tizen.dynamicanalyzer.swap.channel.control.ComponentInfo;
import org.tizen.dynamicanalyzer.swap.channel.data.ApiNameManager;
import org.tizen.dynamicanalyzer.swap.channel.data.DataChannelConstants;
import org.tizen.dynamicanalyzer.swap.channel.data.LibraryObject;
String insertQuery = info.insertQuery();
if (insertQuery != null) {
- TargetInfo targetInfo = GlobalInformation.getCurrentDeviceInfo()
- .getTargetInfo();
+ ComponentInfo targetInfo = GlobalInformation.getCurrentDeviceInfo()
+ .getComponentInfo();
List<String> insetRowData = new ArrayList<String>();
insetRowData.add(Long.toString(targetInfo.getSystemMemorySize()));
import java.util.List;
-public class TargetInfo {
+public class ComponentInfo {
private long systemMemorySize = 0;
private long storageSize = 0;
private int bluetoothSupport = -1;
private long nullFeatures = 0;
private int systemTracePeriod = 1000;
private int samplingPeriod = 10;
+ private long applyTime = 0;
public void setFeatures(long low, long high) {
lowFeatures = low;
public void setSamplingPeriod(int samplingPeriod) {
this.samplingPeriod = samplingPeriod;
}
+
+ public long getApplyTime() {
+ return applyTime;
+ }
+
+ public void setApplyTime(long applyTime) {
+ this.applyTime = applyTime;
+ }
}
import org.tizen.dynamicanalyzer.swap.channel.control.BinaryInfo;
import org.tizen.dynamicanalyzer.swap.channel.control.FunctionInst;
import org.tizen.dynamicanalyzer.swap.channel.control.RunTimeConfiguration;
-import org.tizen.dynamicanalyzer.swap.channel.control.TargetInfo;
+import org.tizen.dynamicanalyzer.swap.channel.control.ComponentInfo;
import org.tizen.dynamicanalyzer.swap.channel.control.UserSpaceInst;
import org.tizen.dynamicanalyzer.swap.logparser.DataManagerRegistry;
import org.tizen.dynamicanalyzer.swap.logparser.SWAPLogParser;
DACommunicator.setRunning(true);
UserSpaceInst userSpaceInst = getUserSpaceInst();
DA_LOG.performance("TEST", "Start Trace", "Set application inst");
-
+
byte[] replayData;
// create replay data
if (ReplayTraceHandler.isReplay) {
replayData = ByteUtil.getByte(ReplayTraceHandler.REPLAY_OFF);
}
- byte[] rear = ByteUtil.getByte(userSpaceInst.toByteStream(),
- replayData);
+ byte[] rear = ByteUtil
+ .getByte(userSpaceInst.toByteStream(), replayData);
int length = rear.length;
- byte[] ret = ByteUtil.getByte(AnalyzerConstants.MSG_START_SWAP,
- length, rear);
+ byte[] ret = ByteUtil.getByte(AnalyzerConstants.MSG_START_SWAP, length,
+ rear);
DA_LOG.debug("print start message");
// ByteUtils.printByteArrayForStart(ret);
public HostResult sendBinaryInfoMessage(AppInfo selectedApp) {
// send config message
- byte[] msgBinInfo = ByteUtil
- .toBytes(AnalyzerConstants.MSG_BINARY_INFO);
+ byte[] msgBinInfo = ByteUtil.toBytes(AnalyzerConstants.MSG_BINARY_INFO);
PackageInfo pkgInfo = GlobalInformation.getCurrentDeviceInfo()
.getPackageInfoHash()
if (result.isSuccess()) {
if (isCorrectAck(MSG_CONFIG_ACK, result)) {
+ if (AnalyzerManager.isRunning()) {
+ rt.setApplyTime(ToolbarArea.getInstance().getTime());
+ AnalyzerManager.getProject().addConfigHistory(rt);
+ } else {
+ rt.setApplyTime(0); // set time of configuration to zero
+ }
+
+ GlobalInformation.setCurrentConfiguration(rt);
return result;
}
}
int index = INT_SIZE * 3;
if (isCorrectAck(MSG_TARGET_INFO_ACK, result)) {
- TargetInfo info = processTargetInfo(data, index);
- device.setTargetInfo(info);
+ ComponentInfo info = processTargetInfo(data, index);
+ device.setComponentInfo(info);
return result;
}
}
return GlobalInformation.getCurrentDeviceInfo().getDataSock();
}
- private TargetInfo processTargetInfo(byte[] payload, int index) {
- TargetInfo tInfo = new TargetInfo();
+ private ComponentInfo processTargetInfo(byte[] payload, int index) {
+ ComponentInfo tInfo = new ComponentInfo();
long systemMemorySize = 0;
long storageSize = 0;
public void makeData(byte[] data) {
super.makeData(data);
// index = MessageParser.MSG_HEADER_SIZE;
- int coreCount = GlobalInformation.getCurrentDeviceInfo().getTargetInfo()
+ int coreCount = GlobalInformation.getCurrentDeviceInfo().getComponentInfo()
.getCpuCount();
- int deviceCount = GlobalInformation.getCurrentDeviceInfo().getTargetInfo()
+ int deviceCount = GlobalInformation.getCurrentDeviceInfo().getComponentInfo()
.getDeviceCount();
cpuFrequency = parseCpu(index, data);
}
private static String parseCpu(int start, byte[] payload) {
- int coreCount = GlobalInformation.getCurrentDeviceInfo().getTargetInfo()
+ int coreCount = GlobalInformation.getCurrentDeviceInfo().getComponentInfo()
.getCpuCount();
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < coreCount; i++) {
}
private static String parseUsage(int start, byte[] payload) {
- int count = GlobalInformation.getCurrentDeviceInfo().getTargetInfo()
+ int count = GlobalInformation.getCurrentDeviceInfo().getComponentInfo()
.getDeviceCount();
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < count; i++) {
* Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
*
* Contact:
- * Jooyoul Lee <jy.exe.lee@samsung.com>
+ * Jaewon Lim <jaewon81.lim@samsung.com>
* Juyoung Kim <j0.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
import org.tizen.dynamicanalyzer.swap.logparser.DataManagerRegistry;
import org.tizen.dynamicanalyzer.swap.model.data.LogData;
import org.tizen.dynamicanalyzer.swap.model.data.SystemData;
-import org.tizen.dynamicanalyzer.ui.file.FilePage;
import org.tizen.dynamicanalyzer.ui.opengl.GLPage;
import org.tizen.dynamicanalyzer.ui.page.ScreenshotTabComposite;
-import org.tizen.dynamicanalyzer.ui.range.RangePage;
-import org.tizen.dynamicanalyzer.ui.summary.SummaryPage;
import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
-import org.tizen.dynamicanalyzer.ui.userinterface.UIPage;
import org.tizen.dynamicanalyzer.ui.widgets.table.DATableComposite;
import org.tizen.dynamicanalyzer.ui.widgets.table.DATableDataFormat;
import org.tizen.dynamicanalyzer.ui.widgets.table.DATreeComposite;
cpuUsage.add(value);
}
- long totalMem = AnalyzerManager.getProject().getSystemMemorySize();
+ long totalMem = AnalyzerManager.getProject().getDeviceComponentInfo()
+ .getSystemMemorySize();
maxMem = totalMem;
-
+
/*
- * TODO interface of SystemData is changed(by jungwook). removed getResidentMemory().
- * residentMemory is possible one more per multi process.
+ * TODO interface of SystemData is changed(by jungwook). removed
+ * getResidentMemory(). residentMemory is possible one more per multi
+ * process.
*/
-// processMem = ((SystemData) input).getResidentMemory();
+ // processMem = ((SystemData) input).getResidentMemory();
}
@Override
Project project = AnalyzerManager.getProject();
if (project != null)
- maxMem = project.getSystemMemorySize();
+ maxMem = project.getDeviceComponentInfo().getSystemMemorySize();
processMem = dataManager.getLastProcessMemory();
lastStartTime = dataManager.getLastStartTime();
setStartTime(lastStartTime);
if (GlobalInformation.getCurrentDeviceInfo() == null) {
return;
}
- int coreSize = GlobalInformation.getCurrentDeviceInfo().getTargetInfo()
+ int coreSize = GlobalInformation.getCurrentDeviceInfo().getComponentInfo()
.getCpuCount();
Collection<DAChartSeries> processSeries = childSeriesMap.values();
if (GlobalInformation.getCurrentDeviceInfo() == null) {
return;
}
- coreSize = GlobalInformation.getCurrentDeviceInfo().getTargetInfo()
+ coreSize = GlobalInformation.getCurrentDeviceInfo().getComponentInfo()
.getCpuCount();
for (int i = 0; i < coreSize; i++) {
DAChartSeries chartSeries = new DAChartSeries(
if (GlobalInformation.getCurrentDeviceInfo() == null) {
return;
}
- coreSize = GlobalInformation.getCurrentDeviceInfo().getTargetInfo().getCpuCount();
+ coreSize = GlobalInformation.getCurrentDeviceInfo().getComponentInfo().getCpuCount();
for (int i = 0; i < coreSize; i++) {
DAChartSeries chartSeries =
new DAChartSeries(TimelineChartLabels.CPU_CORE_CHART_SERIES_NAME_CORE + i,
chart.addSeries(energyUsageSeries);
String[] deviceList =
- GlobalInformation.getCurrentDeviceInfo().getTargetInfo().getDevices()
+ GlobalInformation.getCurrentDeviceInfo().getComponentInfo().getDevices()
.split(CommonConstants.COMMA);
for (String device : deviceList) {
deviceUsageSeriesList.add(new DAChartSeries(device,
return;
}
- long systemMemorySize = GlobalInformation.getCurrentDeviceInfo().getTargetInfo().getSystemMemorySize();
+ long systemMemorySize = GlobalInformation.getCurrentDeviceInfo().getComponentInfo().getSystemMemorySize();
@SuppressWarnings("unchecked")
List<List<Object>> systemData = (List<List<Object>>)dataList.get(TimelineConstants.SYSTEM_DB_DATA);
}
private void makeSystemDataTableData(Logs systemLogs, Logs memoryLogs) {
- int coreSize = GlobalInformation.getCurrentDeviceInfo().getTargetInfo().getCpuCount();
+ int coreSize = GlobalInformation.getCurrentDeviceInfo().getComponentInfo().getCpuCount();
List<LogData> memoryLogList = memoryLogs == null ? null : memoryLogs.getRawLogs();
List<LogData> systemLogList = systemLogs == null ? null : systemLogs.getRawLogs();
return processedResult;
}
- int cpuCount = GlobalInformation.getCurrentDeviceInfo().getTargetInfo().getCpuCount();
+ int cpuCount = GlobalInformation.getCurrentDeviceInfo().getComponentInfo().getCpuCount();
for (int i = 0; i < cpuCount; i++) {
List<Object> cpuLoads = new ArrayList<Object>();
processedResult.add(cpuLoads);
return processedResult;
}
- int deviceCount = GlobalInformation.getCurrentDeviceInfo().getTargetInfo().getDeviceCount();
+ int deviceCount = GlobalInformation.getCurrentDeviceInfo().getComponentInfo().getDeviceCount();
for (int i = 0; i < deviceCount; i++) {
List<Object> energyPerDevice = new ArrayList<Object>();
processedResult.add(energyPerDevice);