nameCell.addMouseListener(new MouseListener() {
@Override
public void mouseUp(MouseEvent e) {
+ parent.callbackSelect(true);
}
@Override
public void mouseDown(MouseEvent e) {
- parent.callbackSelect(true);
+ //parent.callbackSelect(true);
}
@Override
public class DBConstants {
// options constant
public static final String EMPTY = CommonConstants.EMPTY;
+ public static final String PRIMARY_KEY = "PRIMARY KEY NOT NULL";//$NON-NLS-1$
public static final String NOT_NULL = "not null";//$NON-NLS-1$
// types type constant
import org.tizen.dynamicanalyzer.swap.channel.data.ProcessInfoPackage;\r
import org.tizen.dynamicanalyzer.ui.info.callstack.CallStackData;\r
import org.tizen.dynamicanalyzer.ui.info.callstack.CallStackUnit;\r
+import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager;\r
import org.tizen.dynamicanalyzer.ui.range.RangeDataManager;\r
import org.tizen.dynamicanalyzer.ui.range.RangePage;\r
import org.tizen.dynamicanalyzer.ui.summary.failed.FailedChecker;\r
import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;\r
import org.tizen.dynamicanalyzer.ui.toolbar.opentrace.OpenTraceProgressManager;\r
import org.tizen.dynamicanalyzer.ui.userinterface.UIDataManager;\r
+import org.tizen.dynamicanalyzer.util.DALogger;\r
import org.tizen.dynamicanalyzer.util.WorkbenchUtil;\r
import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;\r
-import org.tizen.dynamicanalyzer.util.DALogger;\r
import org.tizen.dynamicanalyzer.widgets.combo.DACustomCombo;\r
import org.tizen.dynamicanalyzer.widgets.da.base.DADialog;\r
import org.tizen.dynamicanalyzer.widgets.da.view.DAPageComposite;\r
OpenTraceProgressManager.getInstance().runThreads();\r
OpenTraceProgressManager.getInstance().openTraceComplete();\r
SqlManager.getInstance().closeConnection();\r
+ \r
+ NetworkDataManager.getInstance().openProcess();\r
return null;\r
}\r
\r
public static String NETWORK_CHART_SERIES;
public static String NETWORK_CHART_API;
public static String NETWORK_CHART_ACCESS;
+ public static String NETWORK_CHILD_CHART_NAME;
public static String NETWORK_CHART_TOOLTIP_FD_OPEND;
public static String NETWORK_CHART_TOOLTIP_CONNECTED;
public static String NETWORK_CHART_CLIENT_NAME;
public static String NETWORK_CHART_SESSION_NAME;
public static String NETWORK_CHART_TRANSACTION_NAME;
+
+ public static String NETWORK_DB_RID;
+ public static String NETWORK_DB_DESTINATION_ADDRESS;
+ public static String NETWORK_DB_FD_VALUE;
+ public static String NETWORK_DB_API_ID;
+
+ public static String NETWORK_API_DB_TABLENAME;
+ public static String NETWORK_API_DB_API_TIME;
+
+ public static String NETWORK_API_DB_ERRNO;
+ public static String NETWORK_API_DB_ARGUMENT;
+ public static String NETWORK_API_DB_RETURN;
+ public static String NETWORK_API_DB_BYTE_SIZE;
+ public static String NETWORK_API_DB_PAYLOAD;
+ public static String NETWORK_API_DB_API_TYPE;
+ public static String NETWORK_API_DB_CALLER_PC_ADDRESS;
+ public static String NETWORK_API_DB_LIB_NAME;
+
+ public static String NETWORK_SERIES_DB_TABLENAME;
+ public static String NETWORK_SERIES_DB_START_TIME;
+ public static String NETWORK_SERIES_DB_END_TIME;
+ public static String NETWORK_SERIES_DB_STATUS_TYPE;
+
+
public static String TIME_MS;
NETWORK_CHART=Network
NETWORK_CHART_NOTCONNECT= Unknown\n Address
+NETWORK_CHILD_CHART_NAME =FD :
NETWORK_DETAILS_TITLE=Network Details
-NETWORK_DETAILS_ADDRESS=Address :
-NETWORK_DETAILS_TOTAL_SIZE=Packet size :
-NETWORK_DETAILS_RECV_SIZE=Recv size :
-NETWORK_DETAILS_SEND_SIZE=Send size :
-NETWORK_DETAILS_TOTAL_USE_TIME=Usage time :
-NETWORK_DETAILS_API_COUNT=API count :
-NETWORK_DETAILS_FAILED_API_COUNT=Failed API count :
+NETWORK_DETAILS_ADDRESS=Address :
+NETWORK_DETAILS_TOTAL_SIZE=Packet size :
+NETWORK_DETAILS_RECV_SIZE=Recv size :
+NETWORK_DETAILS_SEND_SIZE=Send size :
+NETWORK_DETAILS_TOTAL_USE_TIME=Usage time :
+NETWORK_DETAILS_API_COUNT=API count :
+NETWORK_DETAILS_FAILED_API_COUNT=Failed API count :
NETWORK_DETAILS_NAME_NEWLINE=Network name : \n
-NETWORK_DETAILS_PAYLOAD_ASCII=Payload(Ascii)
+NETWORK_DETAILS_PAYLOAD_ASCII=Payload(Ascii)
NETWORK_DETAILS_PAYLOAD_HEXCODE=Payload(Hex Code)
-NETWORK_DETAILS_SEND_ACK_TIME=send ack time :
+NETWORK_DETAILS_SEND_ACK_TIME=send ack time :
NETWORK_CHART_SERIES=STATE
NETWORK_CHART_API=API List
NETWORK_CHART_SESSION_NAME=Session
NETWORK_CHART_TRANSACTION_NAME=Transaction
-TIME_MS = ms
\ No newline at end of file
+TIME_MS = ms
+
+NETWORK_DB_RID = "RID"
+NETWORK_DB_DESTINATION_ADDRESS = DESTINATION_ADDRESS
+NETWORK_DB_FD_VALUE = FD_VALUE
+NETWORK_DB_API_ID = API_ID
+
+NETWORK_API_DB_TABLENAME = NETWORK_API
+NETWORK_API_DB_API_TIME = API_TIME
+NETWORK_API_DB_ERRNO = ERRNO
+NETWORK_API_DB_ARGUMENT = ARGUMENT
+NETWORK_API_DB_RETURN = RETURN
+NETWORK_API_DB_BYTE_SIZE = BYTE_SIZE
+NETWORK_API_DB_PAYLOAD = PAYLOAD
+NETWORK_API_DB_API_TYPE = API_TYPE
+NETWORK_API_DB_CALLER_PC_ADDRESS = CALLER_PC_ADDRESS
+NETWORK_API_DB_LIB_NAME = LIB_NAME
+
+NETWORK_SERIES_DB_TABLENAME = NETWORK_SERIES
+NETWORK_SERIES_DB_START_TIME = START_TIME
+NETWORK_SERIES_DB_END_TIME = END_TIME
+NETWORK_SERIES_DB_STATUS_TYPE = STATUS_TYPE
\ No newline at end of file
// private static final int PERMIT = 1;
// private Semaphore semaphore = new Semaphore(PERMIT);
private static final DALogger DA_LOG = DALogger.getInstance();
-
+
private static SqlManager instance = null;
private Connection connection = null;
return;
} else {
try {
-// Statement st = connection.createStatement();
-// st.execute("SHUTDOWN");
-// CommonUtil.tryClose(st);
+ // Statement st = connection.createStatement();
+ // st.execute("SHUTDOWN");
+ // CommonUtil.tryClose(st);
connection.close();
} catch (SQLException se) {
if (!se.getSQLState().equals("XJ015")) {
}
}
-// System.out.println("dddd : " + query.toString());
+ // System.out.println("dddd : " + query.toString());
return query.toString();
}
List<DBTableInfo> tableInfos = dbManager.getTableInfos();
for (DBTableInfo info : tableInfos) {
if (!executeUpdateCreateTable(stat, info.createQuery())) {
- DA_LOG.debug("table create failed..."
- + info.getTableName());
+ DA_LOG.debug("table create failed..." + info.getTableName());
}
}
} catch (SQLException e) {
long objectAddress = 0;
long fdValue = 0;
- int fdApiType = 0;
+ protected int fdApiType = 0;
int destinationIPAddress = 0;
int destinationPortAddress = 0;
- String packetMessage = CommonConstants.EMPTY;
- int messageSize = 0;
+ protected String packetMessage = CommonConstants.EMPTY;
+ protected int messageSize = 0;
public long getObjectAddress() {
return objectAddress;
--- /dev/null
+/*
+ * Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Hyunjong Park <phjwithyou.park@samsung.com>
+ * yeongtaik byeon <yeongtaik.byeon@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.network;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.swt.graphics.Color;
+import org.tizen.dynamicanalyzer.constant.CommonConstants;
+import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
+import org.tizen.dynamicanalyzer.resources.ColorResources;
+import org.tizen.dynamicanalyzer.swap.channel.data.ApiNameManager;
+import org.tizen.dynamicanalyzer.ui.network.data.StatusSeriesListSortComparator;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkAPIType;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkSeriesType;
+import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
+import org.tizen.dynamicanalyzer.widgets.chart.DAChart;
+import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeries;
+import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeriesItem;
+import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem;
+
+public class NetworkChart {
+ protected DAChartBoardItem item;
+ protected DAChart chart;
+ private List<NetworkChart> children = new ArrayList<NetworkChart>();
+
+ private DAChartSeries statueSeries;
+ private DAChartSeries apiSeries;
+ private DAChartSeries accessSeries;
+
+ private String chartName = CommonConstants.EMPTY;
+ private String destinationAddress = CommonConstants.EMPTY;
+ private String fdValue = CommonConstants.EMPTY;
+
+ public NetworkChart(String chartName, String destinationAddress,
+ String fdValue, DAChartBoardItem item, DAChart chart) {
+ setChartName(chartName);
+ setDestinationAddress(destinationAddress);
+ setFdValue(fdValue);
+ setItem(item);
+ setChart(chart);
+ }
+
+ public String getChartName() {
+ return chartName.trim();
+ }
+
+ public void setChartName(String chartName) {
+ this.chartName = chartName;
+ }
+
+ public String getDestinationAddress() {
+ return destinationAddress.trim();
+ }
+
+ public void setDestinationAddress(String destinationAddress) {
+ this.destinationAddress = destinationAddress;
+ }
+
+ public String getFdValue() {
+ return fdValue.trim();
+ }
+
+ public void setFdValue(String fdValue) {
+ this.fdValue = fdValue;
+ }
+
+ public boolean isParentChartRow() {
+ if (children.size() > 0) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public void pushChild(NetworkChart data) {
+ children.add(data);
+ }
+
+ public void setItem(DAChartBoardItem item) {
+ this.item = item;
+ setChart(item.getChart());
+ apiSeries = chart.getSeries(NetworkPageLabels.NETWORK_CHART_API);
+ accessSeries = chart.getSeries(NetworkPageLabels.NETWORK_CHART_ACCESS);
+ statueSeries = chart.getSeries(NetworkPageLabels.NETWORK_CHART_SERIES);
+ }
+
+ public DAChartBoardItem getItem() {
+ return item;
+ }
+
+ public DAChart getChart() {
+ return chart;
+ }
+
+ public void setChart(DAChart chart) {
+ this.chart = chart;
+ }
+
+ public void clearSeries() {
+ apiSeries.clear();
+ statueSeries.clear();
+ }
+
+ public void updateApiSeries(List<NetworkAPIType> apiList) {
+ for (int i = 0; i < apiList.size(); i++) {
+ if (getDestinationAddress().equals(
+ apiList.get(i).getDestinationAddress())) {
+ if (!isParentChartRow()
+ && !getFdValue().equals(apiList.get(i).getFdStr())) {
+ continue;
+ }
+ NetworkAPIType data = apiList.get(i);
+ DAChartSeriesItem seriesItem = null;
+ double time = data.getTime() / TimelineConstants.MEGA_DOUBLE;
+ Color color = ColorResources.NETWORK_API_USED;
+ String apiName = ApiNameManager.getApiName(data.getApiNameID());
+ if (data.getErrno() != 0) {
+ color = ColorResources.NETWORK_API_FAILED;
+ }
+ seriesItem = new DAChartSeriesItem(time,
+ DAChartSeriesItem.SERIES_STATE_BAR, color, apiName);
+ apiSeries.addSeriesItem(seriesItem);
+ }
+ }
+ chart.redraw();
+ }
+
+ private void sortStatusSeriesByStartTime(List<NetworkSeriesType> statusList) {
+ Collections.sort(statusList, new StatusSeriesListSortComparator());
+ }
+
+ public void updateParentChartStatusSeries(List<NetworkSeriesType> statusList) {
+ NetworkSeriesType data = null;
+ double startTime = -1;
+ double endTime = -1;
+
+ double openTimeOfNotClosed = 999999999;
+
+ for (int i = 0; i < statusList.size(); i++) {
+ if (getDestinationAddress().equals(
+ statusList.get(i).getDestinationAddress())) {
+ data = statusList.get(i);
+
+ if (isAccessEvnet(data.getAPIType())) {
+ continue;
+ }
+
+ startTime = data.getStartTime() / TimelineConstants.MEGA_DOUBLE;
+ endTime = data.getEndTime() / TimelineConstants.MEGA_DOUBLE;
+
+ if (endTime > 0 && openTimeOfNotClosed > startTime) { // closed
+ DAChartSeriesItem seriesItem = new DAChartSeriesItem(
+ startTime, DAChartSeriesItem.SERIES_STATE_CONTINUE,
+ ColorResources.NETWORK_AREA_CLOSED_END,
+ ColorResources.NETWORK_AREA_CLOSED_START,
+ NetworkPageLabels.NETWORK_CHART_TOOLTIP_CLOSED);
+ statueSeries.addSeriesItem(seriesItem);
+
+ int nStatusLastIndex = statueSeries.getSeriesItemList()
+ .size() - 1;
+ DAChartSeriesItem endSeriesItem = new DAChartSeriesItem(
+ endTime, DAChartSeriesItem.SERIES_STATE_BAR,
+ ColorResources.NETWORK_AREA_CLOSED_END,
+ ColorResources.NETWORK_AREA_CLOSED_START,
+ NetworkPageLabels.NETWORK_CHART_TOOLTIP_CLOSED);
+ seriesItem.setBarWidth(0);
+ statueSeries.addSeriesItem(seriesItem);
+ statueSeries
+ .getSeriesItemList()
+ .get(nStatusLastIndex)
+ .setTooltipText(
+ NetworkPageLabels.NETWORK_CHART_TOOLTIP_CLOSED);
+ statueSeries.addSeriesItem(endSeriesItem);
+ } else { // open
+ openTimeOfNotClosed = startTime;
+ DAChartSeriesItem seriesItem = new DAChartSeriesItem(
+ startTime, DAChartSeriesItem.SERIES_STATE_CONTINUE,
+ ColorResources.NETWORK_AREA_FD_USED_END,
+ ColorResources.NETWORK_AREA_FD_USED_START,
+ NetworkPageLabels.NETWORK_CHART_TOOLTIP_FD_OPEND);
+ statueSeries.addSeriesItem(seriesItem);
+ }
+ }
+ }
+ chart.redraw();
+ }
+
+ public void updateStatusSeries(List<NetworkSeriesType> statusList) {
+ if (isParentChartRow()) {
+ sortStatusSeriesByStartTime(statusList);
+ updateParentChartStatusSeries(statusList);
+ return;
+ }
+ NetworkSeriesType data = null;
+ double startTime = -1;
+ double endTime = -1;
+
+ for (int i = 0; i < statusList.size(); i++) {
+ if (getDestinationAddress().equals(
+ statusList.get(i).getDestinationAddress())
+ && getFdValue().equals(statusList.get(i).getFdValue())) {
+ data = statusList.get(i);
+
+ if (isAccessEvnet(data.getAPIType())) {
+ continue;
+ }
+ startTime = data.getStartTime() / TimelineConstants.MEGA_DOUBLE;
+ endTime = data.getEndTime() / TimelineConstants.MEGA_DOUBLE;
+
+ }
+ }
+ if (null == data) {
+ return;
+ }
+
+ DAChartSeriesItem seriesItem = new DAChartSeriesItem(startTime,
+ DAChartSeriesItem.SERIES_STATE_CONTINUE,
+ ColorResources.NETWORK_AREA_FD_USED_END,
+ ColorResources.NETWORK_AREA_FD_USED_START,
+ NetworkPageLabels.NETWORK_CHART_TOOLTIP_FD_OPEND);
+ statueSeries.addSeriesItem(seriesItem);
+
+ if (endTime > 0) {
+ int nStatusLastIndex = statueSeries.getSeriesItemList().size() - 1;
+ statueSeries.getSeriesItemList().get(nStatusLastIndex)
+ .setColor(ColorResources.NETWORK_AREA_CLOSED_END);
+ statueSeries
+ .getSeriesItemList()
+ .get(nStatusLastIndex)
+ .setGradationForegroundColor(
+ ColorResources.NETWORK_AREA_CLOSED_START);
+ statueSeries
+ .getSeriesItemList()
+ .get(nStatusLastIndex)
+ .setTooltipText(
+ NetworkPageLabels.NETWORK_CHART_TOOLTIP_CLOSED);
+
+ DAChartSeriesItem endSeriesItem = new DAChartSeriesItem(endTime,
+ DAChartSeriesItem.SERIES_STATE_BAR,
+ ColorResources.NETWORK_AREA_CLOSED_END,
+ ColorResources.NETWORK_AREA_CLOSED_START,
+ NetworkPageLabels.NETWORK_CHART_TOOLTIP_CLOSED);
+ seriesItem.setBarWidth(0);
+ statueSeries.addSeriesItem(seriesItem);
+ statueSeries
+ .getSeriesItemList()
+ .get(nStatusLastIndex)
+ .setTooltipText(
+ NetworkPageLabels.NETWORK_CHART_TOOLTIP_CLOSED);
+ statueSeries.addSeriesItem(endSeriesItem);
+ }
+
+ chart.redraw();
+ }
+
+ public void updateAccessSeries(List<NetworkSeriesType> accessList) {
+ NetworkSeriesType data = null;
+ double startTime = -1;
+ double endTime = -1;
+ for (int i = 0; i < accessList.size(); i++) {
+ if (getDestinationAddress().equals(
+ accessList.get(i).getDestinationAddress())) {
+ if (!isParentChartRow()
+ && !getFdValue().equals(accessList.get(i).getFdValue())) {
+ continue;
+ }
+ data = accessList.get(i);
+ if (null == data) {
+ continue;
+ }
+
+ if (!isAccessEvnet(data.getAPIType())) {
+ continue;
+ }
+ startTime = data.getStartTime() / TimelineConstants.MEGA_DOUBLE;
+ endTime = data.getEndTime() / TimelineConstants.MEGA_DOUBLE;
+ int status = data.getAPIType();
+
+ Color waitiColor = null;
+ if (status == NetworkSeriesType.ACCESS_TYPE_WRITE) {
+ waitiColor = ColorResources.NETWORK_ACCESS_SEND;
+ } else if (status == NetworkSeriesType.ACCESS_TYPE_READ) {
+ waitiColor = ColorResources.NETWORK_ACCESS_RECV;
+ } else {
+ waitiColor = ColorResources.NETWORK_ACCESS_WAIT;
+ }
+
+ DAChartSeriesItem seriesItem = new DAChartSeriesItem(startTime,
+ endTime, waitiColor, ApiNameManager.getApiName(data
+ .getApiID()));
+ accessSeries.addSeriesItem(seriesItem);
+
+ startTime = -1;
+ endTime = -1;
+ }
+ }
+
+ chart.redraw();
+ }
+
+ private boolean isAccessEvnet(int apiType) {
+ {
+ if (apiType == NetworkSeriesType.ACCESS_TYPE_WAIT
+ || apiType == NetworkSeriesType.ACCESS_TYPE_READ
+ || apiType == NetworkSeriesType.ACCESS_TYPE_WRITE) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ }
+}
\ No newline at end of file
--- /dev/null
+/*
+ * Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * 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.network;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.swt.widgets.Composite;
+import org.tizen.dynamicanalyzer.common.AnalyzerManager;
+import org.tizen.dynamicanalyzer.constant.CommonConstants;
+import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
+import org.tizen.dynamicanalyzer.nl.ThreadPageLabels;
+import org.tizen.dynamicanalyzer.nl.TimelineChartLabels;
+import org.tizen.dynamicanalyzer.resources.ColorResources;
+import org.tizen.dynamicanalyzer.resources.FontResources;
+import org.tizen.dynamicanalyzer.resources.ImageResources;
+import org.tizen.dynamicanalyzer.ui.common.PopupAnalysisMenuItemClickListener;
+import org.tizen.dynamicanalyzer.ui.common.PopupClearMenuItemClickListener;
+import org.tizen.dynamicanalyzer.ui.common.PopupEndMenuItemClickListener;
+import org.tizen.dynamicanalyzer.ui.common.PopupFromSelectionMenuItemClickListener;
+import org.tizen.dynamicanalyzer.ui.common.PopupStartMenuItemClickListener;
+import org.tizen.dynamicanalyzer.ui.common.TimelineChartMouseEventListener;
+import org.tizen.dynamicanalyzer.ui.common.TimelineChartMouseTrackAdapter;
+import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkAPIType;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkSelectionType;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkSeriesType;
+import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
+import org.tizen.dynamicanalyzer.widgets.chart.DAChart;
+import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot;
+import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot.AutoRangeType;
+import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotIntervalMarker;
+import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotTooltip;
+import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeries;
+import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoard;
+import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem;
+import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenu;
+import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenuItem;
+
+public class NetworkChartBoard extends DAChartBoard {
+
+ private List<NetworkChart> chartItemList = new ArrayList<NetworkChart>();
+
+ private int statusSeriesListCount = -1;
+ private boolean isFirstMakeChart = true;
+
+ public NetworkChartBoard(Composite parent, String title) {
+ super(parent, title);
+ initIntervalMarkers();
+ }
+
+ public NetworkChartBoard(Composite parent, String title, int[] scaleValues) {
+ super(parent, title, scaleValues);
+ }
+
+ public NetworkChartBoard(Composite parent, String title, int boardStyle) {
+ super(parent, title, boardStyle);
+ }
+
+ @Override
+ protected void callBackScaleChanged() {
+ super.callBackScaleChanged();
+ updateChart();
+ }
+
+ @Override
+ protected void callBackScrollChanged() {
+ super.callBackScrollChanged();
+ updateChart();
+ }
+
+ @Override
+ protected void callBackSizeChanged() {
+ layout(true, true);
+ super.callBackSizeChanged();
+ }
+
+ public void updateChart() {
+ createChartItem();
+ clearSeries();
+ updateSeries();
+ updateApiSeries();
+ }
+
+ public void clear() {
+ super.clear();
+ chartItemList.clear();
+ statusSeriesListCount = -1;
+ isFirstMakeChart = true;
+ initIntervalMarkers();
+ }
+
+ public void initIntervalMarkers() {
+ // selection marker
+ DAChartPlotIntervalMarker selectionMarker = new DAChartPlotIntervalMarker(
+ -1, -1, DAChartPlotIntervalMarker.INTERVAL_MARKER_STYLE_AREA);
+ selectionMarker.setBackgroundColor(ColorResources.SELECTION_RANGE);
+ selectionMarker.setAlpha((int) (255 * 0.25));
+ addIntervalMarker(selectionMarker);
+
+ // range analysis marker
+ DAChartPlotIntervalMarker rangeAnalyzeMarker = new DAChartPlotIntervalMarker(
+ -1, -1, DAChartPlotIntervalMarker.INTERVAL_MARKER_STYLE_AREA);
+ rangeAnalyzeMarker.setBackgroundColor(ColorResources.YELLOW);
+ rangeAnalyzeMarker.setAlpha((int) (255 * 0.25));
+ addIntervalMarker(rangeAnalyzeMarker);
+
+ // range marker
+ DAChartPlotIntervalMarker rangeMarker = new DAChartPlotIntervalMarker(
+ -1, -1, DAChartPlotIntervalMarker.INTERVAL_MARKER_STYLE_LINE);
+ rangeMarker.setForegroundColor(ColorResources.RED);
+ rangeMarker.setAlpha((int) (255 * 0.25));
+ addIntervalMarker(rangeMarker);
+ }
+
+ private void initNetworkChart(DAChart chart, boolean isParent) {
+ if (null == chart) {
+ return;
+ }
+
+ DAChartPlot plot = chart.getPlot();
+ if (null == plot) {
+ return;
+ }
+ if (true == isParent) {
+ plot.setBackgroundImage(ImageResources.BG_GRADIENT);
+ } else {
+ plot.setBackgroundImage(ImageResources.BG_CHILD_GRADIENT);
+ }
+ plot.setAutoHeightRange(AutoRangeType.MANUAL);
+ plot.setAxisFont(FontResources.CHART_AXIS_FONT);
+ plot.setAxisRangeY(0, 101);
+ plot.setAxisRangeX(getVisibleStartTime(), getVisibleEndTime());
+ DAChartPlotTooltip tooltip = new DAChartPlotTooltip(-1);
+ tooltip.setFont(FontResources.CHART_TOOLTIP_FONT);
+ plot.setTooltip(tooltip);
+
+ DAPopupMenu popupMenu = new DAPopupMenu(chart);
+ popupMenu.setFont(FontResources.CONTEXT_MENU_ITEM_FONT);
+ DAPopupMenuItem startItem = new DAPopupMenuItem(popupMenu,
+ DAPopupMenuItem.NONE);
+ startItem.setText(TimelineChartLabels.RANGE_CONTEXT_SET_START);
+ startItem.addListener(new PopupStartMenuItemClickListener(startItem,
+ this));
+
+ DAPopupMenuItem endItem = new DAPopupMenuItem(popupMenu,
+ DAPopupMenuItem.NONE);
+ endItem.setText(TimelineChartLabels.RANGE_CONTEXT_SET_END);
+ endItem.addListener(new PopupEndMenuItemClickListener(endItem, this));
+
+ DAPopupMenuItem fromSelectionItem = new DAPopupMenuItem(popupMenu,
+ DAPopupMenuItem.NONE);
+ fromSelectionItem
+ .setText(TimelineChartLabels.RANGE_CONTEXT_SET_FROM_SELECTION);
+ fromSelectionItem
+ .addListener(new PopupFromSelectionMenuItemClickListener(
+ fromSelectionItem, this));
+
+ DAPopupMenuItem analysisItem = new DAPopupMenuItem(popupMenu,
+ DAPopupMenuItem.NONE);
+ analysisItem.setText(TimelineChartLabels.RANGE_CONTEXT_ANALYSIS);
+ analysisItem.addListener(new PopupAnalysisMenuItemClickListener());
+
+ DAPopupMenuItem clearItem = new DAPopupMenuItem(popupMenu,
+ DAPopupMenuItem.NONE);
+ clearItem.setText(TimelineChartLabels.RANGE_CONTEXT_CLEAR);
+ clearItem.addListener(new PopupClearMenuItemClickListener());
+
+ TimelineChartMouseEventListener timelineChartMouseEventListener = new TimelineChartMouseEventListener(
+ popupMenu, getTimeline());
+ chart.addMouseListener(timelineChartMouseEventListener);
+ chart.addMouseMoveListener(timelineChartMouseEventListener);
+ chart.addMouseTrackListener(new TimelineChartMouseTrackAdapter(
+ getTimeline()));
+ plot.setMarkers(getMarkers());
+ }
+
+ private NetworkChart getParentChartData(String address, String fd) {
+ for (NetworkChart chart : chartItemList) {
+ if (chart.getDestinationAddress().equals(address)
+ && chart.isParentChartRow()) {
+ return chart;
+ }
+ }
+ return null;
+ }
+
+ private void addSeries(DAChart chart) {
+ DAChartSeries apiSeries = new DAChartSeries(
+ NetworkPageLabels.NETWORK_CHART_API,
+ DAChartSeries.SERIES_STYLE_EVENT, ColorResources.YELLOW);
+
+ DAChartSeries stateSeries = new DAChartSeries(
+ NetworkPageLabels.NETWORK_CHART_SERIES,
+ DAChartSeries.SERIES_STYLE_STATE, ColorResources.WHITE);
+
+ DAChartSeries accessSeries = new DAChartSeries(
+ NetworkPageLabels.NETWORK_CHART_ACCESS,
+ DAChartSeries.SERIES_STYLE_EVENT_AREA, ColorResources.WHITE);
+
+ apiSeries.setSummarizeTooltipText(ThreadPageLabels.THREAD_TOOLTIP_APIS);
+
+ chart.addSeries(stateSeries);
+ chart.addSeries(apiSeries);
+ chart.addSeries(accessSeries);
+ }
+
+ public boolean createChartItem() {
+ if (!AnalyzerManager.isRunning() && isFirstMakeChart == true) {
+ if (null != NetworkDataManager.getInstance().getSeriesList()) {
+ isFirstMakeChart = false;
+ for (NetworkSeriesType status : NetworkDataManager
+ .getInstance().getSeriesList()) {
+ NetworkDataManager
+ .getInstance()
+ .getCheckStatusSeries()
+ .put(status.getFdValue(),
+ status.getDestinationAddress());
+ }
+ }
+ }
+
+ if (statusSeriesListCount != NetworkDataManager.getInstance()
+ .getCheckStatusSeries().size()) {
+ for (String fd : NetworkDataManager.getInstance()
+ .getCheckStatusSeries().keySet()) {
+ String destinationAddress = NetworkDataManager.getInstance()
+ .getCheckStatusSeries().get(fd);
+
+ boolean findMatchChartRow = false;
+ for (NetworkChart chart : chartItemList) {
+ if (chart.getDestinationAddress()
+ .equals(destinationAddress)
+ && chart.getFdValue().equals(fd)) {
+ findMatchChartRow = true;
+ break;
+ }
+ }
+ if (findMatchChartRow) {
+ continue;
+ }
+
+ NetworkChart parent = getParentChartData(destinationAddress, fd);
+ if (null == parent) {
+ StringBuffer chartName = new StringBuffer(
+ destinationAddress);
+ if (chartName.length() > 10) {
+ chartName.replace(10, chartName.length(),
+ CommonConstants.EMPTY);
+ chartName.insert(chartName.length(), "...");//$NON-NLS-1$
+ }
+ DAChartBoardItem parentItem = new DAChartBoardItem(this,
+ chartName.toString());
+ parentItem.setData(new NetworkSelectionType(
+ destinationAddress, fd, true));
+ DAChart parentDAChart = parentItem.getChart();
+
+ initNetworkChart(parentDAChart, true);
+ addSeries(parentDAChart);
+ NetworkChart parentChartData = new NetworkChart(
+ chartName.toString(), destinationAddress, fd,
+ parentItem, parentDAChart);
+ chartItemList.add(parentChartData);
+
+ String childChartName = NetworkPageLabels.NETWORK_CHILD_CHART_NAME
+ + fd;
+ DAChartBoardItem childItem = new DAChartBoardItem(
+ parentItem, childChartName);
+ childItem.setData(new NetworkSelectionType(
+ destinationAddress, fd, false));
+ DAChart childDAChart = childItem.getChart();
+ initNetworkChart(childDAChart, false);
+ addSeries(childDAChart);
+ NetworkChart childChartData = new NetworkChart(
+ childChartName, destinationAddress, fd, childItem,
+ childDAChart);
+ parentChartData.pushChild(childChartData);
+ chartItemList.add(childChartData);
+ } else {
+ String childChartName = NetworkPageLabels.NETWORK_CHILD_CHART_NAME
+ + fd;
+ DAChartBoardItem parentItem = parent.getItem();
+ DAChartBoardItem childItem = new DAChartBoardItem(
+ parentItem, childChartName);
+ childItem.setData(new NetworkSelectionType(
+ destinationAddress, fd, false));
+ DAChart childDAChart = childItem.getChart();
+ initNetworkChart(childDAChart, false);
+ addSeries(childDAChart);
+ NetworkChart childChartData = new NetworkChart(
+ childChartName, destinationAddress, fd, childItem,
+ childDAChart);
+ parent.pushChild(childChartData);
+ chartItemList.add(childChartData);
+ }
+ }
+ statusSeriesListCount = NetworkDataManager.getInstance()
+ .getCheckStatusSeries().size();
+ }
+ return true;
+ }
+
+ public void clearSeries() {
+ if (null == chartItemList) {
+ return;
+ }
+ for (NetworkChart chart : chartItemList) {
+ chart.clearSeries();
+ }
+ }
+
+ public void updateApiSeries() {
+ List<NetworkAPIType> apiList = NetworkDataManager.getInstance()
+ .getAPIDBManger()
+ .selectAPISeries(getVisibleStartTime(), getVisibleEndTime());
+ if (null == apiList) {
+ return;
+ }
+ for (NetworkChart chart : chartItemList) {
+ chart.updateApiSeries(apiList);
+ }
+ }
+
+ public void updateSeries() {
+ List<NetworkSeriesType> seriesList = filetirngSeriresList();
+ for (NetworkChart chart : chartItemList) {
+ chart.updateStatusSeries(seriesList);
+ }
+ for (NetworkChart chart : chartItemList) {
+ chart.updateAccessSeries(seriesList);
+ }
+ }
+
+ private List<NetworkSeriesType> filetirngSeriresList() {
+ List<NetworkSeriesType> filterTimeList = new ArrayList<NetworkSeriesType>();
+ for (int i = 0; i < NetworkDataManager.getInstance().getSeriesList()
+ .size(); i++) {
+ double startTime = NetworkDataManager.getInstance().getSeriesList()
+ .get(i).getStartTime()
+ / TimelineConstants.MEGA_DOUBLE;
+ double endTime = NetworkDataManager.getInstance().getSeriesList()
+ .get(i).getEndTime()
+ / TimelineConstants.MEGA_DOUBLE;
+
+ if (getVisibleStartTime() <= startTime
+ && startTime <= getVisibleEndTime()) {
+ filterTimeList.add(NetworkDataManager.getInstance()
+ .getSeriesList().get(i));
+ } else if (getVisibleStartTime() <= endTime
+ && endTime <= getVisibleEndTime()) {
+ filterTimeList.add(NetworkDataManager.getInstance()
+ .getSeriesList().get(i));
+ } else if (endTime < 0) {
+ filterTimeList.add(NetworkDataManager.getInstance()
+ .getSeriesList().get(i));
+ }
+ }
+ return filterTimeList;
+ }
+
+}
+++ /dev/null
-/*
- * Dynamic Analyzer
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact:
- * Hyunjong Park <phjwithyou.park@samsung.com>
- * yeongtaik byeon <yeongtaik.byeon@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.network;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.graphics.Color;
-import org.tizen.dynamicanalyzer.common.AnalyzerManager;
-import org.tizen.dynamicanalyzer.constant.CommonConstants;
-import org.tizen.dynamicanalyzer.logparser.LogCenterConstants;
-import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
-import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
-import org.tizen.dynamicanalyzer.resources.ColorResources;
-import org.tizen.dynamicanalyzer.ui.summary.failed.FailedData;
-import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
-import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
-import org.tizen.dynamicanalyzer.util.DALogger;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChart;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeries;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeriesItem;
-import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem;
-
-public class NetworkChartData {
- private static final DALogger DA_LOG = DALogger.getInstance();
-
- private List<NetworkChartData> children = new ArrayList<NetworkChartData>();
- private NetworkChartData parent = null;
-
- private DAChartSeries statueSeries;
- private DAChartSeries apiSeries;
- private DAChartSeries accessSeries;
-
- private String fd = AnalyzerLabels.EMPTY_STRING;
- private List<String> hasFd = new ArrayList<String>();
- private String address = AnalyzerLabels.EMPTY_STRING;
- private String thread = AnalyzerLabels.EMPTY_STRING;
-
- private boolean isFDConnected = true;
- private boolean isClosedSocket = true;
- private boolean isFailedAPI = false;
- // for Detail View Data
- private List<FailedData> failedData = null;
- private long messageSize = 0;
- private long sendSize = 0;
- private long recvSize = 0;
- private double socketOpendTime = 0;
- private double socketClosedTime = 0;
- private double socketLastUsedTime = 0;
- private double socketTotalUsedTime = 0;
-
- protected DAChartBoardItem item;
- protected List<NetworkChartDataEvent> contents = new ArrayList<NetworkChartDataEvent>();
- protected List<NetworkChartDataEvent> contentsQueue = new ArrayList<NetworkChartDataEvent>();
-
- protected DAChart chart;
- protected boolean hasUpdate = false;
-
- private NetworkChartDataEvent event = null;
-
- private int lastAccessIndexForParent = -1;
-
- private boolean chartWarningStatus = false;
-
- private String chartKeyName = AnalyzerLabels.EMPTY_STRING;
-
- public NetworkChartData(NetworkChartDataEvent event, boolean isRoot) {
- setEvent(event);
- setAddress(event.getAddress());
- setFD(event.getFD());
- setThread(event.getThread());
- this.isFailedAPI = event.isFailedAPI();
- }
-
- public void checkUpdate() {
- if (false == hasUpdate && AnalyzerManager.isRunning()) {
- return;
- } else {
- hasUpdate = false;
- }
-
- int size = contentsQueue.size();
- NetworkChartDataEvent event = null;
- if (size > 0) {
- for (int i = 0; i < size; i++) {
- event = contentsQueue.get(0);
- setStatusColor(event);
- getContents().add(event);
- createChartItem(event);
- contentsQueue.remove(0);
- }
- chart.redraw();
- }
-
- size = children.size();
- if (size > 0) {
- NetworkChartData data;
- for (int i = 0; i < size; i++) {
- data = children.get(i);
- data.checkUpdate();
- }
- }
-
- if (!AnalyzerManager.isRunning()) {
- if (isParent() && (event == null)) {
- for (int i = 0; i < size; i++) {
- if ((!children.get(i).isClosed(null))
- && (!children.get(i).getFD().contains("-1"))) {//$NON-NLS-1$
- setNotFDClosedStatus();
- break;
- }
- }
- } else {
- if (!isClosed(event)) {
- setNotFDClosedStatus();
- }
- }
- }
- }
-
- public void pushChild(NetworkChartData data) {
- children.add(data);
- hasUpdate = true;
- }
-
- public DAChartBoardItem getItem() {
- return item;
- }
-
- public DAChart getChart() {
- return chart;
- }
-
- public void setChart(DAChart chart) {
- this.chart = chart;
- }
-
- public void pushEvent(NetworkChartDataEvent event) {
- contentsQueue.add(event);
- makeDetailViewData(event);
- hasUpdate = true;
- }
-
- public void makeDetailViewData(NetworkChartDataEvent event) {
- setMessageSize(event.getMessageSize());
- setSendSize(event.getSendSize());
- setRecvSize(event.getRecvSize());
- if (event.getFailedData() != null) {
- getFailedData().add(event.getFailedData());
- }
- }
-
- public List<FailedData> getFailedData() {
- if (null == failedData) {
- failedData = new ArrayList<FailedData>();
- }
- return failedData;
- }
-
- public List<String> getFailedRelations() {
- List<String> output = new ArrayList<String>();
- int size = getFailedData().size();
- for (int i = 0; i < size; i++) {
- FailedData ffd = failedData.get(i);
- String seq = Integer.toString(ffd.getSeq());
- output.add(seq);
- }
- return output;
- }
-
- public void setHasUpdate() {
- hasUpdate = true;
- }
-
- public List<NetworkChartDataEvent> getContents() {
- return contents;
- }
-
- public int getChildCount() {
- return children.size();
- }
-
- public List<NetworkChartData> getChild() {
- return children;
- }
-
- public String getFD() {
- if (null == fd) {
- return CommonConstants.EMPTY;
- }
- return fd;
- }
-
- public void setFD(String data) {
- this.fd = data;
- }
-
- public void setClosed(boolean data) {
- this.isClosedSocket = data;
- }
-
- public boolean isClosed(NetworkChartDataEvent event) {
- if (event == null) {
- return this.isClosedSocket;
- }
- if (isParent()) {
- this.isClosedSocket = true;
- for (int i = 0; i < children.size(); i++) {
-
- double socketOpendTime = children.get(i).getSocketOpendTime();
- double socketClosedTime = children.get(i).getSocketClosedTime();
- if (event.getApiChartTime() == socketOpendTime) {
- this.isClosedSocket = true;
- break;
- }
- if (event.getApiChartTime() < socketOpendTime) {
- continue;
- }
- if ((event.getApiChartTime() > socketClosedTime)
- && (socketClosedTime != 0)) {
- continue;
- }
- if (socketClosedTime == 0) {
- if (!children.get(i).isClosed(null)) {
- this.isClosedSocket = false;
- break;
- }
- }
- if (socketOpendTime < event.getApiChartTime()
- && event.getApiChartTime() < socketClosedTime) {
- this.isClosedSocket = false;
- break;
- }
- }
- return this.isClosedSocket;
- }
- return this.isClosedSocket;
- }
-
- public boolean isFDOpenFailed() {
- if (isParent()) {
- this.isClosedSocket = true;
- for (int i = 0; i < children.size(); i++) {
- if (!children.get(i).isFDOpenFailed()) {
- return false;
- }
- }
- return true;
- } else {
- return isFailedAPI;
- }
- }
-
- public void setAddress(String name) {
- this.address = name;
- }
-
- public String getAddress() {
- return address;
- }
-
- public String getAddressName() {
- String[] parentKeyName = this.address.split(CommonConstants.COLON);
- String keyname = null;
- if (parentKeyName.length == 2) {
- keyname = parentKeyName[0] + "\n:" + parentKeyName[1];//$NON-NLS-1$
- } else {
- keyname = this.address;
- }
-
- return keyname;
- }
-
- public int getFailedApiCount() {
- return getFailedData().size();
- }
-
- public int getApiCount() {
- int nAPICallCound = 0;
- for (NetworkChartDataEvent data : getContents()) {
- if (!data.getApiName().contains("start")) {//$NON-NLS-1$
- nAPICallCound++;
- }
- }
- return nAPICallCound;
- }
-
- public void setMessageSize(long data) {
- if (data > 0) {
- this.messageSize = data;
- }
- }
-
- public long getMessageSize() {
- return this.messageSize;
- }
-
- public void setSendSize(long data) {
- this.sendSize += data;
- }
-
- public long getRecvSize() {
- if (this.recvSize < 0) {
- return 0;
- }
- return this.recvSize;
- }
-
- public void setRecvSize(long data) {
- this.recvSize += data;
- }
-
- public long getSendSize() {
- if (this.sendSize < 0) {
- return 0;
- }
- return this.sendSize;
- }
-
- public boolean isParent() {
- boolean isParent = false;
- if (children.size() > 0) {
- isParent = true;
- } else {
- isParent = false;
- }
- return isParent;
- }
-
- public NetworkChartData findChildData(NetworkChartDataEvent event) {
- int size = children.size();
- NetworkChartData ret;
- for (int i = 0; i < size; i++) {
- ret = children.get(i);
- if (null == ret || null == event) {
- continue;
- }
- if (ret.getFD().equals(event.getFD())) {
- return ret;
- }
- }
- return null;
- }
-
- public void setItem(DAChartBoardItem item) {
- this.item = item;
- setChart(item.getChart());
- apiSeries = chart.getSeries(NetworkPageLabels.NETWORK_CHART_API);
- accessSeries = chart.getSeries(NetworkPageLabels.NETWORK_CHART_ACCESS);
- statueSeries = chart.getSeries(NetworkPageLabels.NETWORK_CHART_SERIES);
-
- }
-
- private void setStatusColor(NetworkChartDataEvent event) {
- if (event.isFailedAPI() == true) {
- return;
- }
-
- if (!isParent() && !isClientOfClient()
- && statueSeries.getSeriesItemList().size() == 0) {
- setFDOpendStatus(event);
-
- if (getChartKeyName().contains(
- NetworkPageLabels.NETWORK_CHART_CLIENT_NAME)
- && event.getApiType() == LogCenterConstants.SOCKET_API_RECV_END) {
- setConnectedStatus(event);
- }
- return;
- }
-
- if (isParent()
- && statueSeries.getSeriesItemList().size() == 0
- && getChartKeyName().contains(
- NetworkPageLabels.NETWORK_CHART_CLIENT_NAME)
- && event.getApiType() == LogCenterConstants.SOCKET_API_RECV_END) {
- setConnectedStatus(event);
- return;
- }
-
- if (statueSeries.getSeriesItemList().size() == 0) {
- setFDOpendStatus(event);
- return;
- }
-
- switch (event.getApiType()) {
- // Socket
- case LogCenterConstants.SOCKET_API_FD_OPEN: {
- if (isParent()) {
- if (isClosed(event)) {
- setFDOpendStatus(event);
- }
- } else {
- setFDOpendStatus(event);
- }
- break;
- }
- case LogCenterConstants.SOCKET_API_CONNECT: {
- if (event.isFailedAPI() == true) {
- chartWarningStatus = true;
- } else {
- if (isParent()) {
- setConnectedStatus(event);
- } else {
- setConnectedStatus(event);
- }
- }
- break;
- }
- case LogCenterConstants.SOCKET_API_ACCEPT_START:
- break;
- case LogCenterConstants.SOCKET_API_ACCEPT_END: {
- break;
- }
- case LogCenterConstants.SOCKET_API_FD_CLOSE: {
- if (isFDOpenFailed() == true) {
- return;
- }
- setFDCloseStatusManager(event);
- break;
- }
- case LogCenterConstants.SOCKET_API_RECV_START:
- break;
- case LogCenterConstants.SOCKET_API_RECV_END: {
- if (event.getRecvSize() <= 0) {
- chartWarningStatus = true;
- }
- break;
- }
- case LogCenterConstants.SOCKET_API_SEND_START:
- break;
- case LogCenterConstants.SOCKET_API_SEND_END:
- break;
- case LogCenterConstants.SOCKET_API_EVENT_START:
- break;
- case LogCenterConstants.SOCKET_API_EVENT_END:
- break;
- case LogCenterConstants.SOCKET_API_BIND: {
- if (event.isFailedAPI() == true) {
- chartWarningStatus = true;
- }
- break;
- }
- case LogCenterConstants.SOCKET_API_LISTEN: {
- if (event.isFailedAPI() == true) {
- chartWarningStatus = true;
- }
- break;
- }
- case LogCenterConstants.SOCKET_API_OTHER:
- break;
-
- // HTTP
- case LogCenterConstants.HTTP_API_SESSION_CONSTRUCT: {
- if (isParent()) {
- if (isClosed(event)) {
- setFDOpendStatus(event);
- }
- } else {
- setFDOpendStatus(event);
- }
- break;
- }
- case LogCenterConstants.HTTP_API_TRANSACTION_OPEN: {
- if (isParent()) {
- if (isClosed(event)) {
- setFDOpendStatus(event);
- }
- } else {
- setFDOpendStatus(event);
- }
- break;
- }
- case LogCenterConstants.HTTP_API_TRANSACTION_CLOSE:
- setFDCloseStatusManager(event);
- break;
- case LogCenterConstants.HTTP_API_ALLOCATION:
- break;
- case LogCenterConstants.HTTP_API_SUBMIT: {
- // if (event.isFailedAPI()) {
- // setFDCloseStatusManager(event);
- // return;
- // }
- // setConnectedStatus(event);
- break;
- }
- case LogCenterConstants.HTTP_API_REQUEST:
- // setDisConnectedStatus(event);
- break;
- case LogCenterConstants.HTTP_API_RESPONSE:
- break;
- case LogCenterConstants.HTTP_API_OTHER:
- break;
- case LogCenterConstants.HTTP_API_CLOSE: {
- if ((isFDOpenFailed()) == true || (event.isFailedAPI() == true)) {
- return;
- }
- setFDCloseStatusManager(event);
- break;
- }
-
- default:
- DA_LOG.debug("setStatusColor : no case NetworkChartDataEvent : "
- + event.getApiType());//$NON-NLS-1$
- return;
- }
- }
-
- private void setFDOpendStatus(NetworkChartDataEvent event) {
- if ((isFDOpenFailed()) == true || (event.isFailedAPI() == true)) {
- return;
- }
- DAChartSeriesItem seriesItem = new DAChartSeriesItem(
- event.getApiChartTime(),
- DAChartSeriesItem.SERIES_STATE_CONTINUE,
- ColorResources.NETWORK_AREA_FD_USED_END,
- ColorResources.NETWORK_AREA_FD_USED_START,
- NetworkPageLabels.NETWORK_CHART_TOOLTIP_FD_OPEND);
- statueSeries.addSeriesItem(seriesItem);
- }
-
- private void setFDCloseStatusManager(NetworkChartDataEvent event) {
- if (isParent()) {
- if (isClosed(event)) {
- setFDClosedStatus(event);
- } else {
- if (!isFDConnected()) {
- setFDOpenParentStatus(event);
- }
- }
- } else {
- setFDClosedStatus(event);
- }
- }
-
- private void setFDOpenParentStatus(NetworkChartDataEvent event) {
- if ((isFDOpenFailed()) == true || (event.isFailedAPI() == true)) {
- return;
- }
- int nStatusLastIndex = statueSeries.getSeriesItemList().size() - 1;
- if (nStatusLastIndex > -1) {
- statueSeries.getSeriesItemList().get(nStatusLastIndex)
- .setColor(ColorResources.NETWORK_AREA_FD_USED_END);
- statueSeries
- .getSeriesItemList()
- .get(nStatusLastIndex)
- .setGradationForegroundColor(
- ColorResources.NETWORK_AREA_FD_USED_START);
- statueSeries
- .getSeriesItemList()
- .get(nStatusLastIndex)
- .setTooltipText(
- NetworkPageLabels.NETWORK_CHART_TOOLTIP_FD_OPEND);
- }
- }
-
- private void setFDClosedStatus(NetworkChartDataEvent event) {
- int nStatusLastIndex = statueSeries.getSeriesItemList().size() - 1;
- if (nStatusLastIndex > -1) {
- statueSeries.getSeriesItemList().get(nStatusLastIndex)
- .setColor(ColorResources.NETWORK_AREA_CLOSED_START);
-
- if (chartWarningStatus) {
- statueSeries
- .getSeriesItemList()
- .get(nStatusLastIndex)
- .setGradationForegroundColor(
- ColorResources.NETWORK_AREA_NOT_CLOSED_END);
- } else {
- statueSeries
- .getSeriesItemList()
- .get(nStatusLastIndex)
- .setGradationForegroundColor(
- ColorResources.NETWORK_AREA_CLOSED_START);
- }
-
- DAChartSeriesItem seriesItem = new DAChartSeriesItem(
- event.getApiChartTime(),
- DAChartSeriesItem.SERIES_STATE_BAR,
- ColorResources.NETWORK_AREA_CLOSED_END,
- ColorResources.NETWORK_AREA_CLOSED_START,
- NetworkPageLabels.NETWORK_CHART_TOOLTIP_CLOSED);
- seriesItem.setBarWidth(0);
- statueSeries.addSeriesItem(seriesItem);
- statueSeries
- .getSeriesItemList()
- .get(nStatusLastIndex)
- .setTooltipText(
- NetworkPageLabels.NETWORK_CHART_TOOLTIP_CLOSED);
- }
- }
-
- // private void setDisConnectedStatus(NetworkChartDataEvent event) {
- // if ((isFDOpenFailed()) == true || (event.isFailedAPI() == true)) {
- // return;
- // }
- // int nStatusLastIndex = statueSeries.getSeriesItemList().size() - 1;
- // if (nStatusLastIndex > -1) {
- // statueSeries.getSeriesItemList().get(nStatusLastIndex)
- // .setColor(ColorResources.NETWORK_AREA_FD_USED_END);
- //
- // statueSeries
- // .getSeriesItemList()
- // .get(nStatusLastIndex)
- // .setGradationForegroundColor(
- // ColorResources.NETWORK_AREA_FD_USED_START);
- //
- // statueSeries
- // .getSeriesItemList()
- // .get(nStatusLastIndex)
- // .setTooltipText(
- // NetworkPageLabels.NETWORK_CHART_TOOLTIP_FD_OPEND);
- // }
- // }
-
- private void setConnectedStatus(NetworkChartDataEvent event) {
- if ((isFDOpenFailed()) == true || (event.isFailedAPI() == true)) {
- return;
- }
- int nStatusLastIndex = statueSeries.getSeriesItemList().size() - 1;
- if (nStatusLastIndex > -1) {
-
- statueSeries.getSeriesItemList().get(nStatusLastIndex)
- .setColor(ColorResources.NETWORK_AREA_CONNECTED_END);
- statueSeries
- .getSeriesItemList()
- .get(nStatusLastIndex)
- .setGradationForegroundColor(
- ColorResources.NETWORK_AREA_CONNECTED_START);
-
- statueSeries
- .getSeriesItemList()
- .get(nStatusLastIndex)
- .setTooltipText(
- NetworkPageLabels.NETWORK_CHART_TOOLTIP_CONNECTED);
- }
- }
-
- private void setNotFDClosedStatus() {
- int nStatusLastIndex = statueSeries.getSeriesItemList().size() - 1;
- if (nStatusLastIndex > -1) {
- statueSeries.getSeriesItemList().get(nStatusLastIndex)
- .setColor(ColorResources.NETWORK_AREA_NOT_CLOSED_END);
- statueSeries
- .getSeriesItemList()
- .get(nStatusLastIndex)
- .setGradationForegroundColor(
- ColorResources.NETWORK_AREA_NOT_CLOSED_START);
- statueSeries
- .getSeriesItemList()
- .get(nStatusLastIndex)
- .setTooltipText(
- NetworkPageLabels.NETWORK_CHART_TOOLTIP_NOT_CLOSED);
- }
- }
-
- protected int createChartItem(NetworkChartDataEvent event) {
- DAChartSeriesItem seriesItem = null;
- DAChartSeriesItem accessItem = null;
- int apiType = event.getApiType();
-
- if (event.isFailedAPI() == true) {
- seriesItem = new DAChartSeriesItem(event.getApiChartTime(),
- DAChartSeriesItem.SERIES_STATE_BAR,
- ColorResources.NETWORK_API_FAILED, event.getApiName());
- apiSeries.addSeriesItem(seriesItem);
-
- if (apiType == LogCenterConstants.SOCKET_API_CONNECT
- || apiType == LogCenterConstants.SOCKET_API_ACCEPT_END
- || apiType == LogCenterConstants.SOCKET_API_SEND_END
- || apiType == LogCenterConstants.SOCKET_API_RECV_END) {
- setSocketEndFunc(seriesItem, event);
- }
-
- if (apiType == LogCenterConstants.HTTP_API_RESPONSE) {
- setHTTPEndFunc(seriesItem, event);
- }
- return apiType;
- }
-
- switch (apiType) {
- // Socket
- case LogCenterConstants.SOCKET_API_FD_OPEN:
- setEventFunc(seriesItem, event);
- break;
- case LogCenterConstants.SOCKET_API_CONNECT:
- setSocketEndFunc(seriesItem, event);
- break;
- case LogCenterConstants.SOCKET_API_ACCEPT_START:
- setStartFunc(seriesItem, accessItem, event);
- break;
- case LogCenterConstants.SOCKET_API_ACCEPT_END:
- setSocketEndFunc(seriesItem, event);
- break;
- case LogCenterConstants.SOCKET_API_FD_CLOSE:
- setEventFunc(seriesItem, event);
- break;
- case LogCenterConstants.SOCKET_API_RECV_START:
- setStartFunc(seriesItem, accessItem, event);
- break;
- case LogCenterConstants.SOCKET_API_RECV_END:
- setSocketEndFunc(seriesItem, event);
- break;
- case LogCenterConstants.SOCKET_API_SEND_START:
- setStartFunc(seriesItem, accessItem, event);
- break;
- case LogCenterConstants.SOCKET_API_SEND_END:
- setSocketEndFunc(seriesItem, event);
- break;
- case LogCenterConstants.SOCKET_API_EVENT_START:
- setStartFunc(seriesItem, accessItem, event);
- break;
- case LogCenterConstants.SOCKET_API_EVENT_END:
- setSocketEndFunc(seriesItem, event);
- break;
- case LogCenterConstants.SOCKET_API_BIND:
- setEventFunc(seriesItem, event);
- break;
- case LogCenterConstants.SOCKET_API_LISTEN:
- setEventFunc(seriesItem, event);
- break;
- case LogCenterConstants.SOCKET_API_OTHER:
- setEventFunc(seriesItem, event);
- break;
- // HTTP
- case LogCenterConstants.HTTP_API_SESSION_CONSTRUCT:
- setEventFunc(seriesItem, event);
- break;
- case LogCenterConstants.HTTP_API_TRANSACTION_OPEN:
- setEventFunc(seriesItem, event);
- break;
- case LogCenterConstants.HTTP_API_TRANSACTION_CLOSE:
- setEventFunc(seriesItem, event);
- break;
- case LogCenterConstants.HTTP_API_ALLOCATION:
- setEventFunc(seriesItem, event);
- break;
- case LogCenterConstants.HTTP_API_SUBMIT:
- setStartFunc(seriesItem, accessItem, event);
- break;
- case LogCenterConstants.HTTP_API_REQUEST:
- setEventFunc(seriesItem, event);
- break;
- case LogCenterConstants.HTTP_API_RESPONSE:
- setHTTPEndFunc(seriesItem, event);
- break;
- case LogCenterConstants.HTTP_API_OTHER:
- setEventFunc(seriesItem, event);
- break;
- case LogCenterConstants.HTTP_API_CLOSE:
- setEventFunc(seriesItem, event);
- break;
-
- default:
- DA_LOG.debug("createChartItem : no case NetworkChartDataEvent : "
- + apiType);//$NON-NLS-1$
- return -1;
- }
- return apiType;
- }
-
- private void setEventFunc(DAChartSeriesItem seriesItem,
- NetworkChartDataEvent event) {
- seriesItem = new DAChartSeriesItem(event.getApiChartTime(),
- DAChartSeriesItem.SERIES_STATE_BAR,
- ColorResources.NETWORK_API_USED, event.getApiName());
- if (seriesItem != null) {
- apiSeries.addSeriesItem(seriesItem);
- }
- }
-
- private void setStartFunc(DAChartSeriesItem seriesItem,
- DAChartSeriesItem accessItem, NetworkChartDataEvent event) {
- seriesItem = new DAChartSeriesItem(event.getApiChartTime(),
- DAChartSeriesItem.SERIES_STATE_BAR,
- ColorResources.NETWORK_API_USED, event.getApiName());
-
- Color waitiColor = null;
- if (event.getApiType() == LogCenterConstants.SOCKET_API_SEND_START) {
- waitiColor = ColorResources.NETWORK_ACCESS_SEND;
- } else if (event.getApiType() == LogCenterConstants.SOCKET_API_RECV_START) {
- waitiColor = ColorResources.NETWORK_ACCESS_RECV;
- } else if (event.getApiType() == LogCenterConstants.HTTP_API_SUBMIT) {
- waitiColor = ColorResources.NETWORK_ACCESS_RECV;
- } else {
- waitiColor = ColorResources.NETWORK_ACCESS_WAIT;
- }
-
- accessItem = new DAChartSeriesItem(event.getApiChartTime(),
- event.getApiChartTime(), waitiColor, event.getApiName());
-
- if (seriesItem != null) {
- apiSeries.addSeriesItem(seriesItem);
- }
- if (accessItem != null) {
- accessSeries.addSeriesItem(accessItem);
- }
- }
-
- private void setHTTPEndFunc(DAChartSeriesItem seriesItem,
- NetworkChartDataEvent event) {
- seriesItem = new DAChartSeriesItem(event.getApiChartTime(),
- DAChartSeriesItem.SERIES_STATE_BAR,
- ColorResources.NETWORK_API_USED, event.getApiName());
-
- int lastIndex = accessSeries.getSeriesItemList().size() - 1;
- if (lastIndex >= 0) {
- accessSeries.getSeriesItemList().get(lastIndex)
- .setY(event.getApiChartTime());
- }
-
- if (seriesItem != null) {
- apiSeries.addSeriesItem(seriesItem);
- }
- }
-
- private void setSocketEndFunc(DAChartSeriesItem seriesItem,
- NetworkChartDataEvent event) {
- seriesItem = new DAChartSeriesItem(event.getApiChartTime(),
- DAChartSeriesItem.SERIES_STATE_BAR,
- ColorResources.NETWORK_API_USED, event.getApiName());
-
- setSocketAccessSeriesEnd(accessSeries.getSeriesItemList().size() - 1,
- event.getApiChartTime());
-
- if (seriesItem != null) {
- apiSeries.addSeriesItem(seriesItem);
- }
- }
-
- public void setSocketAccessSeriesEnd(int lastIndex, double endTime) {
- if (lastIndex < 0) {
- return;
- }
- if (isParent()) {
- for (int i = lastAccessIndexForParent; i < lastIndex; i++) {
- accessSeries.getSeriesItemList().get(lastIndex).setY(endTime);
-
- }
- lastAccessIndexForParent = lastIndex;
- } else {
- accessSeries.getSeriesItemList().get(lastIndex).setY(endTime);
- }
- }
-
- public void setSocketOpendTime(double data) {
- this.socketOpendTime = data;
- }
-
- public double getSocketOpendTime() {
- return this.socketOpendTime / TimelineConstants.MEGA_DOUBLE;
- }
-
- public void setSocketClosedTime(double data) {
- socketClosedTime = data;
- }
-
- public double getSocketClosedTime() {
- return this.socketClosedTime / TimelineConstants.MEGA_DOUBLE;
- }
-
- public void setSocketLastUsedTime(double data) {
- socketLastUsedTime = data;
- }
-
- public double getSocketLastUsedTime() {
- return this.socketLastUsedTime / TimelineConstants.MEGA_DOUBLE;
- }
-
- public void setSocketUsedTime(double data) {
- if (this.socketOpendTime == 0) {
- this.setSocketTotalUsedTime(0);
- } else {
- this.setSocketTotalUsedTime(data - this.socketOpendTime);
- }
- setSocketLastUsedTime(data);
- }
-
- private double parentTotalUsedTime() {
- List<String> totalUsedTimeList = new ArrayList<String>();
- boolean firstInputData = false;
- double socketTotalUsedTime = 0;
- NetworkChartData networkData;
- double firstUsedTime = 0;
- double lastUsedTime = 0;
- for (int i = 0; i < children.size(); i++) {
- networkData = children.get(i);
- firstUsedTime = networkData.getSocketOpendTime()
- * TimelineConstants.MEGA_DOUBLE;
- lastUsedTime = networkData.getSocketLastUsedTime()
- * TimelineConstants.MEGA_DOUBLE;
- if (lastUsedTime == 0) {
- continue;
- } else if (!networkData.isFDOpenFailed() && firstInputData == false) {
- firstInputData = true;
- totalUsedTimeList
- .add(Double.toString(firstUsedTime)
- + CommonConstants.COLON
- + Double.toString(lastUsedTime));
- }
- int nLastIndex = totalUsedTimeList.size() - 1;
- if (nLastIndex < 0) {
- continue;
- }
- String data = totalUsedTimeList.get(nLastIndex);
- String[] splitTimeDataList = data.split(CommonConstants.COLON);
- double savedFirstUsedTime = Double
- .parseDouble(splitTimeDataList[0]);
- double savedLastUsedTime = Double.parseDouble(splitTimeDataList[1]);
- if ((savedFirstUsedTime < firstUsedTime)
- && (firstUsedTime < savedLastUsedTime)
- && (savedFirstUsedTime < savedLastUsedTime)
- && (savedLastUsedTime < lastUsedTime)) {
- totalUsedTimeList.remove(nLastIndex);
- totalUsedTimeList
- .add(Double.toString(savedFirstUsedTime)
- + CommonConstants.COLON
- + Double.toString(lastUsedTime));
- } else if ((savedLastUsedTime < firstUsedTime)
- && (savedLastUsedTime < lastUsedTime)) {
- totalUsedTimeList
- .add(Double.toString(firstUsedTime)
- + CommonConstants.COLON
- + Double.toString(lastUsedTime));
- } else if ((lastUsedTime < savedFirstUsedTime)
- && (lastUsedTime < savedLastUsedTime)) {
- totalUsedTimeList
- .add(Double.toString(firstUsedTime)
- + CommonConstants.COLON
- + Double.toString(lastUsedTime));
- }
- }
- int nSize = totalUsedTimeList.size();
- for (int i = 0; i < nSize; i++) {
- String data = totalUsedTimeList.get(i);
- String[] splitTimeDataList = data.split(CommonConstants.COLON); //$NON-NLS-1$
- double savedFirstUsedTime = Double
- .parseDouble(splitTimeDataList[0]);
- double savedLastUsedTime = Double.parseDouble(splitTimeDataList[1]);
- socketTotalUsedTime += (savedLastUsedTime - savedFirstUsedTime);
- }
- return socketTotalUsedTime;
- }
-
- public double getTotalUseTime() {
-
- if (isParent()) {
- double fistOpenTime = 1000000;
- NetworkChartData fileData;
- boolean isAllClosed = true;
- for (int i = 0; i < children.size(); i++) {
- fileData = children.get(i);
- if (fileData.getSocketOpendTime() < fistOpenTime) {
- fistOpenTime = fileData.getSocketOpendTime();
- }
- if (fileData.isClosed(null) != true) {
- if (isAllClosed) {
- isAllClosed = false;
- }
- }
- }
- if (isAllClosed) {
- return parentTotalUsedTime();
- } else {
- return ToolbarArea.getInstance().getTime() - fistOpenTime;
- }
- }
- if (isClosed(null) == true) {
- return this.socketLastUsedTime - this.socketOpendTime;
- } else {
- return ToolbarArea.getInstance().getTime() - this.socketOpendTime;
- }
- }
-
- public String getThread() {
- return thread;
- }
-
- public void setThread(String thread) {
- this.thread = thread;
- }
-
- public boolean isContainChildFD(String fd) {
- for (String data : getHasFd()) {
- if (data.equals(fd)) {
- return true;
- }
- }
- return false;
- }
-
- public List<String> getHasFd() {
- return hasFd;
- }
-
- public void setHasFd(String hasFd) {
- this.hasFd.add(hasFd);
- }
-
- public NetworkChartData getParent() {
- return parent;
- }
-
- public void setParent(NetworkChartData parent) {
- this.parent = parent;
- }
-
- public boolean isFDConnected() {
- return isFDConnected;
- }
-
- public void setFDConnected(boolean isFDConnected) {
- if (isParent()) {
- for (int i = 0; i < children.size(); i++) {
- if (!children.get(i).isFDConnected()) {
- this.isFDConnected = false;
- return;
- }
- }
- } else {
- this.isFDConnected = isFDConnected;
- }
- }
-
- public boolean isServerFD() {
- for (NetworkChartDataEvent event : getContents()) {
- if (event.getApiType() == LogCenterConstants.SOCKET_API_BIND) {
- return true;
- }
- }
- return false;
- }
-
- public boolean isClientOfClient() {
- for (NetworkChartDataEvent event : getContents()) {
- if (event.getApiType() == LogCenterConstants.SOCKET_API_FD_OPEN) {
- return true;
- }
- }
- return false;
- }
-
- public NetworkChartDataEvent getEvent() {
- return event;
- }
-
- public void setEvent(NetworkChartDataEvent event) {
- this.event = event;
- }
-
- public double getSocketTotalUsedTime() {
- return socketTotalUsedTime;
- }
-
- public void setSocketTotalUsedTime(double socketTotalUsedTime) {
- this.socketTotalUsedTime = socketTotalUsedTime;
- }
-
- public String getChartKeyName() {
- return chartKeyName;
- }
-
- public void setChartKeyName(String chartKeyName) {
- this.chartKeyName = chartKeyName;
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Dynamic Analyzer
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact:
- * Hyunjong Park <phjwithyou.park@samsung.com>
- * yeongtaik byeon <yeongtaik.byeon@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.network;
-
-import org.tizen.dynamicanalyzer.constant.CommonConstants;
-import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
-import org.tizen.dynamicanalyzer.swap.model.data.NetworkData;
-import org.tizen.dynamicanalyzer.ui.summary.failed.FailedData;
-import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
-
-public class NetworkChartDataEvent {
-
- private FailedData failedData = null;
- private String FD = AnalyzerLabels.EMPTY_STRING;
- private String address = AnalyzerLabels.EMPTY_STRING;
- private String thread = AnalyzerLabels.EMPTY_STRING;
- private String apiName = AnalyzerLabels.EMPTY_STRING;
- private int apiType = -1;
-
- private NetworkData contents;
- private double logTime = -1;
- private long messageSize = 0;
- private long sendSize = 0;
- private long recvSize = 0;
-
- private boolean isFailedAPI = false;
-
- private int connectedType = 0;
- public static final int NETWORK_CHART_SERVER_NAME = 0;
- public static final int NETWORK_CHART_CLIENT_NAME = 1;
- public static final int NETWORK_CHART_SESSION_NAME = 2;
- public static final int NETWORK_CHART_TRANSACTION_NAME =3;
-
-
- public NetworkChartDataEvent(String address, String Fd, String thread, double time,
- String apiName, int apyType, int connectedType, NetworkData contents) {
- setAddress(address);
- setFD(Fd);
- setThread(thread);
- setLogTime(time);
- setApiName(apiName);
- setApiType(apyType);
- setContents(contents);
- setConnectedType(connectedType);
- }
-
- public NetworkChartDataEvent(NetworkData contents) {
- setContents(contents);
- }
-
- public NetworkData getContents() {
- return contents;
- }
-
- public void setContents(NetworkData contents) {
- this.contents = contents;
- }
-
- public String getFD() {
- if(null == FD){
- return CommonConstants.EMPTY;
- }
- return FD;
- }
-
- public void setFD(String fd) {
- this.FD = fd;
- }
-
- public boolean isFailedAPI() {
- return isFailedAPI;
- }
-
- public void setFailedAPI() {
- this.isFailedAPI = true;
- }
-
- public int getApiType() {
- return apiType;
- }
-
- public void setApiType(int apiType) {
- this.apiType = apiType;
- }
-
- public double getLogTime() {
- return logTime;
- }
-
- public void setLogTime(double data) {
- this.logTime = data;
- }
-
- public double getApiChartTime() {
- return getLogTime() / TimelineConstants.MEGA_DOUBLE;
- }
-
- public void setAddress(String data) {
- this.address = data;
- }
-
- public String getAddress() {
- return address;
- }
-
- public void setMessageSize(long data) {
- this.messageSize = data;
- }
-
- public long getMessageSize() {
- return this.messageSize;
- }
-
- public void setSendSize(long data) {
- this.sendSize = data;
- setMessageSize(data);
- }
-
- public long getSendSize() {
- return this.sendSize;
- }
-
- public void setRecvSize(long data) {
- this.recvSize = data;
- setMessageSize(data);
- }
-
- public long getRecvSize() {
- return this.recvSize;
- }
-
- public void setFailedData(FailedData data) {
- failedData = data;
- }
-
- public FailedData getFailedData() {
- return failedData;
- }
-
- public String getApiName() {
- return apiName;
- }
-
- public void setApiName(String tooltip) {
- this.apiName = tooltip;
- }
-
- public String getThread() {
- return thread;
- }
-
- public void setThread(String thread) {
- this.thread = thread;
- }
-
- public int getConnectedType() {
- return connectedType;
- }
-
- public void setConnectedType(int connectedType) {
- this.connectedType = connectedType;
- }
-}
+++ /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.network;
-
-import java.util.List;
-
-import org.tizen.dynamicanalyzer.common.AnalyzerManager;
-import org.tizen.dynamicanalyzer.constant.CommonConstants;
-import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
-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.data.LogData;
-import org.tizen.dynamicanalyzer.util.DALogger;
-
-public class NetworkChartManager extends PageDataManager {
- private static final DALogger DA_LOG = DALogger.getInstance();
-
- private NetworkDataMaker networkDataMaker = null;
-
- private static NetworkChartManager instance = null;
-
- private String packetMessage = CommonConstants.EMPTY;
- private String sendAckTime = CommonConstants.EMPTY;
-
- public NetworkChartManager() {
- networkDataMaker = new NetworkDataMaker(
- AnalyzerManager.getFailedChecker(),
- AnalyzerManager.getLeakDetector(),
- AnalyzerManager.getWarningChecker());
- }
-
- public synchronized static NetworkChartManager getInstance() {
- if (null == instance) {
- instance = new NetworkChartManager();
- }
- return instance;
- }
-
- public NetworkDataMaker getNetworkDataMaker() {
- return networkDataMaker;
- }
-
- /*** 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_PROBE_NETWORK);
- if (null != logs && logs.getRawLogs().size() != 0) {
- List<LogData> inputs = logs.getLogs();
-
- getNetworkDataMaker().makeData(inputs);
- }
- }
-
- /* log for debug */
- DA_LOG.debug(getName() + " thread end!!"); //$NON-NLS-1$
- }
-
- public void clear() {
- instance = null;
- networkDataMaker.clear();
- }
-
- public int[] getParentChartIndex(String seq) {
- int parentChartIndex = -1;
- NetworkChartData chartData = null;
- List<NetworkChartData> networkChartDataLow = NetworkChartManager
- .getInstance().getNetworkDataMaker().getNetworkChartLow();
- for (int i = 0; i < networkChartDataLow.size(); i++) {
- chartData = networkChartDataLow.get(i);
- if (chartData.getChildCount() != 0) {
- parentChartIndex++;
- if (isEqulasSeq(chartData, seq)) {
- return new int[] { parentChartIndex, i };
- }
- }
- }
- return new int[] { 0, 0 };
- }
-
- public int getChildChartIndex(int parentChartIndex, String seq) {
- List<NetworkChartData> networkChartDataLow = getNetworkDataMaker()
- .getNetworkChartLow();
- if (networkChartDataLow.size() > 0) {
- List<NetworkChartData> childData = networkChartDataLow.get(
- parentChartIndex).getChild();
- NetworkChartData childChartData = null;
- for (int i = 0; i < childData.size(); i++) {
- childChartData = childData.get(i);
- if (isEqulasSeq(childChartData, seq)) {
- return i;
- }
- }
- }
-
- List<NetworkChartData> unknownChartDataLow = getNetworkDataMaker()
- .getUnknownNetworkChartLow();
- if (unknownChartDataLow.size() > 0) {
- List<NetworkChartData> childData = unknownChartDataLow.get(
- parentChartIndex).getChild();
- NetworkChartData childChartData = null;
- for (int i = 0; i < childData.size(); i++) {
- childChartData = childData.get(i);
- if (isEqulasSeq(childChartData, seq)) {
- return i;
- }
- }
- }
- return 0;
- }
-
- public boolean isEqulasSeq(NetworkChartData chartData, String seq) {
- for (int j = 0; j < chartData.getContents().size(); j++) {
-
- int seqlong = chartData.getContents().get(j).getContents().getSeq();
- if (Long.toString(seqlong).equals(seq)) {
- return true;
- }
- }
- return false;
- }
-
- public String getPacketMessage() {
- return this.packetMessage;
- }
-
- public void setPacketMessage(String packetMessage) {
- if (packetMessage != null
- && !packetMessage.equals(CommonConstants.EMPTY)) {
- StringBuffer out = new StringBuffer();
- StringBuffer strHex = new StringBuffer();
- StringBuffer strAscii = new StringBuffer();
- int index = 0;
- long hexAddress = 0;
- for (int nIndex = 0; nIndex < packetMessage.length(); nIndex++) {
-
- strAscii.append(packetMessage.charAt(nIndex));
-
- if (index % 8 == 0) {
- hexAddress++;
- String strHexCode = Long.toHexString((Long) hexAddress)
- .toUpperCase();
- String strhexCodeFormat = CommonConstants.EMPTY;
- if (strHexCode.length() == 1) {
- strhexCodeFormat += CommonConstants.ZERO
- + CommonConstants.ZERO + strHexCode
- + CommonConstants.ZERO;
- } else if (strHexCode.length() == 2) {
- strhexCodeFormat += CommonConstants.ZERO + strHexCode
- + CommonConstants.ZERO;
- } else if (strHexCode.length() == 3) {
- strhexCodeFormat += strHexCode + CommonConstants.ZERO;
- }
- strHex.append(CommonConstants.NEW_LINE)
- .append(strhexCodeFormat)
- .append(CommonConstants.TAB);
-
- }
- strHex.append(String.format("%02X ",
- (int) packetMessage.charAt(nIndex)));//$NON-NLS-1$
-
- index++;
- }
-
- out.append(CommonConstants.SPACE).append(CommonConstants.SPACE);
- out.append(NetworkPageLabels.NETWORK_DETAILS_PAYLOAD_ASCII)
- .append(CommonConstants.NEW_LINE)
- .append(CommonConstants.NEW_LINE);
- out.append(strAscii.toString());
-
- out.append(CommonConstants.NEW_LINE).append(
- CommonConstants.NEW_LINE);
- out.append(CommonConstants.SPACE).append(CommonConstants.SPACE);
-
- out.append(NetworkPageLabels.NETWORK_DETAILS_PAYLOAD_HEXCODE)
- .append(CommonConstants.NEW_LINE);
- out.append(strHex.toString());
- this.packetMessage = out.toString();
- } else {
- this.packetMessage = CommonConstants.EMPTY;
- }
- }
-
- public String getSendAckTime() {
- return this.sendAckTime;
- }
-
- public void setSendAckTime(String sendAckTime) {
-
- this.sendAckTime = sendAckTime;
- }
-}
import org.tizen.dynamicanalyzer.swap.model.data.LogData;
import org.tizen.dynamicanalyzer.ui.common.SetRangeMarkerMouseMoveListener;
import org.tizen.dynamicanalyzer.ui.common.UICommonConstants;
+import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager;
import org.tizen.dynamicanalyzer.ui.range.RangeDataManager;
import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
import org.tizen.dynamicanalyzer.ui.timeline.logparser.LifecycleLogParser;
import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotIntervalMarker;
-import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoard;
import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem;
import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardSelectionListener;
import org.tizen.dynamicanalyzer.widgets.da.view.DAViewComposite;
public final static int NETWORK_CHART_HEIGHT = 40;
private final Composite contents;
- private DAChartBoard networkChart;
- // private DACustomCombo networkCombo;
+ private NetworkChartBoard networkChartBoard;
private final StackLayout stackLayout;
+ private DAChartBoardItem lastSelectedItemForSummary = null;
private final RangeDataManager rangeDataManager = RangeDataManager
.getInstance();
contents.setBackground(ColorResources.WINDOW_BG_COLOR);
stackLayout = new StackLayout();
contents.setLayout(stackLayout);
- networkChart = new DAChartBoard(contents,
+ networkChartBoard = new NetworkChartBoard(contents,
NetworkPageLabels.NETWORK_CHART);
- networkChart.setNameFont(FontResources.CHART_NAME_FONT);
- networkChart.addSelectionListener(new DAChartBoardSelectionListener() {
-
- @Override
- public void handleSelectionEvent(DAChartBoardItem item) {
- AnalyzerManager
- .getCurrentPage()
- .updateView(
- new DASelectionData(
- NetworkPage.chartViewID,
- (long) (((DAChartPlotIntervalMarker) networkChart
- .getMarkers()
- .get(UICommonConstants.SELECTION_MARKER_INDEX))
- .getStartVal() * TimelineConstants.MEGA_DOUBLE),
- (long) (((DAChartPlotIntervalMarker) networkChart
- .getMarkers()
- .get(UICommonConstants.SELECTION_MARKER_INDEX))
- .getEndVal() * TimelineConstants.MEGA_DOUBLE),
+ networkChartBoard.setNameFont(FontResources.CHART_NAME_FONT);
+ networkChartBoard
+ .addSelectionListener(new DAChartBoardSelectionListener() {
+
+ @Override
+ public void handleSelectionEvent(DAChartBoardItem item) {
+ lastSelectedItemForSummary = item;
+ DAChartPlotIntervalMarker intervalMarker = (DAChartPlotIntervalMarker) networkChartBoard
+ .getMarkers()
+ .get(UICommonConstants.SELECTION_MARKER_INDEX);
+ long selectiedStartTime = (long) (intervalMarker
+ .getStartVal() * TimelineConstants.MEGA_DOUBLE);
+ long selectiedEndTime = (long) (intervalMarker
+ .getEndVal() * TimelineConstants.MEGA_DOUBLE);
+ AnalyzerManager.getCurrentPage().updateView(
+ new DASelectionData(NetworkPage.chartViewID,
+ selectiedStartTime, selectiedEndTime,
item.getData(), null));
- }
- });
+ }
+ });
- initIntervalMarkers(networkChart);
-
- stackLayout.topControl = networkChart;
- Composite textBoxLabel = new Composite(networkChart.getTitleComp(),
- SWT.NONE);
+ stackLayout.topControl = networkChartBoard;
+ Composite textBoxLabel = new Composite(
+ networkChartBoard.getTitleComp(), SWT.NONE);
textBoxLabel.addPaintListener(new PaintListener() {
@Override
public void paintControl(PaintEvent e) {
}
});
- DATimeline timeline = networkChart.getTimeline();
+ DATimeline timeline = networkChartBoard.getTimeline();
timeline.setTimeTickFont(FontResources.TIMELINE_TICK_FONT);
timeline.setTimeBalloonFont(FontResources.TIMELINE_BALLOON_FONT);
LifecycleLogParser.getInstance().registerLifecycleBar(
- networkChart.getLifecycleBar());
+ networkChartBoard.getLifecycleBar());
LifecycleLogParser.getInstance().registerTimeline(timeline);
timeline.addMouseMoveListener(new SetRangeMarkerMouseMoveListener(
- rangeDataManager, networkChart, timeline));
-
- clear();
+ rangeDataManager, networkChartBoard, timeline));
}
@Override
public void updateView() {
- NetworkChartManager.getInstance().getNetworkDataMaker().checkUpdate();
+ networkChartBoard.updateChart();
- networkChart.setTotalEndTime(ToolbarArea.getInstance().getTime());
+ networkChartBoard.setTotalEndTime(ToolbarArea.getInstance().getTime());
- networkChart.setTimelineMarkerStartTime(rangeDataManager
+ networkChartBoard.setTimelineMarkerStartTime(rangeDataManager
.getMarkerStartTime() / TimelineConstants.MEGA_DOUBLE);
- networkChart.setTimelineMarkerEndTime(rangeDataManager
+ networkChartBoard.setTimelineMarkerEndTime(rangeDataManager
.getMarkerEndTime() / TimelineConstants.MEGA_DOUBLE);
if (RangeDataManager.getInstance().isBeingAnalyzed()) {
- ((DAChartPlotIntervalMarker) networkChart.getMarkers().get(
+ ((DAChartPlotIntervalMarker) networkChartBoard.getMarkers().get(
UICommonConstants.RANGE_ANALYSIS_MARKER_INDEX))
.setInterval(rangeDataManager.getAnalysisStartTime()
/ TimelineConstants.MEGA_DOUBLE,
rangeDataManager.getAnalysisEndTime()
/ TimelineConstants.MEGA_DOUBLE);
} else {
- ((DAChartPlotIntervalMarker) networkChart.getMarkers().get(
+ ((DAChartPlotIntervalMarker) networkChartBoard.getMarkers().get(
UICommonConstants.RANGE_ANALYSIS_MARKER_INDEX))
.setInterval(-1, -1);
}
- ((DAChartPlotIntervalMarker) networkChart.getMarkers().get(
+ ((DAChartPlotIntervalMarker) networkChartBoard.getMarkers().get(
UICommonConstants.RANGE_MARKER_INDEX)).setInterval(
rangeDataManager.getMarkerStartTime()
/ TimelineConstants.MEGA_DOUBLE,
@Override
public void updateView(DAViewData data) {
+ networkChartBoard.updateChart();
if (data instanceof DASelectionData) {
DASelectionData selData = (DASelectionData) data;
+ long dataTime = -1;
if (selData.isLogData()) {
- Object odata = selData.getData();
- if (null != odata && (odata instanceof LogData)) {
- LogData ldata = (LogData) odata;
- int seq = ldata.getSeq();
- int selectedIndex[] = NetworkChartManager.getInstance()
- .getParentChartIndex(Integer.toString(seq));
- networkChart.selectItem(
- selectedIndex[0],
- NetworkChartManager.getInstance()
- .getChildChartIndex(selectedIndex[1],
- Integer.toString(seq)));
+ Object obData = selData.getData();
+ if (null != obData && (obData instanceof LogData)) { // summary
+ LogData ldata = (LogData) obData;
+ dataTime = ldata.getTime();
+ if (null != lastSelectedItemForSummary) {
+ AnalyzerManager.getCurrentPage().updateView(
+ new DASelectionData(NetworkPage.chartViewID,
+ dataTime, dataTime,
+ lastSelectedItemForSummary.getData(),
+ null));
+ }
}
} else {
- long start = selData.getStartTime();
- long end = selData.getEndTime();
-
- double startTime = (double) start
- / TimelineConstants.MEGA_DOUBLE;
- double endTime = (double) end / TimelineConstants.MEGA_DOUBLE;
- // double middleTime = (startTime + endTime) / 2.0;
- // if (start == end) {
- // middleTime = startTime;
- // }
+ dataTime = selData.getStartTime();
+ }
+ double selectionTime = dataTime / TimelineConstants.MEGA_DOUBLE;
- DAChartBoard chartBoard = (DAChartBoard) stackLayout.topControl;
+ DAChartPlotIntervalMarker intervalMarker = (DAChartPlotIntervalMarker) networkChartBoard
+ .getMarkers().get(UICommonConstants.SELECTION_MARKER_INDEX);
+ intervalMarker.setInterval(selectionTime, selectionTime);
- // chartBoard.setVisibleMiddleTime(middleTime);
- DAChartPlotIntervalMarker intervalMarker = (DAChartPlotIntervalMarker) chartBoard
- .getMarkers().get(
- UICommonConstants.SELECTION_MARKER_INDEX);
- intervalMarker.setInterval(startTime, endTime);
- }
}
}
@Override
public void clear() {
- networkChart.clear();
- initIntervalMarkers(networkChart);
- NetworkChartManager.getInstance().getNetworkDataMaker().clear();
- NetworkChartManager.getInstance().getNetworkDataMaker()
- .setBoard(networkChart);
+ networkChartBoard.clear();
+ NetworkDataManager.getInstance().clear();
}
@Override
public Control getControl() {
- return networkChart;
- }
-
- private void initIntervalMarkers(DAChartBoard board) {
- // selection marker
- DAChartPlotIntervalMarker selectionMarker = new DAChartPlotIntervalMarker(
- -1, -1, DAChartPlotIntervalMarker.INTERVAL_MARKER_STYLE_AREA);
- selectionMarker.setBackgroundColor(ColorResources.SELECTION_RANGE);
- selectionMarker.setAlpha((int) (255 * 0.25));
- board.addIntervalMarker(selectionMarker);
-
- // range analysis marker
- DAChartPlotIntervalMarker rangeAnalyzeMarker = new DAChartPlotIntervalMarker(
- -1, -1, DAChartPlotIntervalMarker.INTERVAL_MARKER_STYLE_AREA);
- rangeAnalyzeMarker.setBackgroundColor(ColorResources.YELLOW);
- rangeAnalyzeMarker.setAlpha((int) (255 * 0.25));
- board.addIntervalMarker(rangeAnalyzeMarker);
-
- // range marker
- DAChartPlotIntervalMarker rangeMarker = new DAChartPlotIntervalMarker(
- -1, -1, DAChartPlotIntervalMarker.INTERVAL_MARKER_STYLE_LINE);
- rangeMarker.setForegroundColor(ColorResources.RED);
- rangeMarker.setAlpha((int) (255 * 0.25));
- board.addIntervalMarker(rangeMarker);
+ return networkChartBoard;
}
public void setRangeMarker(double starttime, double endtime) {
- networkChart.setTimelineMarkerStartTime(starttime);
- networkChart.setTimelineMarkerEndTime(endtime);
+ networkChartBoard.setTimelineMarkerStartTime(starttime);
+ networkChartBoard.setTimelineMarkerEndTime(endtime);
- ((DAChartPlotIntervalMarker) networkChart.getMarkers().get(
- UICommonConstants.RANGE_MARKER_INDEX)).setInterval(
- starttime, endtime);
+ ((DAChartPlotIntervalMarker) networkChartBoard.getMarkers().get(
+ UICommonConstants.RANGE_MARKER_INDEX)).setInterval(starttime,
+ endtime);
}
}
+++ /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.network;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.tizen.dynamicanalyzer.common.AnalyzerManager;
-import org.tizen.dynamicanalyzer.constant.CommonConstants;
-import org.tizen.dynamicanalyzer.logparser.LogCenterConstants;
-import org.tizen.dynamicanalyzer.nl.ConfigureLabels;
-import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
-import org.tizen.dynamicanalyzer.nl.ThreadPageLabels;
-import org.tizen.dynamicanalyzer.nl.TimelineChartLabels;
-import org.tizen.dynamicanalyzer.resources.ColorResources;
-import org.tizen.dynamicanalyzer.resources.FontResources;
-import org.tizen.dynamicanalyzer.resources.ImageResources;
-import org.tizen.dynamicanalyzer.swap.model.data.LogData;
-import org.tizen.dynamicanalyzer.swap.model.data.NetworkData;
-import org.tizen.dynamicanalyzer.ui.common.PopupAnalysisMenuItemClickListener;
-import org.tizen.dynamicanalyzer.ui.common.PopupClearMenuItemClickListener;
-import org.tizen.dynamicanalyzer.ui.common.PopupEndMenuItemClickListener;
-import org.tizen.dynamicanalyzer.ui.common.PopupFromSelectionMenuItemClickListener;
-import org.tizen.dynamicanalyzer.ui.common.PopupStartMenuItemClickListener;
-import org.tizen.dynamicanalyzer.ui.common.TimelineChartMouseEventListener;
-import org.tizen.dynamicanalyzer.ui.common.TimelineChartMouseTrackAdapter;
-import org.tizen.dynamicanalyzer.ui.summary.failed.FailedChecker;
-import org.tizen.dynamicanalyzer.ui.summary.failed.FailedData;
-import org.tizen.dynamicanalyzer.ui.summary.leaks.LeakDetector;
-import org.tizen.dynamicanalyzer.ui.summary.warning.WarningCase;
-import org.tizen.dynamicanalyzer.ui.summary.warning.WarningChecker;
-import org.tizen.dynamicanalyzer.ui.summary.warning.WarningData;
-import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
-import org.tizen.dynamicanalyzer.ui.toolbar.configuration.ConfigurationDialogDataManager;
-import org.tizen.dynamicanalyzer.util.DALogger;
-import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChart;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot.AutoRangeType;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotTooltip;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeries;
-import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoard;
-import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem;
-import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenu;
-import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenuItem;
-
-public class NetworkDataMaker {
- private static final DALogger DA_LOG = DALogger.getInstance();
-
- private DAChartBoard board;
- private int preSelectionPId = -1;
- private List<NetworkChartData> unknownDataList = new ArrayList<NetworkChartData>();
- private List<NetworkChartData> connectedDataList = new ArrayList<NetworkChartData>();
-
- private List<NetworkChartDataEvent> networkEventQueue = new ArrayList<NetworkChartDataEvent>();
-
- private List<NetworkChartDataEvent> unConnectedEventQueue = new ArrayList<NetworkChartDataEvent>();
-
- private HashMap<String, String> addressByFdHashMap = new HashMap<String, String>();
- private HashMap<String, String> parentFDByFdHashMap = new HashMap<String, String>();
-
- // private DAChartBoardItem networkTransmissionSizeItem;
-
- private WarningChecker warningChecker = null;
- private FailedChecker failedChecker = null;
-
- // private boolean isUnknownChart = false;
- // private boolean isAddressChart = false;
-
- public NetworkDataMaker(FailedChecker failedChecker,
- LeakDetector leakDetector, WarningChecker warningChecker) {
- this.failedChecker = failedChecker;
- this.warningChecker = warningChecker;
- }
-
- public void setBoard(DAChartBoard board) {
- this.board = board;
- }
-
- public void clear() {
- unknownDataList.clear();
- connectedDataList.clear();
- networkEventQueue.clear();
- unConnectedEventQueue.clear();
- addressByFdHashMap.clear();
- parentFDByFdHashMap.clear();
- // networkTransmissionSizeItem = null;
- NetworkTrafficChart.getInstance().clear();
-
- }
-
- public List<NetworkChartData> getNetworkChartLow() {
- return connectedDataList;
- }
-
- public List<NetworkChartData> getUnknownNetworkChartLow() {
- return unknownDataList;
- }
-
- /**
- *
- * @param inputs
- */
- public void makeData(List<LogData> inputs) {
- int size = inputs.size();
- for (int i = 0; i < size; i++) {
- NetworkData input = (NetworkData) inputs.get(i);
-
- if (ConfigurationDialogDataManager.getInstance()
- .getfeatureValue(
- ConfigureLabels.INCLUDE_INSIDE_CALL_NETWORK) == 0) {
- if (input.isInternal()) {
- continue;
- }
- }
-
- NetworkChartDataEvent event = makeEventData(input);
-
- if (event.isFailedAPI()) {
- FailedData ffd = new FailedData(input);
- event.setFailedData(ffd);
- this.failedChecker.getFailedList().add(ffd);
- }
-
- setTrafficData(event);
-
- checkClosedFDForFailedFD(event);
- if(event.getAddress().equals("")){
- unConnectedEventQueue.add(event);
- }else{
- networkEventQueue.add(event);
- }
- }
- }
-
- private NetworkChartDataEvent makeEventData(NetworkData input) {
- String apiAddress = input.getDestinationAddress();
- String apiFD = Long.toString(input.getFdValue());
- apiFD = getHexString(apiFD);
- String apiThread = Integer.toString(input.getTid());
- String apiName = input.getApiName();
- int apiType = input.getFdApiType();
- double time = input.getTime();
- long errno = input.getErrno();
-
- int connectedType = 5;
- String parentAddress = addressByFdHashMap.get(apiFD);
- if (null != parentAddress) { // get Address by FD
- apiAddress = parentAddress;
- }
-
- switch (apiType) {
- // Socket
- case LogCenterConstants.SOCKET_API_FD_OPEN:
- break;
- case LogCenterConstants.SOCKET_API_CONNECT: {
- String[] strInput = input.getArgs()
- .split(CommonConstants.COMMA);
- if (strInput.length <= 0) {
- return null;
- }
- apiAddress = strInput[1];
- connectedType = NetworkChartDataEvent.NETWORK_CHART_CLIENT_NAME;
- updatePreviousEventData(apiFD, apiAddress, connectedType);
- break;
- }
- case LogCenterConstants.SOCKET_API_ACCEPT_START:
- break;
- case LogCenterConstants.SOCKET_API_ACCEPT_END: {
- String clientFD = input.getReturn();
- addressByFdHashMap.put(clientFD, parentAddress);
- break;
- }
- case LogCenterConstants.SOCKET_API_FD_CLOSE: {
- if (errno != 0) {
- addressByFdHashMap.remove(apiFD);
- }
- break;
- }
- case LogCenterConstants.SOCKET_API_RECV_START:
- break;
- case LogCenterConstants.SOCKET_API_RECV_END:
- break;
- case LogCenterConstants.SOCKET_API_SEND_START:
- break;
- case LogCenterConstants.SOCKET_API_SEND_END:
- break;
- case LogCenterConstants.SOCKET_API_EVENT_START:
- break;
- case LogCenterConstants.SOCKET_API_EVENT_END:
- break;
- case LogCenterConstants.SOCKET_API_BIND: {
- String[] strInput = input.getArgs()
- .split(CommonConstants.COMMA);
- if (strInput.length <= 0) {
- return null;
- }
- apiAddress = strInput[1];
- connectedType = NetworkChartDataEvent.NETWORK_CHART_SERVER_NAME;
- updatePreviousEventData(apiFD, apiAddress, connectedType);
- break;
- }
- case LogCenterConstants.SOCKET_API_LISTEN:
- break;
- case LogCenterConstants.SOCKET_API_OTHER: {
- if (apiName.contains("epoll_ctl")) { //$NON-NLS-1$
- String[] strInput = input.getArgs()
- .split(CommonConstants.COMMA);
- if (strInput.length <= 0) {
- return null;
- }
- String clientFD = strInput[0];
- addressByFdHashMap.put(clientFD, parentAddress);
- if (errno != 0) {
- }
- apiFD = clientFD;
- connectedType = NetworkChartDataEvent.NETWORK_CHART_SERVER_NAME;
- updatePreviousEventData(apiFD, apiAddress, connectedType);
- }
- break;
- }
- // HTTP
- case LogCenterConstants.HTTP_API_SESSION_CONSTRUCT:
- String[] strInput = input.getArgs().split(CommonConstants.COMMA);
- if (strInput.length <= 0) {
- return null;
- }
- String clientAddress = strInput[2];
-
- addressByFdHashMap.put(apiFD, clientAddress);
- parentFDByFdHashMap.put(apiFD, apiFD);
- connectedType = NetworkChartDataEvent.NETWORK_CHART_SESSION_NAME;
- break;
- case LogCenterConstants.HTTP_API_TRANSACTION_OPEN: {
- String clientFD = input.getReturn();
- String parrentAddress = addressByFdHashMap.get(apiFD);
- if (null != parrentAddress) {
- apiAddress = parrentAddress;
- }
- addressByFdHashMap.put(clientFD, apiAddress);
- apiFD = clientFD;
- connectedType = NetworkChartDataEvent.NETWORK_CHART_TRANSACTION_NAME;
- break;
- }
- case LogCenterConstants.HTTP_API_TRANSACTION_CLOSE: {
- String clientFD = input.getArgs().trim();
- if (!clientFD.contains(CommonConstants.EMPTY)) {
- apiFD = clientFD;
- }
- break;
- }
- case LogCenterConstants.HTTP_API_ALLOCATION: {
- String clientFD = input.getReturn();
- String parretnFD = parentFDByFdHashMap.get(apiFD);
- if (null != parretnFD) {
- apiFD = parretnFD;
- }
- String parrentAddress = addressByFdHashMap.get(apiFD);
- if (null != parrentAddress) {
- apiAddress = parrentAddress;
- }
-
- addressByFdHashMap.put(clientFD, apiAddress);
- parentFDByFdHashMap.put(clientFD, apiFD);
- break;
- }
- case LogCenterConstants.HTTP_API_SUBMIT: {
- String parretnFD = parentFDByFdHashMap.get(apiFD);
- if (null != parretnFD) {
- apiFD = parretnFD;
- }
- String parrentAddress = addressByFdHashMap.get(apiFD);
- if (null != parrentAddress) {
- apiAddress = parrentAddress;
- }
- break;
- }
- case LogCenterConstants.HTTP_API_REQUEST: {
- String parretnFD = parentFDByFdHashMap.get(apiFD);
- if (null != parretnFD) {
- apiFD = parretnFD;
- }
- String parrentAddress = addressByFdHashMap.get(apiFD);
- if (null != parrentAddress) {
- apiAddress = parrentAddress;
- }
- break;
- }
- case LogCenterConstants.HTTP_API_RESPONSE: {
- String clientFD = input.getReturn();
- String parretnFD = parentFDByFdHashMap.get(apiFD);
- if (null != parretnFD) {
- apiFD = parretnFD;
- }
- String parrentAddress = addressByFdHashMap.get(apiFD);
- if (null != parrentAddress) {
- apiAddress = parrentAddress;
- }
-
- addressByFdHashMap.put(clientFD, apiAddress);
- parentFDByFdHashMap.put(clientFD, apiFD);
- break;
- }
- case LogCenterConstants.HTTP_API_OTHER: {
- String parretnFD = parentFDByFdHashMap.get(apiFD);
- if (null != parretnFD) {
- apiFD = parretnFD;
- }
- String parrentAddress = addressByFdHashMap.get(apiFD);
- if (null != parrentAddress) {
- apiAddress = parrentAddress;
- }
- break;
- }
- case LogCenterConstants.HTTP_API_CLOSE: {
- if (errno != 0) {
- addressByFdHashMap.remove(apiFD);
- }
-
- break;
- }
- default:
- DA_LOG.debug("makeEventData : no case NetworkChartDataEvent : "
- + apiType);//$NON-NLS-1$
- return null;
- }
-
- NetworkChartDataEvent event = new NetworkChartDataEvent(apiAddress,
- apiFD, apiThread, time, apiName, apiType, connectedType, input);
- if (errno != 0) {
- event.setFailedAPI();
- }
- return event;
- }
-
- private void setTrafficData(NetworkChartDataEvent event) {
- if (event.getApiType() == LogCenterConstants.SOCKET_API_SEND_END
- || event.getApiType() == LogCenterConstants.HTTP_API_REQUEST) {
- event.setSendSize(event.getContents().getPacketMessageSize());
- NetworkTrafficChart.getInstance().setSendSize(
- event.getContents().getPacketMessageSize(),
- Long.toString(event.getContents().getTime()));
- } else if (event.getApiType() == LogCenterConstants.SOCKET_API_RECV_END
- || event.getApiType() == LogCenterConstants.HTTP_API_RESPONSE) {
- event.setRecvSize(event.getContents().getPacketMessageSize());
- NetworkTrafficChart.getInstance().setRecvSize(
- event.getContents().getPacketMessageSize(),
- Long.toString(event.getContents().getTime()));
- }
- }
-
- private void updatePreviousEventData(String apiFD, String apiAddress,
- int connectType) {
- addressByFdHashMap.put(apiFD, apiAddress);
- List<NetworkChartDataEvent> removeEventQueue = new ArrayList<NetworkChartDataEvent>();
- for (NetworkChartDataEvent event : unConnectedEventQueue) {
- if (event.getFD().equals(apiFD)) {
- event.setAddress(apiAddress);
- event.setConnectedType(connectType);
- networkEventQueue.add(event);
- removeEventQueue.add(event);
- }
- }
- unConnectedEventQueue.removeAll(removeEventQueue);
- for (NetworkChartDataEvent event : networkEventQueue) {
- if (event.getFD().equals(apiFD)) {
- event.setAddress(apiAddress);
- event.setConnectedType(connectType);
- }
- }
-
- // isAddressChart = true;
- }
-
- private void checkClosedFDForFailedFD(NetworkChartDataEvent data) {
- if (data.isFailedAPI()
- && data.getApiType() != LogCenterConstants.SOCKET_API_OTHER) {
- if (!warningChecker.isChecked(data.getFD(),
- WarningCase.CLOSED_NETWORK_FD.getType())) {
- WarningData wData = new WarningData(
- WarningCase.CLOSED_NETWORK_FD.getType(),
- data.getContents(), data.getFD());
- warningChecker.getWarningData().add(wData);
- }
- }
- if (data.getApiType() == LogCenterConstants.SOCKET_API_RECV_END
- && data.getRecvSize() <= 0) {
- if (!warningChecker.isChecked(data.getFD(),
- WarningCase.CLOSED_NETWORK_FD.getType())) {
- WarningData wData = new WarningData(
- WarningCase.CLOSED_NETWORK_FD.getType(),
- data.getContents(), data.getFD());
- warningChecker.getWarningData().add(wData);
- }
- }
- if (data.getApiType() == LogCenterConstants.SOCKET_API_FD_CLOSE) {
- if (warningChecker.isChecked(data.getFD(),
- WarningCase.CLOSED_NETWORK_FD.getType())) {
- warningChecker.removeData(data.getFD(),
- WarningCase.CLOSED_NETWORK_FD.getType());
-
- }
- }
- }
-
- private void initNetworkChart(DAChart chart, boolean isParent) {
- if (null == chart) {
- return;
- }
-
- DAChartPlot plot = chart.getPlot();
- if (null == plot) {
- return;
- }
- if (true == isParent) {
- plot.setBackgroundImage(ImageResources.BG_GRADIENT);
- } else {
- plot.setBackgroundImage(ImageResources.BG_CHILD_GRADIENT);
- }
- plot.setAutoHeightRange(AutoRangeType.MANUAL);
- plot.setAxisFont(FontResources.CHART_AXIS_FONT);
- plot.setAxisRangeY(0, 101);
- plot.setAxisRangeX(board.getVisibleStartTime(),
- board.getVisibleEndTime());
- DAChartPlotTooltip tooltip = new DAChartPlotTooltip(-1);
- tooltip.setFont(FontResources.CHART_TOOLTIP_FONT);
- plot.setTooltip(tooltip);
-
- DAPopupMenu popupMenu = new DAPopupMenu(chart);
- popupMenu.setFont(FontResources.CONTEXT_MENU_ITEM_FONT);
- DAPopupMenuItem startItem = new DAPopupMenuItem(popupMenu,
- DAPopupMenuItem.NONE);
- startItem.setText(TimelineChartLabels.RANGE_CONTEXT_SET_START);
- startItem.addListener(new PopupStartMenuItemClickListener(startItem,
- board));
-
- DAPopupMenuItem endItem = new DAPopupMenuItem(popupMenu,
- DAPopupMenuItem.NONE);
- endItem.setText(TimelineChartLabels.RANGE_CONTEXT_SET_END);
- endItem.addListener(new PopupEndMenuItemClickListener(endItem, board));
-
- DAPopupMenuItem fromSelectionItem = new DAPopupMenuItem(popupMenu,
- DAPopupMenuItem.NONE);
- fromSelectionItem
- .setText(TimelineChartLabels.RANGE_CONTEXT_SET_FROM_SELECTION);
- fromSelectionItem
- .addListener(new PopupFromSelectionMenuItemClickListener(
- fromSelectionItem, board));
-
- DAPopupMenuItem analysisItem = new DAPopupMenuItem(popupMenu,
- DAPopupMenuItem.NONE);
- analysisItem.setText(TimelineChartLabels.RANGE_CONTEXT_ANALYSIS);
- analysisItem.addListener(new PopupAnalysisMenuItemClickListener());
-
- DAPopupMenuItem clearItem = new DAPopupMenuItem(popupMenu,
- DAPopupMenuItem.NONE);
- clearItem.setText(TimelineChartLabels.RANGE_CONTEXT_CLEAR);
- clearItem.addListener(new PopupClearMenuItemClickListener());
-
- TimelineChartMouseEventListener timelineChartMouseEventListener = new TimelineChartMouseEventListener(
- popupMenu, board.getTimeline());
- chart.addMouseListener(timelineChartMouseEventListener);
- chart.addMouseMoveListener(timelineChartMouseEventListener);
- chart.addMouseTrackListener(new TimelineChartMouseTrackAdapter(board
- .getTimeline()));
- plot.setMarkers(board.getMarkers());
- }
-
- private boolean createNetworkBoardItem(NetworkChartData parent,
- NetworkChartData sync, NetworkChartDataEvent event) {
- DAChartBoardItem item;
- DAChart chart;
- if (null == parent) {
- item = new DAChartBoardItem(board, sync.getAddressName());
- chart = item.getChart();
- initNetworkChart(chart, true);
- sync.setChartKeyName(sync.getAddressName());
- } else {
- DAChartBoardItem parentItem = parent.getItem();
- String objectName = CommonConstants.EMPTY;
- if (event.getConnectedType() == NetworkChartDataEvent.NETWORK_CHART_SERVER_NAME) {
- objectName = NetworkPageLabels.NETWORK_CHART_SERVER_NAME;
- } else if (event.getConnectedType() == NetworkChartDataEvent.NETWORK_CHART_CLIENT_NAME) {
- objectName = NetworkPageLabels.NETWORK_CHART_CLIENT_NAME;
- } else if (event.getConnectedType() == NetworkChartDataEvent.NETWORK_CHART_SESSION_NAME) {
- objectName = NetworkPageLabels.NETWORK_CHART_SESSION_NAME;
- } else if (event.getConnectedType() == NetworkChartDataEvent.NETWORK_CHART_TRANSACTION_NAME) {
- objectName = NetworkPageLabels.NETWORK_CHART_TRANSACTION_NAME;
- } else {
- objectName = NetworkPageLabels.NETWORK_CHART_CLIENT_NAME;
- }
- item = new DAChartBoardItem(parentItem, objectName
- + CommonConstants.NEW_LINE + sync.getFD());
- sync.setChartKeyName(objectName + sync.getFD());
- chart = item.getChart();
- initNetworkChart(chart, false);
- }
-
- DAChartSeries apiSeries = new DAChartSeries(
- NetworkPageLabels.NETWORK_CHART_API,
- DAChartSeries.SERIES_STYLE_EVENT, ColorResources.YELLOW);
-
- DAChartSeries stateSeries = new DAChartSeries(
- NetworkPageLabels.NETWORK_CHART_SERIES,
- DAChartSeries.SERIES_STYLE_STATE, ColorResources.WHITE);
-
- DAChartSeries accessSeries = new DAChartSeries(
- NetworkPageLabels.NETWORK_CHART_ACCESS,
- DAChartSeries.SERIES_STYLE_EVENT_AREA, ColorResources.WHITE);
-
- apiSeries.setSummarizeTooltipText(ThreadPageLabels.THREAD_TOOLTIP_APIS);
-
- chart.addSeries(stateSeries);
- chart.addSeries(apiSeries);
- chart.addSeries(accessSeries);
-
- sync.setItem(item);
- item.setData(sync);
- chart.setData(sync);
- chart.redraw();
- return true;
- }
-
- // private boolean createTransmissionSizeBoardItem() {
- // if (null == networkTransmissionSizeItem) {
- // if (null == board) {
- // return false;
- // }
- // DAChart chart;
- // networkTransmissionSizeItem = NetworkTrafficChart.getInstance()
- // .createBoardItem(board);
- //
- // chart = networkTransmissionSizeItem.getChart();
- // initNetworkChart(chart, true);
- // }
- // return true;
- // }
-
- private NetworkChartData findAddressChart(NetworkChartDataEvent data) {
-
- String address = addressByFdHashMap.get(data.getFD());
- if (null != address) {
- data.setAddress(address);
- }
- NetworkChartData returnData = null;
- for (int i = 0; i < connectedDataList.size(); i++) {
- returnData = connectedDataList.get(i);
- if (returnData.getAddress().equals(data.getAddress())) {
- return returnData;
- }
- }
- return null;
- }
-
- private void chartFilteringByPId() {
- if (null == board || null == board.getItemList()) {
- return;
- }
- int selectedPid = ToolbarArea.getInstance().getSelectedPid();
- boolean isCheck = false;
-
- if (networkEventQueue.size() > 0) {
- isCheck = true;
- }
-
- if (preSelectionPId != -1 && preSelectionPId != selectedPid) {
- isCheck = true;
- }
-
- if (isCheck) {
- int parentSize = board.getItemList().getItemSize();
- for (int i = 0; i < parentSize; i++) {
- DAChartBoardItem parentItem = board.getItemList().get(i);
- int childSize = parentItem.getChildItemList().getItemSize();
- int hidedCount = 0;
- for (int j = 0; j < childSize; j++) {
- DAChartBoardItem childItem = parentItem.getChildItemList()
- .get(j);
- int itemPid = getItemPid(childItem);
- if (itemPid == selectedPid) {
- parentItem.getChildItemList().showItem(j);
- board.showItem(i);
- } else if (selectedPid == 0) {
- parentItem.getChildItemList().showItem(j);
- board.showItem(i);
- } else if (itemPid == -1) {
- board.showItem(i);
- } else {
- parentItem.getChildItemList().hideItem(j);
- hidedCount++;
- }
- }
- if (childSize == 0) {
- int itemPid = getItemPid(parentItem);
- if (itemPid == selectedPid) {
- board.showItem(i);
- } else if (selectedPid == 0) {
- board.showItem(i);
- } else if (itemPid == -1) {
- board.showItem(i);
- } else {
- board.hideItem(i);
- hidedCount++;
- }
- } else {
- if (childSize == hidedCount) {
- board.hideItem(i);
- }
- }
- }
- }
- preSelectionPId = selectedPid;
- }
-
- private int getItemPid(DAChartBoardItem item) {
- int pid = -1;
- if (item.getData() instanceof NetworkChartData) {
- NetworkChartData chartData = (NetworkChartData) item.getData();
- if (chartData.getContents().size() > 0) {
- pid = chartData.getContents().get(0).getContents().getPid();
- }
- }
- return pid;
- }
-
- // private void hideUnConnectedItem() {
- // if (isUnknownChart == true && isAddressChart == true) {
- // int parentSize = board.getItemList().getItemSize();
- // for (int i = 0; i < parentSize; i++) {
- // DAChartBoardItem parentItem = board.getItemList().get(i);
- // NetworkChartData itme = (NetworkChartData) parentItem.getData();
- // if (itme.getChartKeyName().equals(
- // NetworkPageLabels.NETWORK_CHART_NOTCONNECT)) {
- // board.hideItem(i);
- // }
- //
- // }
- // isUnknownChart = false;
- // }
- // }
-
- public void checkUpdate() {
-
- // createTransmissionSizeBoardItem();
-
- if (!AnalyzerManager.isRunning()) {
- int size = unknownDataList.size();
- NetworkChartData data;
- for (int i = 0; i < size; i++) {
- data = unknownDataList.get(i);
- data.checkUpdate();
- }
-
- size = connectedDataList.size();
- for (int i = 0; i < size; i++) {
- data = connectedDataList.get(i);
- data.checkUpdate();
- }
- }
-
- chartFilteringByPId();
-
- int size = networkEventQueue.size();
- if (size > 0) {
- // hideUnConnectedItem();
- NetworkChartData parentChart = null;
- NetworkChartData childChart = null;
- NetworkChartDataEvent event = null;
- for (int i = 0; i < size; i++) {
- event = networkEventQueue.get(0);
- int apiType = event.getApiType();
-
- parentChart = findAddressChart(event);
- if (parentChart == null) {
- if (unknownDataList.size() > 0) {
- parentChart = unknownDataList.get(0);
- }
- if (event.getAddress().equals("0.0.0.0\n0")) {//$NON-NLS-1$
- event.setAddress(NetworkPageLabels.NETWORK_CHART_NOTCONNECT);
- unConnectedEventQueue.add(event);
- // isUnknownChart = true;
- } else {
- parentChart = null;
- }
- } else {
- event.setAddress(parentChart.getAddress());
- }
-
- if (null == parentChart) {
- parentChart = new NetworkChartData(event, true);
- childChart = new NetworkChartData(event, false);
-
- parentChart.pushChild(childChart);
- createNetworkBoardItem(null, parentChart, event);
- createNetworkBoardItem(parentChart, childChart, event);
-
- if (!event.isFailedAPI()) {
- parentChart.setClosed(false);
- childChart.setClosed(false);
- childChart.setFDConnected(false);
- parentChart.setFDConnected(false);
- parentChart.setSocketOpendTime((long) event
- .getLogTime());
- childChart
- .setSocketOpendTime((long) event.getLogTime());
- }
-
- parentChart.pushEvent(event);
- childChart.pushEvent(event);
-
- if (event.getAddress().equals(
- NetworkPageLabels.NETWORK_CHART_NOTCONNECT)) {
- unknownDataList.add(parentChart);
- unknownDataList.add(childChart);
- } else {
- connectedDataList.add(parentChart);
- connectedDataList.add(childChart);
- }
- } else {
- childChart = parentChart.findChildData(event);
- if (null == childChart) {
- childChart = new NetworkChartData(event, false);
-
- if (event.getAddress().equals(
- NetworkPageLabels.NETWORK_CHART_NOTCONNECT)) {
- unknownDataList.add(childChart);
- } else {
- connectedDataList.add(childChart);
- }
- createNetworkBoardItem(parentChart, childChart, event);
- if (!event.isFailedAPI()) {
- childChart.setClosed(false);
- childChart.setFDConnected(false);
- childChart.setSocketOpendTime((long) event
- .getLogTime());
- }
- childChart.pushEvent(event);
- parentChart.pushChild(childChart);
- } else {
- if (apiType == LogCenterConstants.SOCKET_API_FD_CLOSE) {
- if (!event.isFailedAPI()) {
- childChart.setClosed(true);
- childChart.setSocketClosedTime((long) event
- .getLogTime());
- childChart.setFDConnected(false);
- parentChart.setFDConnected(false);
- }
- }
- childChart.pushEvent(event);
- }
- parentChart.pushEvent(event);
- parentChart.setSocketUsedTime(event.getLogTime());
- childChart.setSocketUsedTime(event.getLogTime());
- }
-
- networkEventQueue.remove(0);
- parentChart.checkUpdate();
- childChart.checkUpdate();
- }
- }
- }
-
- private String getHexString(String input) {
- String retStr = null;
- long lInput = Long.parseLong(input);
- if (lInput < 0x10000000) {
- retStr = Long.toString(lInput);
- } else {
- retStr = AnalyzerUtil.toHexdecimal(lInput);
- }
- return retStr;
- }
-
-}
+++ /dev/null
-/*
- * Dynamic Analyzer
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact:
- * Hyunjong Park <phjwithyou.park@samsung.com>
- * yeongtaik byeon <yeongtaik.byeon@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.network;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Text;
-import org.tizen.dynamicanalyzer.common.AnalyzerManager;
-import org.tizen.dynamicanalyzer.common.DASelectionData;
-import org.tizen.dynamicanalyzer.constant.CommonConstants;
-import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
-import org.tizen.dynamicanalyzer.resources.ColorResources;
-import org.tizen.dynamicanalyzer.resources.FontResources;
-import org.tizen.dynamicanalyzer.utils.Formatter;
-import org.tizen.dynamicanalyzer.widgets.da.view.DAViewComposite;
-import org.tizen.dynamicanalyzer.widgets.da.view.DAViewData;
-
-public class NetworkDetailInfoView extends DAViewComposite {
- private Composite contents = null;
- private Text detailText = null;
- private Label labelMessage = null;
- private int indexScrolledTop = 0;
-
- private final static String leftFormAttachment = CommonConstants.SPACE
- + CommonConstants.SPACE;
- private final static String heightFormAttachment = CommonConstants.NEW_LINE
- + CommonConstants.NEW_LINE;
-
- private void init() {
- detailText.setText(CommonConstants.EMPTY);
- }
-
- public NetworkDetailInfoView(Composite parent, int style) {
- super(parent, style, true);
- this.setLayout(new FillLayout());
-
- setTitle(NetworkPageLabels.NETWORK_DETAILS_TITLE);
-
- Composite detailCom = getContentArea();
- detailCom.setBackground(ColorResources.VIEW_BG_COLOR);
- detailCom.setLayout(new FormLayout());
- FormData labelData = new FormData();
- labelData.top = new FormAttachment(0, 0);
- labelData.left = new FormAttachment(0, 0);
- labelData.right = new FormAttachment(100, 0);
- labelData.bottom = new FormAttachment(100, 0);
- detailCom.setLayoutData(labelData);
-
- Composite contents = detailCom;
- contents.setBackground(ColorResources.VIEW_BG_COLOR);
- contents.setLayout(new FormLayout());
-
- detailText = new Text(contents, SWT.BORDER | SWT.V_SCROLL
- | SWT.H_SCROLL);
- detailText.setBackground(ColorResources.VIEW_BG_COLOR);
- detailText.setForeground(ColorResources.TABLE_CONTENTS_FONT_COLOR);
- detailText.setFont(FontResources.DETAIL_INFO_FONT);
-
- FormData buttonData = new FormData();
- buttonData.top = new FormAttachment(labelMessage, 0);
- buttonData.left = new FormAttachment(0, 0);
- buttonData.right = new FormAttachment(100, 0);
- buttonData.bottom = new FormAttachment(100, 0);
- detailText.setLayoutData(buttonData);
- detailText.getVerticalBar().setVisible(false);
- detailText.getHorizontalBar().setVisible(false);
-
- Listener listener = new Listener() {
- public void handleEvent(Event e) {
- indexScrolledTop = detailText.getTopIndex();
- }
- };
- ScrollBar hBar = detailText.getHorizontalBar();
- if (hBar != null) {
- hBar.addListener(SWT.Selection, listener);
- }
- ScrollBar vBar = detailText.getVerticalBar();
- if (vBar != null) {
- vBar.addListener(SWT.Selection, listener);
- }
-
- StringBuffer strDetailView = new StringBuffer();
- strDetailView.append(CommonConstants.NEW_LINE);
- strDetailView.append(leftFormAttachment
- + NetworkPageLabels.NETWORK_DETAILS_ADDRESS
- + heightFormAttachment);
- strDetailView.append(leftFormAttachment
- + NetworkPageLabels.NETWORK_DETAILS_RECV_SIZE
- + heightFormAttachment);
- strDetailView.append(leftFormAttachment
- + NetworkPageLabels.NETWORK_DETAILS_SEND_SIZE
- + heightFormAttachment);
- strDetailView.append(leftFormAttachment
- + NetworkPageLabels.NETWORK_DETAILS_TOTAL_USE_TIME
- + heightFormAttachment);
- strDetailView.append(leftFormAttachment
- + NetworkPageLabels.NETWORK_DETAILS_API_COUNT
- + heightFormAttachment);
- strDetailView.append(leftFormAttachment
- + NetworkPageLabels.NETWORK_DETAILS_FAILED_API_COUNT
- + heightFormAttachment);
- strDetailView.append(leftFormAttachment
- + NetworkPageLabels.NETWORK_DETAILS_PAYLOAD_ASCII
- + heightFormAttachment);
- if (!NetworkChartManager.getInstance().getSendAckTime()
- .equals(CommonConstants.EMPTY)) {
- strDetailView.append(leftFormAttachment
- + NetworkPageLabels.NETWORK_DETAILS_SEND_ACK_TIME
- + NetworkChartManager.getInstance().getSendAckTime()
- + heightFormAttachment);
- }
- strDetailView.append(NetworkChartManager.getInstance()
- .getPacketMessage());
- detailText.setText(strDetailView.toString());
- }
-
- @Override
- public void updateView(DAViewData data) {
- if (data instanceof DASelectionData) {
- updateData();
- indexScrolledTop = 0;
- }
- }
-
- @Override
- public void updateView() {
- updateData();
- }
-
- private void updateData() {
- NetworkApiListView view = (NetworkApiListView) AnalyzerManager
- .getCurrentPage().getView(NetworkPage.listViewID);
- NetworkChartData selectData = view.getPageData();
-
- if (null == selectData) {
- return;
- }
-
- String detailAddress = selectData.getAddress();
- detailAddress = detailAddress.replace(CommonConstants.NEW_LINE,
- CommonConstants.COLON);
-
- StringBuffer strDetailView = new StringBuffer();
- strDetailView.append(heightFormAttachment);
- strDetailView.append(leftFormAttachment
- + NetworkPageLabels.NETWORK_DETAILS_ADDRESS + detailAddress
- + heightFormAttachment);
- strDetailView.append(leftFormAttachment
- + NetworkPageLabels.NETWORK_DETAILS_RECV_SIZE
- + selectData.getRecvSize() + heightFormAttachment);
- strDetailView.append(leftFormAttachment
- + NetworkPageLabels.NETWORK_DETAILS_SEND_SIZE
- + selectData.getSendSize() + heightFormAttachment);
- strDetailView.append(leftFormAttachment
- + NetworkPageLabels.NETWORK_DETAILS_TOTAL_USE_TIME
- + Formatter.toTimeFormat(Long.toString((long) selectData
- .getTotalUseTime())) + NetworkPageLabels.TIME_MS
- + heightFormAttachment);
- strDetailView.append(leftFormAttachment
- + NetworkPageLabels.NETWORK_DETAILS_API_COUNT
- + selectData.getApiCount() + heightFormAttachment);
- strDetailView.append(leftFormAttachment
- + NetworkPageLabels.NETWORK_DETAILS_FAILED_API_COUNT
- + selectData.getFailedApiCount() + heightFormAttachment);
- if (!NetworkChartManager.getInstance().getSendAckTime()
- .equals(CommonConstants.EMPTY)) {
- strDetailView.append(leftFormAttachment
- + NetworkPageLabels.NETWORK_DETAILS_SEND_ACK_TIME
- + NetworkChartManager.getInstance().getSendAckTime()
- + NetworkPageLabels.TIME_MS + heightFormAttachment);
- }
-
- strDetailView.append(NetworkChartManager.getInstance()
- .getPacketMessage());
- if (indexScrolledTop == 0) {
- detailText.setText(strDetailView.toString());
- }
-
- }
-
- public void setTetailViewData() {
-
- }
-
- @Override
- public Control getControl() {
- return contents;
- }
-
- @Override
- public void clear() {
- init();
- }
-}
--- /dev/null
+/*
+ * Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Hyunjong Park <phjwithyou.park@samsung.com>
+ * yeongtaik byeon <yeongtaik.byeon@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.network;
+
+import java.util.List;
+
+import org.eclipse.nebula.widgets.grid.GridItem;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.tizen.dynamicanalyzer.common.DASelectionData;
+import org.tizen.dynamicanalyzer.constant.CommonConstants;
+import org.tizen.dynamicanalyzer.logparser.LogCenterConstants;
+import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
+import org.tizen.dynamicanalyzer.resources.ColorResources;
+import org.tizen.dynamicanalyzer.resources.FontResources;
+import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkAPIType;
+import org.tizen.dynamicanalyzer.ui.widgets.table.DATableDataFormat;
+import org.tizen.dynamicanalyzer.utils.Formatter;
+import org.tizen.dynamicanalyzer.widgets.da.view.DAViewComposite;
+import org.tizen.dynamicanalyzer.widgets.da.view.DAViewData;
+
+public class NetworkDetailView extends DAViewComposite {
+ private Composite contents = null;
+ private Text detailText = null;
+ private Label labelMessage = null;
+
+ private final static String leftFormAttachment = CommonConstants.SPACE
+ + CommonConstants.SPACE;
+ private final static String heightFormAttachment = CommonConstants.NEW_LINE
+ + CommonConstants.NEW_LINE;
+
+ private void init() {
+ detailText.setText(CommonConstants.EMPTY);
+ }
+
+ public NetworkDetailView(Composite parent, int style) {
+ super(parent, style, true);
+ this.setLayout(new FillLayout());
+
+ setTitle(NetworkPageLabels.NETWORK_DETAILS_TITLE);
+
+ Composite detailCom = getContentArea();
+ detailCom.setBackground(ColorResources.VIEW_BG_COLOR);
+ detailCom.setLayout(new FormLayout());
+ FormData labelData = new FormData();
+ labelData.top = new FormAttachment(0, 0);
+ labelData.left = new FormAttachment(0, 0);
+ labelData.right = new FormAttachment(100, 0);
+ labelData.bottom = new FormAttachment(100, 0);
+ detailCom.setLayoutData(labelData);
+
+ Composite contents = detailCom;
+ contents.setBackground(ColorResources.VIEW_BG_COLOR);
+ contents.setLayout(new FormLayout());
+
+ detailText = new Text(contents, SWT.BORDER | SWT.V_SCROLL
+ | SWT.H_SCROLL);
+ detailText.setBackground(ColorResources.VIEW_BG_COLOR);
+ detailText.setForeground(ColorResources.TABLE_CONTENTS_FONT_COLOR);
+ detailText.setFont(FontResources.DETAIL_INFO_FONT);
+
+ FormData buttonData = new FormData();
+ buttonData.top = new FormAttachment(labelMessage, 0);
+ buttonData.left = new FormAttachment(0, 0);
+ buttonData.right = new FormAttachment(100, 0);
+ buttonData.bottom = new FormAttachment(100, 0);
+ detailText.setLayoutData(buttonData);
+ detailText.getVerticalBar().setVisible(false);
+ detailText.getHorizontalBar().setVisible(false);
+
+ StringBuffer strDetailView = new StringBuffer();
+ strDetailView.append(CommonConstants.NEW_LINE);
+ strDetailView.append(leftFormAttachment
+ + NetworkPageLabels.NETWORK_DETAILS_ADDRESS
+ + heightFormAttachment);
+ strDetailView.append(leftFormAttachment
+ + NetworkPageLabels.NETWORK_DETAILS_RECV_SIZE
+ + heightFormAttachment);
+ strDetailView.append(leftFormAttachment
+ + NetworkPageLabels.NETWORK_DETAILS_SEND_SIZE
+ + heightFormAttachment);
+ strDetailView.append(leftFormAttachment
+ + NetworkPageLabels.NETWORK_DETAILS_TOTAL_USE_TIME
+ + heightFormAttachment);
+ strDetailView.append(leftFormAttachment
+ + NetworkPageLabels.NETWORK_DETAILS_API_COUNT
+ + heightFormAttachment);
+ strDetailView.append(leftFormAttachment
+ + NetworkPageLabels.NETWORK_DETAILS_FAILED_API_COUNT
+ + heightFormAttachment);
+ strDetailView.append(leftFormAttachment
+ + NetworkPageLabels.NETWORK_DETAILS_PAYLOAD_ASCII
+ + heightFormAttachment);
+
+ strDetailView.append(leftFormAttachment
+ + NetworkPageLabels.NETWORK_DETAILS_SEND_ACK_TIME
+ + heightFormAttachment);
+ strDetailView.append(CommonConstants.EMPTY);
+ detailText.setText(strDetailView.toString());
+ }
+
+ @Override
+ public void updateView(DAViewData data) {
+ if (data instanceof DASelectionData) {
+ DASelectionData seldata = (DASelectionData) data;
+ int seq = 0;
+ if (seldata.getData() instanceof GridItem[]) {
+ GridItem[] tableData = (GridItem[]) data.getData();
+ DATableDataFormat tableFormat = (DATableDataFormat) tableData[0]
+ .getData();
+ NetworkAPIType apiType = (NetworkAPIType) tableFormat
+ .getLogData();
+ seq = apiType.getSeq();
+ }
+ updateData(seq);
+ }
+ }
+
+ @Override
+ public void updateView() {
+ }
+
+ private void updateData(int seq) {
+ List<NetworkAPIType> contentList = NetworkDataManager.getInstance()
+ .getSelectedTableAPIList();
+ if (null == contentList) {
+ return;
+ }
+
+ int sendSize = 0;
+ int recvSize = 0;
+ int apiCount = 0;
+ int failedAPICount = 0;
+ long usedTime = contentList.get(contentList.size() - 1).getTime()
+ - contentList.get(0).getTime();
+ String payload = CommonConstants.EMPTY;
+
+ // ackSendTime
+ String sendAckTime = CommonConstants.EMPTY;
+ long recvTime = 0;
+ long sendTime = 0;
+ boolean isSendAPICall = false;
+
+ for (int i = 0; i < contentList.size(); i++) {
+ NetworkAPIType apiType = contentList.get(i);
+
+ if (apiType.getFdApiType() == LogCenterConstants.SOCKET_API_SEND_END
+ || apiType.getFdApiType() == LogCenterConstants.HTTP_API_REQUEST) {
+ sendSize += apiType.getPacketMessageSize();
+ if (seq == apiType.getSeq()) {
+ payload = apiType.getPacketMessage();
+ sendTime = apiType.getTime();
+ isSendAPICall = true;
+ }
+
+ } else if (apiType.getFdApiType() == LogCenterConstants.SOCKET_API_RECV_END
+ || apiType.getFdApiType() == LogCenterConstants.HTTP_API_RESPONSE) {
+ recvSize += apiType.getPacketMessageSize();
+ if (seq == apiType.getSeq()) {
+ payload = apiType.getPacketMessage();
+ }
+
+ if (isSendAPICall) {
+ isSendAPICall = false;
+ recvTime = apiType.getTime();
+ }
+
+ }
+
+ if (apiType.getErrno() > 0) {
+ failedAPICount++;
+ }
+
+ if (apiType.getFdApiType() == LogCenterConstants.SOCKET_API_RECV_END
+ || apiType.getFdApiType() == LogCenterConstants.SOCKET_API_SEND_END
+ || apiType.getFdApiType() == LogCenterConstants.SOCKET_API_ACCEPT_END
+ || apiType.getFdApiType() == LogCenterConstants.SOCKET_API_EVENT_END) {
+ continue;
+ } else {
+ apiCount++;
+ }
+ }
+ if (sendTime > 0 && recvTime > 0) {
+ long ackTime = recvTime - sendTime;
+ String timeFormat = Formatter.toTimeFormat(ackTime);
+ sendAckTime = timeFormat.replace("00:", CommonConstants.EMPTY);//$NON-NLS-1$
+ }
+
+ String detailAddress = contentList.get(0).getDestinationAddress();
+ detailAddress = detailAddress.replace(CommonConstants.NEW_LINE,
+ CommonConstants.COLON);
+
+ StringBuffer strDetailView = new StringBuffer();
+ strDetailView.append(heightFormAttachment);
+ strDetailView.append(leftFormAttachment
+ + NetworkPageLabels.NETWORK_DETAILS_ADDRESS + detailAddress
+ + heightFormAttachment);
+
+ strDetailView.append(leftFormAttachment
+ + NetworkPageLabels.NETWORK_DETAILS_RECV_SIZE + recvSize
+ + heightFormAttachment);
+
+ strDetailView.append(leftFormAttachment
+ + NetworkPageLabels.NETWORK_DETAILS_SEND_SIZE + sendSize
+ + heightFormAttachment);
+
+ strDetailView.append(leftFormAttachment
+ + NetworkPageLabels.NETWORK_DETAILS_TOTAL_USE_TIME
+ + Formatter.toTimeFormat(usedTime) + heightFormAttachment);
+
+ strDetailView.append(leftFormAttachment
+ + NetworkPageLabels.NETWORK_DETAILS_API_COUNT + apiCount
+ + heightFormAttachment);
+
+ strDetailView.append(leftFormAttachment
+ + NetworkPageLabels.NETWORK_DETAILS_FAILED_API_COUNT
+ + failedAPICount + heightFormAttachment);
+
+ if (!sendAckTime.equals(CommonConstants.EMPTY)) {
+ strDetailView.append(leftFormAttachment
+ + NetworkPageLabels.NETWORK_DETAILS_SEND_ACK_TIME
+ + sendAckTime + NetworkPageLabels.TIME_MS
+ + heightFormAttachment);
+ }
+
+ if (!payload.equals(CommonConstants.EMPTY)) {
+ detailText.getVerticalBar().setVisible(true);
+ detailText.getHorizontalBar().setVisible(true);
+ strDetailView.append(setPacketMessage(payload));
+ } else {
+ detailText.getVerticalBar().setVisible(true);
+ detailText.getHorizontalBar().setVisible(true);
+ }
+
+ detailText.setText(strDetailView.toString());
+
+ }
+
+ public String setPacketMessage(String packetMessage) {
+ StringBuffer out = new StringBuffer();
+ StringBuffer strHex = new StringBuffer();
+ StringBuffer strAscii = new StringBuffer();
+ int index = 0;
+ long hexAddress = 0;
+ for (int nIndex = 0; nIndex < packetMessage.length(); nIndex++) {
+
+ strAscii.append(packetMessage.charAt(nIndex));
+
+ if (index % 8 == 0) {
+ hexAddress++;
+ String strHexCode = Long.toHexString((Long) hexAddress)
+ .toUpperCase();
+ String strhexCodeFormat = CommonConstants.EMPTY;
+ if (strHexCode.length() == 1) {
+ strhexCodeFormat += CommonConstants.ZERO
+ + CommonConstants.ZERO + strHexCode
+ + CommonConstants.ZERO;
+ } else if (strHexCode.length() == 2) {
+ strhexCodeFormat += CommonConstants.ZERO + strHexCode
+ + CommonConstants.ZERO;
+ } else if (strHexCode.length() == 3) {
+ strhexCodeFormat += strHexCode + CommonConstants.ZERO;
+ }
+ strHex.append(CommonConstants.NEW_LINE)
+ .append(strhexCodeFormat).append(CommonConstants.TAB);
+
+ }
+ strHex.append(String.format("%02X ",//$NON-NLS-1$
+ (int) packetMessage.charAt(nIndex)));
+
+ index++;
+ }
+
+ out.append(CommonConstants.SPACE).append(CommonConstants.SPACE);
+ out.append(NetworkPageLabels.NETWORK_DETAILS_PAYLOAD_ASCII)
+ .append(CommonConstants.NEW_LINE)
+ .append(CommonConstants.NEW_LINE);
+ out.append(strAscii.toString());
+
+ out.append(CommonConstants.NEW_LINE).append(CommonConstants.NEW_LINE);
+ out.append(CommonConstants.SPACE).append(CommonConstants.SPACE);
+
+ out.append(NetworkPageLabels.NETWORK_DETAILS_PAYLOAD_HEXCODE).append(
+ CommonConstants.NEW_LINE);
+ out.append(strHex.toString());
+ return out.toString();
+ }
+
+ @Override
+ public Control getControl() {
+ return contents;
+ }
+
+ @Override
+ public void clear() {
+ init();
+ }
+}
import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
import org.tizen.dynamicanalyzer.shortcut.ShortCutManager;
import org.tizen.dynamicanalyzer.swap.logparser.DataManagerRegistry;
-import org.tizen.dynamicanalyzer.ui.network.NetworkApiListView;
-import org.tizen.dynamicanalyzer.ui.network.NetworkDetailInfoView;
+import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager;
import org.tizen.dynamicanalyzer.ui.page.ScreenshotTabComposite;
import org.tizen.dynamicanalyzer.widgets.da.view.DAPageComposite;
public class NetworkPage extends DAPageComposite {
public static final String pageID = NetworkPage.class.getName();
public static final String chartViewID = NetworkChartView.class.getName();
- public static final String listViewID = NetworkApiListView.class.getName();
- public static final String detailViewID = NetworkDetailInfoView.class
+ public static final String listViewID = NetworkTableView.class.getName();
+ public static final String detailViewID = NetworkDetailView.class
.getName();
SashForm baseForm;
NetworkChartView networkChartView = new NetworkChartView(leftForm,
SWT.NONE);
addView(networkChartView);
- NetworkApiListView networkApiListView = new NetworkApiListView(
+ NetworkTableView networkApiListView = new NetworkTableView(
leftForm, SWT.NONE);
addView(networkApiListView);
new String[] { NetworkPage.listViewID });
addView(tabView);
- NetworkDetailInfoView detailInfo = new NetworkDetailInfoView(rightForm,
+ NetworkDetailView detailInfo = new NetworkDetailView(rightForm,
SWT.NONE);
addView(detailInfo);
leftForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
rightForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
- DataManagerRegistry.registerPageDataManager(NetworkChartManager.getInstance());
+ DataManagerRegistry.registerPageDataManager(NetworkDataManager.getInstance());
+
}
@Override
import org.tizen.dynamicanalyzer.error.ErrorCodeManager;
import org.tizen.dynamicanalyzer.logparser.LogCenterConstants;
import org.tizen.dynamicanalyzer.model.TableInput;
+import org.tizen.dynamicanalyzer.swap.channel.data.ApiNameManager;
import org.tizen.dynamicanalyzer.swap.model.data.NetworkData;
+import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkAPIType;
import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
import org.tizen.dynamicanalyzer.ui.widgets.table.DAApiListTableComposite;
import org.tizen.dynamicanalyzer.ui.widgets.table.DATableDataFormat;
import org.tizen.dynamicanalyzer.utils.Formatter;
-public class NetworkApiListTable extends DAApiListTableComposite {
- private final int tableTimeColumn = 1;
- private final int tableElapsedTimeColumn = 2;
- private final int tableApiNameColumn = 5;
-
- public NetworkApiListTable(Composite parent, int compStyle, int tableStyle) {
+public class NetworkTable extends DAApiListTableComposite {
+ public NetworkTable(Composite parent, int compStyle, int tableStyle) {
super(parent, compStyle, tableStyle);
table.addSelectionListener(new SelectionListener() {
endTime = itemTime;
}
}
-
DASelectionData selData = new DASelectionData(
- NetworkPage.listViewID, startTime, endTime, items,
- table);
+ NetworkTableView.ID, startTime, endTime, items, table);
AnalyzerManager.getCurrentPage().updateView(selData);
-
- DATableDataFormat dataFormats = (DATableDataFormat) items[0]
- .getData();
- NetworkData networkData = (NetworkData) dataFormats
- .getLogData();
-
- NetworkChartManager.getInstance().setPacketMessage(
- networkData.getPacketMessage());
-
- int sendAckTime = getSendAckTime();
- if (sendAckTime != -1) {
- String timeFormat = Formatter
- .toTimeFormat((long) sendAckTime);
- NetworkChartManager.getInstance()
- .setSendAckTime(timeFormat);
- } else {
- NetworkChartManager.getInstance().setSendAckTime(
- CommonConstants.EMPTY);
- }
-
- AnalyzerManager.getCurrentPage().updateView();
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
+ // TODO Auto-generated method stub
}
});
}
- private int getSendAckTime() {
- int sendAckTime = -1;
- int selectedIndex = table.getSelectionIndex();
- String apiName = table.getItem(selectedIndex).getText(
- tableApiNameColumn);
- if (apiName.contains("send") || apiName.contains("Submit")) {//$NON-NLS-1$
- String strSendTime = table.getItem(selectedIndex).getText(
- tableTimeColumn);
- String strRecvTime = CommonConstants.EMPTY;
- String strElapsedTime = CommonConstants.EMPTY;
- for (int i = selectedIndex; i < table.getItemCount(); i++) {
- apiName = table.getItem(i).getText(tableApiNameColumn);
- if (apiName.contains("recv") || apiName.contains("GetResponse")) {//$NON-NLS-1$
- strRecvTime = table.getItem(i).getText(tableTimeColumn);
- strElapsedTime = table.getItem(i).getText(
- tableElapsedTimeColumn);
- break;
- }
- }
- int sendTime = getIntegerTime(strSendTime);
- int recvTime = getIntegerTime(strRecvTime);
- int elapsedTime = getIntegerElaspsedTime(strElapsedTime);
- sendAckTime = (recvTime + elapsedTime) - sendTime;
- return sendAckTime * 1000;
- }
- return -1;
-
- }
-
- private int getIntegerTime(String strTime) {
- String time = strTime.replace(CommonConstants.COLON,
- CommonConstants.EMPTY);
- time = time.replace(CommonConstants.DOT, CommonConstants.EMPTY);
- int intTime = Integer.parseInt(time);
- return intTime;
- }
-
- private int getIntegerElaspsedTime(String strTime) {
- String time = strTime.replace(CommonConstants.DOT,
- CommonConstants.EMPTY);
- int intTime = Integer.parseInt(time);
- return intTime;
- }
-
@Override
protected List<TableInput> makeTableInput() {
- NetworkApiListView view = (NetworkApiListView) AnalyzerManager
- .getCurrentPage().getView(NetworkPage.listViewID);
- NetworkChartData data = view.getPageData();
- if (null == data) {
- return null;
- }
+ NetworkTableView view = (NetworkTableView) AnalyzerManager
+ .getCurrentPage().getView(NetworkTableView.ID);
long rangeStartTime = view.getRangeStartTime();
long rangeEndTime = view.getRangeEndTime();
List<TableInput> input = new ArrayList<TableInput>();
- List<NetworkChartDataEvent> contents = data.getContents();
- NetworkChartDataEvent content;
+ List<NetworkAPIType> contentList = NetworkDataManager.getInstance()
+ .getSelectedTableAPIList();
+ if (null == contentList) {
+ return null;
+ }
HashMap<String, Integer> findStartAPITableIndexHashMap = new HashMap<String, Integer>();
List<Integer> removeTableIndex = new ArrayList<Integer>();
- for (int i = 0; i < contents.size(); i++) {
- content = contents.get(i);
- NetworkData contentTemp = content.getContents();
+ for (int i = 0; i < contentList.size(); i++) {
+ NetworkAPIType contentTemp = contentList.get(i);
int selectedPid = ToolbarArea.getInstance().getSelectedPid();
if (selectedPid != 0) {
if (selectedPid != contentTemp.getPid()) {
.equals(Integer
.toString(LogCenterConstants.SOCKET_API_EVENT_START))) {
- String keString = contentTemp.getApiName()
- + contentTemp.getPid() + contentTemp.getTid();
+ String keString = ApiNameManager.getApiName(contentTemp
+ .getApiNameID())
+ + contentTemp.getPid()
+ + contentTemp.getTid();
findStartAPITableIndexHashMap.put(keString, i);
contentText.add(Formatter.toTimeFormat(contentTemp.getTime())); // start//
- contentData.add(Long.toString(contentTemp.getTime()));
+ contentData.add(Formatter.toTimeFormat(contentTemp.getTime()));
contentText.add("00.000");//$NON-NLS-1$
- contentData.add("00.000");//$NON-NLS-1$
+ contentData.add("0");//$NON-NLS-1$
} else if (fdApiType.equals(Integer
.toString(LogCenterConstants.SOCKET_API_RECV_END))
.toString(LogCenterConstants.SOCKET_API_ACCEPT_END))
|| fdApiType.equals(Integer
.toString(LogCenterConstants.SOCKET_API_EVENT_END))) {
- String keString = contentTemp.getApiName()
- + contentTemp.getPid() + contentTemp.getTid();
+ String keString = ApiNameManager.getApiName(contentTemp
+ .getApiNameID())
+ + contentTemp.getPid()
+ + contentTemp.getTid();
startLogIndex = findStartAPITableIndexHashMap.get(keString);
if (null != startLogIndex) {
contentText.add(input.get(startLogIndex.intValue())
contentData.add(input.get(startLogIndex.intValue())
.getText().get(1));
- long startTime = contents.get(startLogIndex.intValue())
- .getContents().getTime();
+ long startTime = contentList.get(startLogIndex.intValue())
+ .getTime();
String timeFormat = Formatter.toTimeFormat(contentTemp
.getTime() - startTime);
String removeTimeFormat = timeFormat.replace(
.getTime())); // start//
contentData.add(Long.toString(contentTemp.getTime()));
contentText.add("00.000");//$NON-NLS-1$
- contentData.add("00.000");//$NON-NLS-1$
+ contentData.add("0");//$NON-NLS-1$
}
} else {
contentText.add(Formatter.toTimeFormat(contentTemp.getTime())); // start//
// time
contentData.add(Long.toString(contentTemp.getTime()));
contentText.add("00.000");//$NON-NLS-1$ //elapsed time
- contentData.add("00.000");//$NON-NLS-1$
+ contentData.add("0");//$NON-NLS-1$
}
contentText.add(Integer.toString(contentTemp.getPid()));
int apiType = contentTemp.getFdApiType();
if (apiType == LogCenterConstants.SOCKET_API_SEND_END
|| apiType == LogCenterConstants.SOCKET_API_RECV_END
- || apiType == LogCenterConstants.SOCKET_API_ACCEPT_END
|| apiType == LogCenterConstants.HTTP_API_REQUEST
|| apiType == LogCenterConstants.HTTP_API_RESPONSE) {
contentText.add(Integer.toString(contentTemp
contentData.add(CommonConstants.EMPTY);
}
- contentText.add(contentTemp.getPacketMessage());
- contentData.add(contentTemp.getPacketMessage());
+ StringBuffer payloadInfo = new StringBuffer(
+ contentTemp.getPacketMessage());
+ if (payloadInfo.length() > 20) {
+ payloadInfo.replace(10, payloadInfo.length(),
+ CommonConstants.EMPTY);
+ payloadInfo.insert(payloadInfo.length(), "...");//$NON-NLS-1$
+ }
+ contentText.add(payloadInfo.toString());
+ contentData.add(payloadInfo.toString());
String errMsg = ErrorCodeManager.getInatance().getErrorCode(
Long.toString(contentTemp.getErrno()));
}
protected void actionSetStartEnd(int type) {
+
GridItem item = table.getItem(mousePoint);
if (null != item) {
NetworkData data = (NetworkData) ((DATableDataFormat) item
package org.tizen.dynamicanalyzer.ui.network;
-import org.eclipse.nebula.widgets.grid.Grid;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
-import org.tizen.dynamicanalyzer.common.AnalyzerManager;
import org.tizen.dynamicanalyzer.common.DASelectionData;
-import org.tizen.dynamicanalyzer.constant.CommonConstants;
import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
import org.tizen.dynamicanalyzer.resources.ColorResources;
-import org.tizen.dynamicanalyzer.swap.model.data.LogData;
+import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkSelectionType;
import org.tizen.dynamicanalyzer.ui.range.RangeDataManager;
import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
import org.tizen.dynamicanalyzer.ui.widgets.table.TableColumnSizePackListener;
import org.tizen.dynamicanalyzer.widgets.da.view.DAViewComposite;
import org.tizen.dynamicanalyzer.widgets.da.view.DAViewData;
-public class NetworkApiListView extends DAViewComposite {
- private NetworkChartData data;
- private long analysisStartTime = 0;
- private long analysisEndTime = 0;
- private long selectionStartTime = 0;
- private long selectionEndTime = 0;
+public class NetworkTableView extends DAViewComposite {
+
+ public static final String ID = NetworkTableView.class.getName();
+ private long preAnalysisStartTime = 0;
+ private long preAnalysisEndTime = 0;
+ private boolean isChangedSelected = true;
private int preSelectionPId = 1;
private String[] columnNames = {
SWT.RIGHT, SWT.LEFT };
int[] sortTypes = { AnalyzerConstants.SORT_TYPE_NUM,
+ AnalyzerConstants.SORT_TYPE_STRING,
AnalyzerConstants.SORT_TYPE_NUM, AnalyzerConstants.SORT_TYPE_NUM,
- AnalyzerConstants.SORT_TYPE_NUM, AnalyzerConstants.SORT_TYPE_NUM,
+ AnalyzerConstants.SORT_TYPE_NUM,
AnalyzerConstants.SORT_TYPE_STRING,
AnalyzerConstants.SORT_TYPE_STRING,
AnalyzerConstants.SORT_TYPE_STRING,
AnalyzerConstants.SORT_TYPE_STRING,
AnalyzerConstants.SORT_TYPE_STRING };
- NetworkApiListTable tableComp = null;
+ NetworkTable tableComp = null;
- public NetworkApiListView(Composite parent, int style) {
+ public NetworkTableView(Composite parent, int style) {
super(parent, style, true);
this.setLayout(new FillLayout());
Composite contents = getContentArea();
contents.setBackground(ColorResources.WINDOW_BG_COLOR);
contents.setLayout(new FillLayout());
- tableComp = new NetworkApiListTable(contents, SWT.NONE, SWT.MULTI
- | SWT.BORDER | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
+ tableComp = new NetworkTable(contents, SWT.NONE, SWT.MULTI | SWT.BORDER
+ | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
tableComp.setSortTypes(sortTypes);
tableComp.setColumnAlignment(columnAlignment);
tableComp.setColumns(columnNames);
@Override
public void updateView() {
- if (null == data) {
+ if (null == tableComp) {
return;
}
+ if (isUpdateTable()) {
+ tableComp.updateTable();
+ }
+ }
+
+ private boolean isUpdateTable() {
+ boolean isUpdate = false;
+ // Change PID
+ int selectedPid = ToolbarArea.getInstance().getSelectedPid();
+ if (preSelectionPId != -1 && preSelectionPId != selectedPid) {
+ isUpdate = true;
+ }
+ preSelectionPId = selectedPid;
+
+ // Change Analyzer
long newAnalysisStartTime = 0;
long newAnalysisEndTime = 0;
-
if (RangeDataManager.getInstance().isBeingAnalyzed()) {
newAnalysisStartTime = RangeDataManager.getInstance()
.getAnalysisStartTime();
newAnalysisStartTime = 0;
newAnalysisEndTime = 0;
}
-
- if (newAnalysisStartTime != analysisStartTime
- || newAnalysisEndTime != analysisEndTime) {
- analysisStartTime = newAnalysisStartTime;
- analysisEndTime = newAnalysisEndTime;
- tableComp.updateTable();
- return;
- }
-
- int selectedPid = ToolbarArea.getInstance().getSelectedPid();
- if (preSelectionPId != -1 && preSelectionPId != selectedPid) {
- tableComp.updateTable();
+ if (newAnalysisStartTime != preAnalysisStartTime
+ || newAnalysisEndTime != preAnalysisEndTime) {
+ preAnalysisStartTime = newAnalysisStartTime;
+ preAnalysisEndTime = newAnalysisEndTime;
+ isUpdate = true;
}
- preSelectionPId = selectedPid;
-
- if (tableComp.getTable().getItemCount() > 0
- && data.getContents().size() != tableComp.getTable()
- .getItemCount()) {
- tableComp.updateTable();
+ // Change Selection
+ if (isChangedSelected) {
+ isChangedSelected = false;
+ isUpdate = true;
}
-
+ return isUpdate;
}
@Override
public void updateView(DAViewData data) {
if (data instanceof DASelectionData) {
DASelectionData selData = (DASelectionData) data;
-
- if (selData.isLogData()) {
- Object odata = selData.getData();
- if (odata != null && (odata instanceof LogData)) {
- LogData ldata = (LogData) odata;
- int seq = ldata.getSeq();
- tableComp.updateTable();
- int nSize = tableComp.getTable().getItemCount();
- for (int ii = 0; ii < nSize; ii++) {
- if (tableComp.getTable().getItem(ii).getText(0)
- .equals(Integer.toString(seq))) {
- tableComp.getTable().setSelection(ii);
- tableComp
- .getTable()
- .getVerticalBar()
- .setSelection(
- getScrollSelectionIndex(
- tableComp.getTable(), ii));
- tableComp.updateTable();
- }
- }
- long selectedTime = ldata.getTime();
- DASelectionData sdata = new DASelectionData(
- NetworkPage.listViewID, selectedTime, selectedTime,
- tableComp.getTable().getSelection(),
- tableComp.getTable());
- AnalyzerManager.getCurrentPage().updateView(sdata);
- }
- } else {
- NetworkChartManager.getInstance().setPacketMessage(
- CommonConstants.EMPTY);
- NetworkChartManager.getInstance().setSendAckTime(
- CommonConstants.EMPTY);
- NetworkChartData pageData = (NetworkChartData) selData
+ long selectionStartTime = selData.getStartTime();
+ long selectionEndTime = selData.getEndTime();
+ if (selData.getData() instanceof NetworkSelectionType) {
+ NetworkSelectionType netSelection = (NetworkSelectionType) selData
.getData();
-
- if (!(pageData instanceof NetworkChartData)) {
- selectionStartTime = selData.getStartTime();
- selectionEndTime = selData.getEndTime();
- } else {
- this.data = pageData;
+ if (null == netSelection) {
+ return;
}
- tableComp.getTable().removeAll();
+ NetworkDataManager.getInstance().setSelectedTableAPIList(
+ NetworkDataManager
+ .getInstance()
+ .getAPIDBManger()
+ .selectAPITable(netSelection.getAddress(),
+ netSelection.getFd(),
+ netSelection.isParentChart()));
tableComp.updateTable();
tableComp.setSelectionByTime(selectionStartTime,
selectionEndTime);
+ isChangedSelected = true;
}
}
}
- private int getScrollSelectionIndex(Grid table, int selection) {
- int size = table.getVerticalBar().getThumb() / 2;
- int output = selection - size;
- output = (output < 0) ? 0 : output;
- return output;
- }
-
@Override
public Control getControl() {
return tableComp;
@Override
public void clear() {
tableComp.getTable().removeAll();
- data = null;
- }
-
- public NetworkChartData getPageData() {
- return data;
}
public long getRangeStartTime() {
- return analysisStartTime;
+ return preAnalysisStartTime;
}
public long getRangeEndTime() {
- return analysisEndTime;
+ return preAnalysisEndTime;
}
}
+++ /dev/null
-/*
- * Dynamic Analyzer
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact:
- * Sanghyun Lee <sanghyunnim.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.network;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.swt.graphics.Image;
-import org.tizen.dynamicanalyzer.constant.CommonConstants;
-import org.tizen.dynamicanalyzer.nl.NetworkPageLabels;
-import org.tizen.dynamicanalyzer.resources.ColorResources;
-import org.tizen.dynamicanalyzer.resources.ImageResources;
-import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
-import org.tizen.dynamicanalyzer.util.DALogger;
-import org.tizen.dynamicanalyzer.utils.Formatter;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChart;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeries;
-import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeriesItem;
-import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoard;
-import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem;
-
-public class NetworkTrafficChart {
- private static final DALogger DA_LOG = DALogger.getInstance();
-
- private static class FDCountData {
- private int type;
- private String time;
- private long data;
-
- private FDCountData(int type, String time, long data) {
- this.type = type;
- this.time = time;
- this.data = data;
- }
- }
-
- protected DAChart chart;
- protected int chartStyle = DAChart.CHART_STYLE_NORMAL;
- protected String chartName;
- protected Image chartIcon = ImageResources.CHART_NETWORK;
- private static NetworkTrafficChart instance = null;
-
- private Map<String, Integer> recvTimeIndexMap = new HashMap<String, Integer>();
- private Map<String, Integer> sendTimeIndexMap = new HashMap<String, Integer>();
- private List<FDCountData> trafficDataList = new ArrayList<FDCountData>();
-
- private DAChartSeries recvSeries;
- private DAChartSeries sendSeries;
-
- static final int TYPE_FDCOUNT = 0;
- static final int TYPE_RECV = 1;
- static final int TYPE_SEND = 2;
-
- private double maxTraffic = 0;
-
- public static NetworkTrafficChart getInstance() {
- if (instance == null) {
- instance = new NetworkTrafficChart();
- }
-
- return instance;
- }
-
- public void clear() {
-
- maxTraffic = 0;
- recvTimeIndexMap.clear();
- sendTimeIndexMap.clear();
- trafficDataList.clear();
-
- chartName = NetworkPageLabels.NETWORK_CHART_TRAFFIC_TITLE;
- recvSeries = new DAChartSeries(
- NetworkPageLabels.NETWORK_CHART_TRAFFIC_RECV,
- DAChartSeries.SERIES_STYLE_BAR,
- ColorResources.NETWORK_ACCESS_RECV);
- recvSeries.setBarAlign(DAChartSeries.SERIES_BAR_ALIGN_CENTER);
-
- sendSeries = new DAChartSeries(
- NetworkPageLabels.NETWORK_CHART_TRAFFIC_SEND,
- DAChartSeries.SERIES_STYLE_BAR,
- ColorResources.NETWORK_ACCESS_SEND);
- sendSeries.setBarAlign(DAChartSeries.SERIES_BAR_ALIGN_CENTER);
-
- }
-
- private NetworkTrafficChart() {
-
- }
-
- public DAChartBoardItem createBoardItem(DAChartBoard board) {
-
- DAChartBoardItem item = new DAChartBoardItem(board, chartName,
- chartIcon, chartStyle);
- chart = item.getChart();
-
- chart.addSeries(recvSeries);
- chart.addSeries(sendSeries);
-
- // chart.getPlot().setAutoHeightRange(AutoRangeType.MANUAL);
- chart.getPlot().setSeriesHeightRange(true);
-
- chart.getPlot().setAxisUnit(CommonConstants.EMPTY);
- chart.getPlot().setSecondAxisUnit(CommonConstants.EMPTY);
-
- chart.getPlot().setAxisUnitType(DAChartPlot.UnitType.BINARY);
- chart.getPlot().setShowAxis(true);
-
- recvSeries.setEndY(maxTraffic);
- sendSeries.setEndY(maxTraffic);
-
- return item;
- }
-
- private void sumTrafficDataList() {
- if (trafficDataList.size() == 0) {
- return;
- }
- FDCountData recvData = new FDCountData(TYPE_RECV,
- CommonConstants.EMPTY, 0);
- FDCountData sendData = new FDCountData(TYPE_SEND,
- CommonConstants.EMPTY, 0);
- for (FDCountData trafficData : trafficDataList) {
- switch (trafficData.type) {
- case TYPE_RECV: {
- recvData.time = trafficData.time;
- recvData.data += trafficData.data;
- break;
- }
- case TYPE_SEND: {
- sendData.time = trafficData.time;
- sendData.data += trafficData.data;
- break;
- }
- default:
- DA_LOG.debug("wrong file api type");//$NON-NLS-1$
- }
- }
- trafficDataList.clear();
- if (recvData.data != 0) {
- trafficDataList.add(recvData);
- }
- if (sendData.data != 0) {
- trafficDataList.add(sendData);
- }
- }
-
- public void updateTrafficChart() {
-
- sumTrafficDataList();
-
- int size = trafficDataList.size();
- if (size > 0) {
- for (int i = 0; i < size; i++) {
- FDCountData trafficData = trafficDataList.get(0);
-
- double doubleTime = Double.parseDouble(trafficData.time)
- / TimelineConstants.MEGA_DOUBLE;
- switch (trafficData.type) {
- case TYPE_RECV: {
- DAChartSeriesItem item = new DAChartSeriesItem(doubleTime,
- 0, Formatter.toByteFormat(0));
- double readSum = item.getY() + trafficData.data;
- item.setY(readSum);
- item.setTooltipText(Formatter.toByteFormat(readSum));
- if (readSum > maxTraffic) {
- maxTraffic = readSum;
- recvSeries.setEndY(maxTraffic * 1.1);
- sendSeries.setEndY(maxTraffic * 1.1);
- }
- recvSeries.addSeriesItem(item);
- break;
- }
- case TYPE_SEND: {
- DAChartSeriesItem item = new DAChartSeriesItem(doubleTime,
- 0, Formatter.toByteFormat(0));
- double writeSum = item.getY() + trafficData.data;
- item.setY(writeSum);
- item.setTooltipText(Formatter.toByteFormat(writeSum));
- if (writeSum > maxTraffic) {
- maxTraffic = writeSum;
- recvSeries.setEndY(maxTraffic * 1.1);
- sendSeries.setEndY(maxTraffic * 1.1);
- }
- sendSeries.addSeriesItem(item);
- break;
- }
- default:
- DA_LOG.debug("wrong file api type");//$NON-NLS-1$
- }
- trafficDataList.remove(0);
- }
- }
- }
-
- public void setRecvSize(long size, String time) {
- Integer dataInputIndex = recvTimeIndexMap.get(Formatter
- .toTimeFormat(time));
- if (null == dataInputIndex) {
- trafficDataList.add(new FDCountData(TYPE_RECV, time, size));
- recvTimeIndexMap.put(Formatter.toTimeFormat(time),
- trafficDataList.size() - 1);
- } else {
- if (dataInputIndex < trafficDataList.size()) {
- trafficDataList.get(dataInputIndex).data += size;
- }
- }
- }
-
- public void setSendSize(int size, String time) {
- Integer dataInputIndex = sendTimeIndexMap.get(Formatter
- .toTimeFormat(time));
- if (null == dataInputIndex) {
- trafficDataList.add(new FDCountData(TYPE_SEND, time, size));
- sendTimeIndexMap.put(Formatter.toTimeFormat(time),
- trafficDataList.size() - 1);
- } else {
- if (dataInputIndex < trafficDataList.size()) {
- trafficDataList.get(dataInputIndex).data += size;
- }
-
- }
- }
-}
--- /dev/null
+package org.tizen.dynamicanalyzer.ui.network.data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.tizen.dynamicanalyzer.constant.CommonConstants;
+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.nl.NetworkPageLabels;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkAPIType;
+import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
+
+public class NetworkAPIDBManager extends DBTable {
+ private static final String TABLENAME = NetworkPageLabels.NETWORK_API_DB_TABLENAME;
+
+ public static final String SEQ = DBConstants.COMMON_COLUMN_SEQ;
+ public static final String DESTINATION_ADDRESS = NetworkPageLabels.NETWORK_DB_DESTINATION_ADDRESS;
+ public static final String FD_VALUE = NetworkPageLabels.NETWORK_DB_FD_VALUE;
+ public static final String API_TIME = NetworkPageLabels.NETWORK_API_DB_API_TIME;
+ public static final String API_NAME_ID = NetworkPageLabels.NETWORK_DB_API_ID;
+ public static final String ERRNO = NetworkPageLabels.NETWORK_API_DB_ERRNO;
+ public static final String PID = DBConstants.COMMON_COLUMN_PID;
+ public static final String TID = DBConstants.COMMON_COLUMN_TID;
+ public static final String ARGUMENT = NetworkPageLabels.NETWORK_API_DB_ARGUMENT;
+ public static final String RETURN = NetworkPageLabels.NETWORK_API_DB_RETURN;
+ public static final String BYTE_SIZE = NetworkPageLabels.NETWORK_API_DB_BYTE_SIZE;
+ public static final String PAYLOAD = NetworkPageLabels.NETWORK_API_DB_PAYLOAD;
+ public static final String API_TYPE = NetworkPageLabels.NETWORK_API_DB_API_TYPE;
+ public static final String CALLER_PC_ADDRESS = NetworkPageLabels.NETWORK_API_DB_CALLER_PC_ADDRESS;
+ public static final String LIB_NAME = NetworkPageLabels.NETWORK_API_DB_LIB_NAME;
+
+ private static final String SELECT_API_SERIES_QUERY = "select " + SEQ //$NON-NLS-1$
+ + CommonConstants.COMMA + CommonConstants.SPACE
+ + DESTINATION_ADDRESS + CommonConstants.COMMA
+ + CommonConstants.SPACE + FD_VALUE + CommonConstants.COMMA
+ + CommonConstants.SPACE + API_TIME + CommonConstants.COMMA
+ + CommonConstants.SPACE + API_NAME_ID + CommonConstants.COMMA
+ + CommonConstants.SPACE + ERRNO
+ + " from " //$NON-NLS-1$
+ + TABLENAME + " where %s <= " + API_TIME + " and " + API_TIME
+ + " <= %s";//$NON-NLS-1$
+
+ private static final String SELECT_API_TABLE_CHILD_QUERY = "select * from "//$NON-NLS-1$
+ + TABLENAME + " where " + DESTINATION_ADDRESS + " = '%s' and "//$NON-NLS-1$
+ + FD_VALUE + " = '%s'";//$NON-NLS-1$
+
+ private static final String SELECT_API_TABLE_PARENT_QUERY = "select * from "//$NON-NLS-1$
+ + TABLENAME + " where " + DESTINATION_ADDRESS + " = '%s'";//$NON-NLS-1$ //$NON-NLS-2$
+
+ @Override
+ public String getTableName() {
+ return TABLENAME;
+ }
+
+ public NetworkAPIDBManager() {
+ addColumn(new DBColumn(SEQ, DBConstants.PRIMARY_KEY,
+ DBConstants.INTEGER));
+ addColumn(new DBColumn(DESTINATION_ADDRESS, DBConstants.NOT_NULL,
+ DBConstants.BIG_TEXT));
+ addColumn(new DBColumn(FD_VALUE, DBConstants.NOT_NULL, DBConstants.TEXT));
+ addColumn(new DBColumn(API_TIME, DBConstants.NOT_NULL, DBConstants.LONG));
+ addColumn(new DBColumn(API_NAME_ID, DBConstants.NOT_NULL,
+ DBConstants.INTEGER));
+ addColumn(new DBColumn(ERRNO, DBConstants.NOT_NULL, DBConstants.LONG));
+ addColumn(new DBColumn(PID, DBConstants.NOT_NULL, DBConstants.INTEGER));
+ addColumn(new DBColumn(TID, DBConstants.NOT_NULL, DBConstants.INTEGER));
+ addColumn(new DBColumn(ARGUMENT, DBConstants.NOT_NULL,
+ DBConstants.BIG_TEXT));
+ addColumn(new DBColumn(RETURN, DBConstants.NOT_NULL,
+ DBConstants.BIG_TEXT));
+ addColumn(new DBColumn(BYTE_SIZE, DBConstants.NOT_NULL,
+ DBConstants.INTEGER));
+ addColumn(new DBColumn(PAYLOAD, DBConstants.NOT_NULL,
+ DBConstants.BIG_TEXT));
+ addColumn(new DBColumn(API_TYPE, DBConstants.NOT_NULL,
+ DBConstants.INTEGER));
+ addColumn(new DBColumn(CALLER_PC_ADDRESS, DBConstants.NOT_NULL,
+ DBConstants.LONG));
+ addColumn(new DBColumn(LIB_NAME, DBConstants.NOT_NULL, DBConstants.TEXT));
+ }
+
+ public void insert(List<List<Object>> insetData) {
+ insertData(insetData);
+ }
+
+ public List<NetworkAPIType> selectAPISeries(double visibleStartTime,
+ double visibleEndTime) {
+ double selectStartTime = visibleStartTime
+ * TimelineConstants.MEGA_DOUBLE;
+ double selectEndTime = visibleEndTime * TimelineConstants.MEGA_DOUBLE;
+ String query = String.format(SELECT_API_SERIES_QUERY, selectStartTime,
+ selectEndTime);
+ List<List<Object>> result = SqlConnectionManager.executeQuery(query);
+ if (null == result || result.size() == 0 || result.get(0).size() == 0) {
+ return null;
+ }
+ List<NetworkAPIType> statusSeriesList = new ArrayList<NetworkAPIType>();
+ for (List<Object> data : result) {
+ statusSeriesList.add(new NetworkAPIType(data));
+ }
+ return statusSeriesList;
+ }
+
+ public List<NetworkAPIType> selectAPITable(String address, String fd,
+ boolean isParentChart) {
+ String query = String.format(SELECT_API_TABLE_CHILD_QUERY,
+ address.trim(), fd.trim());
+ if (isParentChart) {
+ query = String
+ .format(SELECT_API_TABLE_PARENT_QUERY, address.trim());
+ }
+
+ List<List<Object>> result = SqlConnectionManager.executeQuery(query);
+ if (null == result || result.size() == 0 || result.get(0).size() == 0) {
+ return null;
+ }
+ List<NetworkAPIType> statusSeriesList = new ArrayList<NetworkAPIType>();
+ for (List<Object> data : result) {
+ statusSeriesList.add(new NetworkAPIType(data));
+ }
+ return statusSeriesList;
+ }
+
+}
--- /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.network.data;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import org.tizen.dynamicanalyzer.common.AnalyzerManager;
+import org.tizen.dynamicanalyzer.constant.CommonConstants;
+import org.tizen.dynamicanalyzer.logparser.LogCenterConstants;
+import org.tizen.dynamicanalyzer.nl.ConfigureLabels;
+import org.tizen.dynamicanalyzer.swap.model.data.LogData;
+import org.tizen.dynamicanalyzer.swap.model.data.NetworkData;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkAPIType;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkSeriesType;
+import org.tizen.dynamicanalyzer.ui.summary.failed.FailedChecker;
+import org.tizen.dynamicanalyzer.ui.summary.failed.FailedData;
+import org.tizen.dynamicanalyzer.ui.summary.leaks.LeakDetector;
+import org.tizen.dynamicanalyzer.ui.summary.warning.WarningChecker;
+import org.tizen.dynamicanalyzer.ui.toolbar.configuration.ConfigurationDialogDataManager;
+import org.tizen.dynamicanalyzer.util.DALogger;
+import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
+
+public class NetworkDataMaker {
+
+ private HashMap<String, String> addressByFdHashMap = new HashMap<String, String>();
+ private HashMap<String, String> parentFDByFdHashMap = new HashMap<String, String>();
+
+ private FailedChecker failedChecker = null;
+
+ List<NetworkAPIType> noDestinationApiSeriesList = new ArrayList<NetworkAPIType>();
+ List<NetworkAPIType> destinationApiSeriesList = new ArrayList<NetworkAPIType>();
+
+ public NetworkDataMaker(FailedChecker failedChecker,
+ LeakDetector leakDetector, WarningChecker warningChecker) {
+ this.failedChecker = failedChecker;
+ }
+
+ public void clear() {
+ addressByFdHashMap.clear();
+ parentFDByFdHashMap.clear();
+ }
+
+ public void makeData(List<LogData> inputs) {
+ if (!AnalyzerManager.isRunning()) {
+ return;
+ }
+ int size = inputs.size();
+ for (int i = 0; i < size; i++) {
+ NetworkData input = (NetworkData) inputs.get(i);
+
+ if (ConfigurationDialogDataManager.getInstance().getfeatureValue(
+ ConfigureLabels.INCLUDE_INSIDE_CALL_NETWORK) == 0) {
+ if (input.isInternal()) {
+ continue;
+ }
+ }
+
+ makeEventData(input);
+
+ long errno = input.getErrno();
+
+ if (errno != 0) {
+ FailedData ffd = new FailedData(input);
+ this.failedChecker.getFailedList().add(ffd);
+ }
+ }
+
+ if (destinationApiSeriesList.size() > 0) {
+ List<List<Object>> insetApiSeriesData = new ArrayList<List<Object>>();
+ List<NetworkAPIType> removeEventQueue = new ArrayList<NetworkAPIType>();
+ for (NetworkAPIType data : destinationApiSeriesList) {
+ insetApiSeriesData.add(data.getDBInsertData());
+ removeEventQueue.add(data);
+ }
+ NetworkDataManager.getInstance().getAPIDBManger()
+ .insert(insetApiSeriesData);
+ destinationApiSeriesList.removeAll(removeEventQueue);
+ }
+
+ }
+
+ private void makeEventData(NetworkData input) {
+
+ String apiName = input.getApiName();
+ String ipAddress = input.getdestinationIPAddress().trim();
+ String portAddress = input.getDestinationPortAddress().trim();
+
+ String apiAddress = CommonConstants.EMPTY;
+ if (!portAddress.equals(CommonConstants.ZERO)) {
+ apiAddress = ipAddress + CommonConstants.NEW_LINE + portAddress;
+ }
+
+ String apiFD = Long.toString(input.getFdValue()).trim();
+ apiFD = getHexString(apiFD);
+ int apiId = input.getApiId();
+
+ int apiType = input.getFdApiType();
+ long time = input.getTime();
+ long errno = input.getErrno();
+ int seq = input.getSeq();
+ int pId = input.getPid();
+ int tId = input.getTid();
+ String parameter = input.getArgs();
+ String returnValue = input.getReturn();
+ int byteSize = input.getPacketMessageSize();
+ String payloadInfo = input.getPacketMessage();
+
+ String parentAddress = addressByFdHashMap.get(apiFD);
+ if (null != parentAddress) { // get Address by FD
+ apiAddress = parentAddress;
+ }
+
+ if (filteringFileSocket(apiType, apiAddress)) {
+ return;
+ }
+
+ switch (apiType) {
+ // Socket
+ case LogCenterConstants.SOCKET_API_FD_OPEN:
+ break;
+ case LogCenterConstants.SOCKET_API_CONNECT: {
+ String[] strInput = parameter.split(CommonConstants.COMMA);
+ if (strInput.length <= 0) {
+ return;
+ }
+ apiAddress = strInput[1].trim();
+ addressByFdHashMap.put(apiFD, apiAddress);
+ break;
+ }
+ case LogCenterConstants.SOCKET_API_ACCEPT_START:
+ setStartSeries(apiAddress, apiFD, time, -1,
+ NetworkSeriesType.ACCESS_TYPE_WAIT, apiId);
+ break;
+ case LogCenterConstants.SOCKET_API_ACCEPT_END: {
+ String clientFD = returnValue;
+ addressByFdHashMap.put(clientFD, parentAddress);
+ setEndSeries(apiAddress, apiFD, time,
+ NetworkSeriesType.ACCESS_TYPE_WAIT);
+ break;
+ }
+ case LogCenterConstants.SOCKET_API_FD_CLOSE: {
+ if (errno == 0) {
+ addressByFdHashMap.remove(apiFD);
+ setEndSeries(apiAddress, apiFD, time,
+ NetworkSeriesType.STATUS_TYPE_OPEN);
+ }
+ break;
+ }
+ case LogCenterConstants.SOCKET_API_RECV_START:
+ setStartSeries(apiAddress, apiFD, time, -1,
+ NetworkSeriesType.ACCESS_TYPE_READ, apiId);
+ break;
+ case LogCenterConstants.SOCKET_API_RECV_END:
+ setEndSeries(apiAddress, apiFD, time,
+ NetworkSeriesType.ACCESS_TYPE_READ);
+ break;
+ case LogCenterConstants.SOCKET_API_SEND_START:
+ setStartSeries(apiAddress, apiFD, time, -1,
+ NetworkSeriesType.ACCESS_TYPE_WRITE, apiId);
+ break;
+ case LogCenterConstants.SOCKET_API_SEND_END:
+ setEndSeries(apiAddress, apiFD, time,
+ NetworkSeriesType.ACCESS_TYPE_WRITE);
+ break;
+ case LogCenterConstants.SOCKET_API_EVENT_START:
+ setStartSeries(apiAddress, apiFD, time, -1,
+ NetworkSeriesType.ACCESS_TYPE_WAIT, apiId);
+ break;
+ case LogCenterConstants.SOCKET_API_EVENT_END:
+ setEndSeries(apiAddress, apiFD, time,
+ NetworkSeriesType.ACCESS_TYPE_WAIT);
+ break;
+ case LogCenterConstants.SOCKET_API_BIND: {
+ String[] strInput = parameter.split(CommonConstants.COMMA);
+ if (strInput.length <= 0) {
+ return;
+ }
+ apiAddress = strInput[1].trim();
+ addressByFdHashMap.put(apiFD, apiAddress);
+ break;
+ }
+ case LogCenterConstants.SOCKET_API_LISTEN:
+ break;
+ case LogCenterConstants.SOCKET_API_OTHER: {
+ if (apiName.contains("epoll_ctl")) { //$NON-NLS-1$
+ String[] strInput = parameter.split(CommonConstants.COMMA);
+ if (strInput.length <= 0) {
+ return;
+ }
+ String clientFD = strInput[0].trim();
+ addressByFdHashMap.put(clientFD, parentAddress);
+ apiFD = clientFD;
+ addressByFdHashMap.put(apiFD, apiAddress);
+ }
+ break;
+ }
+ // HTTP
+ case LogCenterConstants.HTTP_API_SESSION_CONSTRUCT:
+ String[] strInput = parameter.split(CommonConstants.COMMA);
+ if (strInput.length <= 0) {
+ }
+ String clientAddress = strInput[2].trim();
+
+ addressByFdHashMap.put(apiFD, clientAddress);
+ parentFDByFdHashMap.put(apiFD, apiFD);
+ break;
+ case LogCenterConstants.HTTP_API_TRANSACTION_OPEN: {
+ String clientFD = returnValue;
+ String parrentAddress = addressByFdHashMap.get(apiFD);
+ if (null != parrentAddress) {
+ apiAddress = parrentAddress.trim();
+ }
+ addressByFdHashMap.put(clientFD, apiAddress);
+ apiFD = clientFD;
+ break;
+ }
+ case LogCenterConstants.HTTP_API_TRANSACTION_CLOSE: {
+ String clientFD = parameter;
+ if (!clientFD.contains(CommonConstants.EMPTY)) {
+ apiFD = clientFD;
+ }
+ break;
+ }
+ case LogCenterConstants.HTTP_API_ALLOCATION: {
+ String clientFD = returnValue;
+ String parretnFD = parentFDByFdHashMap.get(apiFD);
+ if (null != parretnFD) {
+ apiFD = parretnFD;
+ }
+ String parrentAddress = addressByFdHashMap.get(apiFD);
+ if (null != parrentAddress) {
+ apiAddress = parrentAddress;
+ }
+
+ addressByFdHashMap.put(clientFD, apiAddress);
+ parentFDByFdHashMap.put(clientFD, apiFD);
+ break;
+ }
+ case LogCenterConstants.HTTP_API_SUBMIT: {
+ String parretnFD = parentFDByFdHashMap.get(apiFD);
+ if (null != parretnFD) {
+ apiFD = parretnFD;
+ }
+ String parrentAddress = addressByFdHashMap.get(apiFD);
+ if (null != parrentAddress) {
+ apiAddress = parrentAddress;
+ }
+ break;
+ }
+ case LogCenterConstants.HTTP_API_REQUEST: {
+ String parretnFD = parentFDByFdHashMap.get(apiFD);
+ if (null != parretnFD) {
+ apiFD = parretnFD;
+ }
+ String parrentAddress = addressByFdHashMap.get(apiFD);
+ if (null != parrentAddress) {
+ apiAddress = parrentAddress;
+ }
+ break;
+ }
+ case LogCenterConstants.HTTP_API_RESPONSE: {
+ String clientFD = returnValue;
+ String parretnFD = parentFDByFdHashMap.get(apiFD);
+ if (null != parretnFD) {
+ apiFD = parretnFD;
+ }
+ String parrentAddress = addressByFdHashMap.get(apiFD);
+ if (null != parrentAddress) {
+ apiAddress = parrentAddress;
+ }
+
+ addressByFdHashMap.put(clientFD, apiAddress);
+ parentFDByFdHashMap.put(clientFD, apiFD);
+ break;
+ }
+ case LogCenterConstants.HTTP_API_OTHER: {
+ String parretnFD = parentFDByFdHashMap.get(apiFD);
+ if (null != parretnFD) {
+ apiFD = parretnFD;
+ }
+ String parrentAddress = addressByFdHashMap.get(apiFD);
+ if (null != parrentAddress) {
+ apiAddress = parrentAddress;
+ }
+ break;
+ }
+ case LogCenterConstants.HTTP_API_CLOSE: {
+ if (errno == 0) {
+ addressByFdHashMap.remove(apiFD);
+ }
+
+ break;
+ }
+ default:
+ DALogger.getInstance().error(
+ "makeEventData : no case NetworkChartDataEvent : "
+ + apiType);
+ return;
+ }
+
+ NetworkAPIType seriesType = new NetworkAPIType(seq, apiAddress, apiFD,
+ time, apiId, errno, pId, tId, parameter, returnValue, byteSize,
+ payloadInfo, apiType, input.getCallerPcAddr(),
+ input.getLibName());
+
+ if (apiAddress.equals(CommonConstants.EMPTY)) {
+ noDestinationApiSeriesList.add(seriesType);
+ } else {
+ updateUnDestinationApiSeriesList(seriesType);
+ destinationApiSeriesList.add(seriesType);
+ if (null == NetworkDataManager.getInstance().getCheckStatusSeries()
+ .get(apiFD)) {
+ NetworkDataManager.getInstance().getCheckStatusSeries()
+ .put(apiFD.trim(), apiAddress.trim());
+ setStartSeries(apiAddress, apiFD, time, -1,
+ NetworkSeriesType.STATUS_TYPE_OPEN, apiId);
+ }
+ }
+ }
+
+ private boolean filteringFileSocket(int apiType, String ipAddress) {
+ if (apiType >= LogCenterConstants.HTTP_API_SESSION_CONSTRUCT) {
+ return false;
+ }
+ if (null == ipAddress) {
+ return true;
+ }
+ String address = ipAddress.trim();
+ if (address.equals(CommonConstants.EMPTY)
+ || address.startsWith(CommonConstants.SLASH)
+ || address.startsWith(CommonConstants.HEX_PREFIX)) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ private void setStartSeries(String apiAddress, String apiFD, long time,
+ int eventType, int apiType, int apiId) {
+
+ NetworkSeriesType statusType = new NetworkSeriesType(apiAddress, apiFD,
+ time, -1, apiType, apiId);
+ NetworkDataManager.getInstance().setStartSeriesData(statusType);
+ }
+
+ private void setEndSeries(String apiAddress, String apiFD, long time,
+ int apiType) {
+ NetworkDataManager.getInstance().setEndSeriesData(apiAddress, apiFD,
+ time, apiType);
+ }
+
+ private void updateUnDestinationApiSeriesList(NetworkAPIType seriesType) {
+ List<NetworkAPIType> removeEventQueue = new ArrayList<NetworkAPIType>();
+ for (NetworkAPIType event : noDestinationApiSeriesList) {
+ if (event.getFdStr().equals(seriesType.getFdStr())) {
+ event.setDestinationAddress(seriesType.getDestinationAddress());
+ destinationApiSeriesList.add(event);
+ removeEventQueue.add(event);
+ }
+ }
+ noDestinationApiSeriesList.removeAll(removeEventQueue);
+ }
+
+ private String getHexString(String input) {
+ String retStr = null;
+ long lInput = Long.parseLong(input);
+ if (lInput < 0x10000000) {
+ retStr = Long.toString(lInput);
+ } else {
+ retStr = AnalyzerUtil.toHexdecimal(lInput);
+ }
+ return retStr;
+ }
+}
--- /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.network.data;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.tizen.dynamicanalyzer.common.AnalyzerManager;
+import org.tizen.dynamicanalyzer.common.path.PathManager;
+import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
+import org.tizen.dynamicanalyzer.resources.ImageResources;
+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.data.LogData;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkAPIType;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkSeriesType;
+import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
+import org.tizen.dynamicanalyzer.util.DALogger;
+import org.tizen.dynamicanalyzer.util.WorkbenchUtil;
+import org.tizen.dynamicanalyzer.widgets.da.base.DADialog;
+
+public class NetworkDataManager extends PageDataManager {
+ private static NetworkDataManager instance = null;
+
+ private NetworkDataMaker networkDataMaker = null;
+ private NetworkSeriesDBManager seriesDBManager = null;
+ private NetworkAPIDBManager apiDBManager = null;
+
+ private List<NetworkAPIType> selectedTableAPIList = null;
+ private LinkedHashMap<String, String> checkStatusSeries = new LinkedHashMap<String, String>();
+ private List<NetworkSeriesType> seriesList = new ArrayList<NetworkSeriesType>();
+
+ private int statusSeriesSize = 0;
+ private int accessSeriesSize = 0;
+ private boolean isStopTrace = false;
+
+ public NetworkDataManager() {
+ initDB();
+ }
+
+ public synchronized static NetworkDataManager getInstance() {
+ if (null == instance) {
+ instance = new NetworkDataManager();
+ }
+ 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_PROBE_NETWORK);
+ if (null != logs && logs.getRawLogs().size() != 0) {
+ List<LogData> inputs = logs.getLogs();
+
+ networkDataMaker.makeData(inputs);
+ }
+ }
+
+ /* log for debug */
+ DALogger.getInstance().info(getName() + " thread end!!");
+ }
+
+ private void initDB() {
+ networkDataMaker = new NetworkDataMaker(
+ AnalyzerManager.getFailedChecker(),
+ AnalyzerManager.getLeakDetector(),
+ AnalyzerManager.getWarningChecker());
+
+ apiDBManager = new NetworkAPIDBManager();
+ addDBTable(apiDBManager);
+ seriesDBManager = new NetworkSeriesDBManager();
+ addDBTable(seriesDBManager);
+ }
+
+ public void clear() {
+ instance = null;
+ seriesDBManager = null;
+ apiDBManager = null;
+ selectedTableAPIList = null;
+ seriesList = new ArrayList<NetworkSeriesType>();
+ checkStatusSeries = new LinkedHashMap<String, String>();
+ statusSeriesSize = 0;
+ accessSeriesSize = 0;
+ isStopTrace = false;
+ }
+
+ public LinkedHashMap<String, String> getCheckStatusSeries() {
+ return checkStatusSeries;
+ }
+
+ public NetworkAPIDBManager getAPIDBManger() {
+ return apiDBManager;
+ }
+
+ public void setStartSeriesData(NetworkSeriesType seriesType) {
+ if (seriesType.getAPIType() == NetworkSeriesType.STATUS_TYPE_OPEN) {
+ statusSeriesSize++;
+ } else {
+ accessSeriesSize++;
+ }
+ checkHeapMemory();
+ seriesList.add(seriesType);
+ }
+
+ public void setEndSeriesData(String address, String fd, long endTime,
+ int apiType) {
+ for (int i = 0; i < seriesList.size(); i++) {
+ NetworkSeriesType seriesType = seriesList.get(i);
+ if (seriesType.getDestinationAddress().equals(address)
+ && seriesType.getFdValue().equals(fd)
+ && seriesType.getAPIType() == apiType
+ && seriesType.getEndTime() < 0) {
+ seriesList.get(i).setEndTime(endTime);
+ seriesDBManager.insert(seriesType);
+ break;
+ }
+ }
+ }
+
+ public void openProcess() {
+ setSeriesListFromDB();
+ }
+
+ public void stopProcess() {
+ insertNotEndTimeSeries();
+ }
+
+ private void insertNotEndTimeSeries() {
+ for (int i = 0; i < seriesList.size(); i++) {
+ NetworkSeriesType seriesType = seriesList.get(i);
+ if (seriesType.getEndTime() < 0) {
+ seriesDBManager.insert(seriesType);
+ }
+ }
+ }
+
+ private void setSeriesListFromDB() {
+ if (seriesList.size() == 0) {
+ seriesList = seriesDBManager.select(0, 999999999);
+ }
+ }
+
+ public List<NetworkSeriesType> getSeriesList() {
+ return seriesList;
+ }
+
+ public void setSeriesList(List<NetworkSeriesType> seriesList) {
+ this.seriesList = seriesList;
+ }
+
+ public List<NetworkAPIType> getSelectedTableAPIList() {
+ return selectedTableAPIList;
+ }
+
+ public void setSelectedTableAPIList(
+ List<NetworkAPIType> selectedTableAPIList) {
+ this.selectedTableAPIList = selectedTableAPIList;
+ }
+
+ private void checkHeapMemory() {
+ if (isStopTrace == false
+ && (statusSeriesSize > 1000 || accessSeriesSize > 10000)) {
+ isStopTrace = true;
+ ToolbarArea.getInstance().stopTrace();
+ Display.getDefault().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ final Shell shell = WorkbenchUtil.getWorkbenchWindow()
+ .getShell();
+ DADialog dialog = new DADialog(shell, SWT.NONE, 550, 153);
+ dialog.setIcon(ImageResources.DIALOG_WARNING_ICON);
+ dialog.setMessage(AnalyzerLabels.HEAP_MEMORY_WARNING_PRE
+ + PathManager.DA_INSTALL_PATH
+ + AnalyzerLabels.HEAP_MEMORY_WARNING_POST);
+ dialog.open();
+ }
+ });
+ }
+ }
+
+}
--- /dev/null
+package org.tizen.dynamicanalyzer.ui.network.data;
+
+import java.util.ArrayList;
+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.nl.NetworkPageLabels;
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkSeriesType;
+import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;
+
+public class NetworkSeriesDBManager extends DBTable {
+
+ private static final String TABLENAME = NetworkPageLabels.NETWORK_SERIES_DB_TABLENAME;
+ public static final String RID = NetworkPageLabels.NETWORK_DB_RID;
+ public static final String DESTINATION_ADDRESS = NetworkPageLabels.NETWORK_DB_DESTINATION_ADDRESS;
+ public static final String FD_VALUE = NetworkPageLabels.NETWORK_DB_FD_VALUE;
+ public static final String START_TIME = NetworkPageLabels.NETWORK_SERIES_DB_START_TIME;
+ public static final String END_TIME = NetworkPageLabels.NETWORK_SERIES_DB_END_TIME;
+ public static final String STATUS_TYPE = NetworkPageLabels.NETWORK_SERIES_DB_STATUS_TYPE;
+ public static final String API_ID = NetworkPageLabels.NETWORK_DB_API_ID;
+
+ private static final String SELECT_QUERY = "select * from " + TABLENAME; //$NON-NLS-1$
+
+ private static int rid = 0;
+
+ @Override
+ public String getTableName() {
+ return TABLENAME;
+ }
+
+ public NetworkSeriesDBManager() {
+ addColumn(new DBColumn(RID, DBConstants.PRIMARY_KEY,
+ DBConstants.INTEGER));
+ addColumn(new DBColumn(DESTINATION_ADDRESS, DBConstants.NOT_NULL,
+ DBConstants.TEXT));
+ addColumn(new DBColumn(FD_VALUE, DBConstants.NOT_NULL, DBConstants.TEXT));
+ addColumn(new DBColumn(START_TIME, DBConstants.NOT_NULL,
+ DBConstants.LONG));
+ addColumn(new DBColumn(END_TIME, DBConstants.NOT_NULL, DBConstants.LONG));
+ addColumn(new DBColumn(STATUS_TYPE, DBConstants.NOT_NULL,
+ DBConstants.INTEGER));
+ addColumn(new DBColumn(API_ID, DBConstants.NOT_NULL,
+ DBConstants.INTEGER));
+ rid = 0;
+ }
+
+ public void insert(NetworkSeriesType insertData) {
+ List<List<Object>> insertDataList = new ArrayList<List<Object>>();
+ insertData.setRid(rid++);
+ insertDataList.add(insertData.getDBInsertData());
+ insertData(insertDataList);
+ }
+
+ public List<NetworkSeriesType> select(double visibleStartTime,
+ double visibleEndTime) {
+ double selectStartTime = visibleStartTime
+ * TimelineConstants.MEGA_DOUBLE;
+ double selectEndTime = visibleEndTime * TimelineConstants.MEGA_DOUBLE;
+ String query = String.format(SELECT_QUERY, selectStartTime,
+ selectEndTime);
+ List<List<Object>> result = SqlConnectionManager.executeQuery(query);
+ if (null == result || result.size() == 0 || result.get(0).size() == 0) {
+ return null;
+ }
+ List<NetworkSeriesType> statusSeriesList = new ArrayList<NetworkSeriesType>();
+ for (List<Object> data : result) {
+ statusSeriesList.add(new NetworkSeriesType(data));
+ }
+ return statusSeriesList;
+ }
+
+}
--- /dev/null
+/*
+ * Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * 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.network.data;
+
+import java.io.Serializable;
+import java.util.Comparator;
+
+import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkSeriesType;
+
+public class StatusSeriesListSortComparator implements
+ Comparator<NetworkSeriesType>, Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public int compare(NetworkSeriesType one, NetworkSeriesType two) {
+ long time1 = one.getStartTime();
+ long time2 = two.getStartTime();
+
+ if (time1 > time2) {
+ return 1;
+ } else if (time1 < time2) {
+ return -1;
+ }
+
+ return 0;
+ }
+
+}
--- /dev/null
+/*
+ * Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Hyunjong Park <phjwithyou.park@samsung.com>
+ * yeongtaik byeon <yeongtaik.byeon@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.network.data.type;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.tizen.dynamicanalyzer.constant.CommonConstants;
+import org.tizen.dynamicanalyzer.swap.model.data.NetworkData;
+
+public class NetworkAPIType extends NetworkData {
+ private final int apiSeriesColumnSize = 6;
+ private int seq = -1;
+ private long time = -1;
+ private String destinationAddress = CommonConstants.EMPTY;
+ private String fdStr = CommonConstants.EMPTY;
+
+ public NetworkAPIType(int sequenceNumber, String destinationAddress,
+ String fdValue, long apiTime, int apiNameID, long errno, int pID,
+ int tID, String arg, String returnValue, int byteSize,
+ String payLoad, int apiType, long callerAddress, String libName) {
+ setSeq(sequenceNumber);
+ setDestinationAddress(destinationAddress);
+ setFdStr(fdValue);
+ setTime(apiTime);
+ setApiNameID(apiNameID);
+ setErrno(errno);
+ setPid(pID);
+ setTid(tID);
+ setArgs(arg);
+ setReturn(returnValue);
+ setPacketMessageSize(byteSize);
+ setPacketMessage(payLoad);
+ setFdApiType(apiType);
+ setCallerAddress(callerAddress);
+ setLibName(libName);
+
+ }
+
+ public NetworkAPIType(List<Object> data) {
+ setSeq((Integer) data.get(0));
+ setDestinationAddress((String) data.get(1));
+ setFdStr((String) data.get(2));
+ setTime((Long) data.get(3));
+ setApiNameID((Integer) data.get(4));
+ setErrno((Long) data.get(5));
+ if (data.size() <= apiSeriesColumnSize) {
+ return;
+ }
+ setPid((Integer) data.get(6));
+ setTid((Integer) data.get(7));
+ setArgs((String) data.get(8));
+ setReturn((String) data.get(9));
+ setPacketMessageSize((Integer) data.get(10));
+ setPacketMessage((String) data.get(11));
+ setFdApiType((Integer) data.get(12));
+ setCallerAddress((Long) data.get(13));
+ setLibName((String) data.get(14));
+ }
+
+ public int getSeq() {
+ return seq;
+ }
+
+ public void setSeq(int sequenceNumber) {
+ this.seq = sequenceNumber;
+ }
+
+ public String getDestinationAddress() {
+ return destinationAddress.trim();
+ }
+
+ public void setDestinationAddress(String destinationAddress) {
+ this.destinationAddress = destinationAddress;
+ }
+
+ public String getFdStr() {
+ return fdStr.trim();
+ }
+
+ public void setFdStr(String fdValue) {
+ this.fdStr = fdValue;
+ }
+
+ public long getTime() {
+ return Math.round(time);
+ }
+
+ public void setTime(long apiTime) {
+ this.time = apiTime;
+ }
+
+ public int getApiNameID() {
+ return apiId;
+ }
+
+ public void setApiNameID(int apiNameID) {
+ this.apiId = apiNameID;
+ }
+
+ public long getErrno() {
+ return errno;
+ }
+
+ public void setErrno(long errno) {
+ this.errno = errno;
+ }
+
+ public int getPid() {
+ return pid;
+ }
+
+ public void setPid(int pID) {
+ this.pid = pID;
+ }
+
+ public int getTid() {
+ return tid;
+ }
+
+ public void setTid(int tID) {
+ this.tid = tID;
+ }
+
+ public String getArgs() {
+ return args.trim();
+ }
+
+ public void setArgs(String argument) {
+ this.args = argument;
+ }
+
+ public String getReturn() {
+ return ret.trim();
+ }
+
+ public void setReturn(String returnValue) {
+ this.ret = returnValue;
+ }
+
+ public int getPacketMessageSize() {
+ return messageSize;
+ }
+
+ public void setPacketMessageSize(int byteSize) {
+ this.messageSize = byteSize;
+ }
+
+ public String getPacketMessage() {
+ return packetMessage;
+ }
+
+ public void setPacketMessage(String payload) {
+ this.packetMessage = payload;
+ }
+
+ public int getFdApiType() {
+ return fdApiType;
+ }
+
+ public void setFdApiType(int apiType) {
+ this.fdApiType = apiType;
+ }
+
+ public long getCallerPcAddr() {
+ return callerAddress;
+ }
+
+ public void setCallerAddress(long callerAddress) {
+ this.callerAddress = callerAddress;
+ }
+
+ public String getLibName() {
+ return libName;
+ }
+
+ public void setLibName(String libName) {
+ this.libName = libName;
+ }
+
+ public List<Object> getDBInsertData() {
+ List<Object> data = new ArrayList<Object>();
+ data.add(getSeq());
+ data.add(getDestinationAddress());
+ data.add(getFdStr());
+ data.add(getTime());
+ data.add(getApiNameID());
+ data.add(getErrno());
+ data.add(getPid());
+ data.add(getTid());
+ data.add(getArgs());
+ data.add(getReturn());
+ data.add(getPacketMessageSize());
+ data.add(getPacketMessage());
+ data.add(getFdApiType());
+ data.add(getCallerPcAddr());
+ data.add(getLibName());
+ return data;
+ }
+
+}
\ No newline at end of file
--- /dev/null
+/*
+ * Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Hyunjong Park <phjwithyou.park@samsung.com>
+ * yeongtaik byeon <yeongtaik.byeon@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.network.data.type;
+
+import org.tizen.dynamicanalyzer.constant.CommonConstants;
+
+public class NetworkSelectionType {
+ private String address = CommonConstants.EMPTY;
+ private String fd = CommonConstants.EMPTY;
+ private boolean isParentChart = false;
+
+ public NetworkSelectionType(String address, String fd, boolean isParentChart) {
+ setAddress(address);
+ setFd(fd);
+ setParentChart(isParentChart);
+ }
+
+ public String getAddress() {
+ return address;
+ }
+
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+ public String getFd() {
+ return fd;
+ }
+
+ public void setFd(String fd) {
+ this.fd = fd;
+ }
+
+ public boolean isParentChart() {
+ return isParentChart;
+ }
+
+ public void setParentChart(boolean isParentChart) {
+ this.isParentChart = isParentChart;
+ }
+}
\ No newline at end of file
--- /dev/null
+/*
+ * Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Hyunjong Park <phjwithyou.park@samsung.com>
+ * yeongtaik byeon <yeongtaik.byeon@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.network.data.type;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.tizen.dynamicanalyzer.constant.CommonConstants;
+
+public class NetworkSeriesType {
+ public static final int HEAP_MEMORY = 128;
+ public static int STATUS_TYPE_OPEN = 0;
+ public static int ACCESS_TYPE_WAIT = 1;
+ public static int ACCESS_TYPE_READ = 2;
+ public static int ACCESS_TYPE_WRITE = 3;
+
+ private int rid = 0;
+ private String destinationAddress = CommonConstants.EMPTY;
+ private String fdValue = CommonConstants.EMPTY;
+ private long startTime = -1;
+ private long endTime = -1;
+
+ private int apiType = -1;
+ private int apiID = -1;
+
+ public NetworkSeriesType(String destinationAddress, String fdValue,
+ long startTime, long endTime, int statusType, int apiId) {
+ setRid(0);
+ setDestinationAddress(destinationAddress);
+ setFdValue(fdValue);
+ setStartTime(startTime);
+ setEndTime(endTime);
+ setAPIType(statusType);
+ setApiID(apiId);
+ }
+
+ public NetworkSeriesType(List<Object> data) {
+ setRid((Integer) data.get(0));
+ setDestinationAddress((String) data.get(1));
+ setFdValue((String) data.get(2));
+ setStartTime((Long) data.get(3));
+ setEndTime((Long) data.get(4));
+ setAPIType((Integer) data.get(5));
+ setApiID((Integer) data.get(6));
+ }
+
+ public int getRid() {
+ return rid;
+ }
+
+ public void setRid(int apiID) {
+ this.rid = apiID;
+ }
+
+ public String getDestinationAddress() {
+ return destinationAddress.trim();
+ }
+
+ public void setDestinationAddress(String destinationAddress) {
+ this.destinationAddress = destinationAddress;
+ }
+
+ public String getFdValue() {
+ return fdValue.trim();
+ }
+
+ public void setFdValue(String fdValue) {
+ this.fdValue = fdValue;
+ }
+
+ public long getStartTime() {
+ return Math.round(startTime);
+ }
+
+ public void setStartTime(long startTime) {
+ this.startTime = startTime;
+ }
+
+ public long getEndTime() {
+ return Math.round(endTime);
+ }
+
+ public void setEndTime(long endTime) {
+ this.endTime = endTime;
+ }
+
+ public int getAPIType() {
+ return apiType;
+ }
+
+ public void setAPIType(int statusType) {
+ this.apiType = statusType;
+ }
+
+ public int getApiID() {
+ return apiID;
+ }
+
+ public void setApiID(int apiID) {
+ this.apiID = apiID;
+ }
+
+ public List<Object> getDBInsertData() {
+ List<Object> data = new ArrayList<Object>();
+ data.add(getRid());
+ data.add(getDestinationAddress());
+ data.add(getFdValue());
+ data.add(getStartTime());
+ data.add(getEndTime());
+ data.add(getAPIType());
+ data.add(getApiID());
+ return data;
+ }
+
+}
\ No newline at end of file
ConfigureLabels.SYSTEM_INFOMATION_SAMPLING_PERIODIC,
Long.toString(AnalyzerConstants.SYSTEM_INFOMATION_SAMPLING_PERIODIC));
}
- if (null == data
- .get(ConfigureLabels.INTERNAL_LOG_LEVEL)) {
- data.put(
- ConfigureLabels.INTERNAL_LOG_LEVEL,
+ if (null == data.get(ConfigureLabels.INTERNAL_LOG_LEVEL)) {
+ data.put(ConfigureLabels.INTERNAL_LOG_LEVEL,
Long.toString(DALogger.DEBUG));
- }
+ }
}
private void initConfigDataFromFile() {
setCheckDefaultConfigData();
setConfigDataToFile();
// set log level
-// DA_LOG.setLogLevel(getValueInt(ConfigureLabels.INTERNAL_LOG_LEVEL));
+ // DA_LOG.setLogLevel(getValueInt(ConfigureLabels.INTERNAL_LOG_LEVEL));
}
private void setConfigDataToFile() {
try {
if (null == valueStr) {
ret = 0;
+ } else if (valueStr.equals(CommonConstants.ON)) {
+ ret = AnalyzerConstants.FEATURE_ON;
+ } else if (valueStr.equals(CommonConstants.OFF)) {
+ ret = AnalyzerConstants.FEATURE_OFF;
} else {
ret = Long.parseLong(valueStr);
}
import org.tizen.dynamicanalyzer.project.Project;
import org.tizen.dynamicanalyzer.sql.SqlManager;
import org.tizen.dynamicanalyzer.swap.logparser.SWAPLogParser;
+import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager;
import org.tizen.dynamicanalyzer.ui.page.UpdateViewTimer;
import org.tizen.dynamicanalyzer.uirecorder.UIRecorderTool;
import org.tizen.dynamicanalyzer.util.DALogger;
SqlManager.getInstance().saveApiNames();
SqlManager.getInstance().closeConnection();
SqlConnectionManager.closeConnection();
-
+ NetworkDataManager.getInstance().stopProcess();
DA_LOG.debug("insert to db complete..."); //$NON-NLS-1$
percent += 10;
StopProcessManager.getInstance().setValue(percent);
-
project.saveProjectInfoFile();
-
}
Display.getDefault().syncExec(new Runnable() {
import org.tizen.dynamicanalyzer.listeners.TableTooltipListener;
import org.tizen.dynamicanalyzer.model.FindProperty;
import org.tizen.dynamicanalyzer.model.TableInput;
-import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
import org.tizen.dynamicanalyzer.nl.TimelineChartLabels;
import org.tizen.dynamicanalyzer.resources.ColorResources;
import org.tizen.dynamicanalyzer.resources.FontResources;
import org.tizen.dynamicanalyzer.ui.range.RangeDataManager;
import org.tizen.dynamicanalyzer.ui.widgets.DAGrid;
import org.tizen.dynamicanalyzer.ui.widgets.FindDialog;
-import org.tizen.dynamicanalyzer.util.WorkbenchUtil;
import org.tizen.dynamicanalyzer.util.DALogger;
+import org.tizen.dynamicanalyzer.util.WorkbenchUtil;
import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenu;
import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenuItem;
import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenuListener;
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.tizen.dynamicanalyzer.ui.widgets.FindDialog;
import org.tizen.dynamicanalyzer.util.CommonUtil;
import org.tizen.dynamicanalyzer.util.WorkbenchUtil;
-import org.tizen.dynamicanalyzer.util.DALogger;
public abstract class DAWindowingTableComposite extends DATableComposite {
- private static final DALogger DA_LOG = DALogger.getInstance();
-
private static final String queryto_GetItemCount = "select count(*) from %s where %s";
private static final String queryto_GetLimitedItem = "select limit %s %s %s from %s where %s";
protected boolean isLogData = true;
protected int timeColumnIndex = 0;
- private int tableLength = -1;
private int totalItemCount = 0;
private int previousSelectionScrollIndex = -1;
private int previousItemCount = -1;
private int previousTableLength = 0;
+ private int tableAreaHeigth = 0;
private List<LogData> queriedLogData = null;
private List<List<Object>> queriedObjectData = null;
updateTable();
}
- protected int getTableLength() {
- if (this.tableLength < 0) {
- updateTableLength();
- }
- return this.tableLength;
+ public void updateTableArea(int clientAreaHeight) {
+ this.tableAreaHeigth = clientAreaHeight;
}
- public void updateTableLength() {
- Rectangle rect = table.getClientArea();
- int itemHeight = table.getItemHeight();
- this.tableLength = (rect.height - table.getHeaderHeight())
- / (itemHeight + 1);
+ protected int getTableLength() {
+ return (this.tableAreaHeigth - table.getHeaderHeight())
+ / (table.getItemHeight() + 1);
}
public void updateHScrollBar(int tableWidth) {
- DA_LOG.debug("width : " + tableWidth);
+ System.out.println("width : " + tableWidth);
hScrollbar.setMaximum(totalColumnSize);
hScrollbar.setThumb(tableWidth);
hScrollbar.setVisible(true);
} else if (object instanceof Long) {
totalItemCount = ((Long) object).intValue();
} else {
- DA_LOG.error("result of item count query is not expected!!");
+ System.out
+ .println("[ERR] result of item count query is not expected!!");
totalItemCount = 0;
}
}
columnSizes[index] = columnSize;
}
}
+ tableComp.updateTableArea(contents.getClientArea().height);
tableComp.setColumnSize(columnSizes);
- tableComp.updateTableLength();
tableComp.updateHScrollBar(rect.width);
tableComp.updateTable();
}