sysperfana/perfinvestigator/com.nokia.carbide.cpp.pi.ipc/src/com/nokia/carbide/cpp/pi/internal/ipc/IpcTraceParser.java
changeset 12 ae255c9aa552
parent 5 844b047e260d
equal deleted inserted replaced
11:5b9d4d8641ce 12:ae255c9aa552
    45 	private boolean debug = false; //CH: this could be replaced with Eclipse-style logging
    45 	private boolean debug = false; //CH: this could be replaced with Eclipse-style logging
    46 	private boolean l2Enabled = false;
    46 	private boolean l2Enabled = false;
    47 	
    47 	
    48 	long time = 0;
    48 	long time = 0;
    49 	
    49 	
    50 	private static final Map<Integer, String> eventTypeTable = new HashMap<Integer, String>();
    50 	private static final Map<Integer, String> EVENT_TYPE_TABLE = new HashMap<Integer, String>();
    51 	static {
    51 	static {
    52 		eventTypeTable.put(0x0,Messages.IpcTraceParser_1);
    52 		EVENT_TYPE_TABLE.put(0x0,Messages.IpcTraceParser_1);
    53 		eventTypeTable.put(0x1,Messages.IpcTraceParser_2);
    53 		EVENT_TYPE_TABLE.put(0x1,Messages.IpcTraceParser_2);
    54 		eventTypeTable.put(0x2,Messages.IpcTraceParser_3);
    54 		EVENT_TYPE_TABLE.put(0x2,Messages.IpcTraceParser_3);
    55 		eventTypeTable.put(0x3,Messages.IpcTraceParser_4);
    55 		EVENT_TYPE_TABLE.put(0x3,Messages.IpcTraceParser_4);
    56 		eventTypeTable.put(0x4,Messages.IpcTraceParser_5);
    56 		EVENT_TYPE_TABLE.put(0x4,Messages.IpcTraceParser_5);
    57 	}
    57 	}
    58 	private static final Map<Integer, String> counterTypeTable = new HashMap<Integer, String>();
    58 	private static final Map<Integer, String> COUNTER_TYPE_TABLE = new HashMap<Integer, String>();
    59 	static {
    59 	static {
    60 		counterTypeTable.put(0x0,Messages.IpcTraceParser_6);
    60 		COUNTER_TYPE_TABLE.put(0x0,Messages.IpcTraceParser_6);
    61 		counterTypeTable.put(0x1,Messages.IpcTraceParser_7);
    61 		COUNTER_TYPE_TABLE.put(0x1,Messages.IpcTraceParser_7);
    62 		counterTypeTable.put(0x2,Messages.IpcTraceParser_8);
    62 		COUNTER_TYPE_TABLE.put(0x2,Messages.IpcTraceParser_8);
    63 		counterTypeTable.put(0x3,Messages.IpcTraceParser_9);
    63 		COUNTER_TYPE_TABLE.put(0x3,Messages.IpcTraceParser_9);
    64 		counterTypeTable.put(0x4,Messages.IpcTraceParser_10);
    64 		COUNTER_TYPE_TABLE.put(0x4,Messages.IpcTraceParser_10);
    65 		counterTypeTable.put(0x5,Messages.IpcTraceParser_11);
    65 		COUNTER_TYPE_TABLE.put(0x5,Messages.IpcTraceParser_11);
    66 	}	
    66 	}	
    67 	private static final Map<Integer, String> l2EventTypeTable = new HashMap<Integer, String>();
    67 	private static final Map<Integer, String> L2_EVENT_TYPE_TABLE = new HashMap<Integer, String>();
    68 	static {
    68 	static {
    69 		l2EventTypeTable.put(0x3,Messages.IpcTraceParser_12);
    69 		L2_EVENT_TYPE_TABLE.put(0x3,Messages.IpcTraceParser_12);
    70 		l2EventTypeTable.put(0x4,Messages.IpcTraceParser_13);
    70 		L2_EVENT_TYPE_TABLE.put(0x4,Messages.IpcTraceParser_13);
    71 		l2EventTypeTable.put(0x5,Messages.IpcTraceParser_14);
    71 		L2_EVENT_TYPE_TABLE.put(0x5,Messages.IpcTraceParser_14);
    72 		l2EventTypeTable.put(0x6,Messages.IpcTraceParser_15);
    72 		L2_EVENT_TYPE_TABLE.put(0x6,Messages.IpcTraceParser_15);
    73 		l2EventTypeTable.put(0x7,Messages.IpcTraceParser_16);
    73 		L2_EVENT_TYPE_TABLE.put(0x7,Messages.IpcTraceParser_16);
    74 		l2EventTypeTable.put(0xC,Messages.IpcTraceParser_17);
    74 		L2_EVENT_TYPE_TABLE.put(0xC,Messages.IpcTraceParser_17);
    75 		l2EventTypeTable.put(0xD,Messages.IpcTraceParser_18);
    75 		L2_EVENT_TYPE_TABLE.put(0xD,Messages.IpcTraceParser_18);
    76 	}			
    76 	}			
    77 
    77 
    78 	/* (non-Javadoc)
    78 	/* (non-Javadoc)
    79 	 * @see com.nokia.carbide.cpp.internal.pi.model.Parser#parse(java.io.File)
    79 	 * @see com.nokia.carbide.cpp.internal.pi.model.Parser#parse(java.io.File)
    80 	 */
    80 	 */
   344 		
   344 		
   345 		return (int)total;
   345 		return (int)total;
   346 	}
   346 	}
   347 		
   347 		
   348 	private String[] parseValueTypes(List<Integer> counterTypes, List<Integer> counterL2Types){
   348 	private String[] parseValueTypes(List<Integer> counterTypes, List<Integer> counterL2Types){
   349 		String[] s = new String[counterTypes.size() * eventTypeTable.size() + (counterL2Types == null ? 0 : counterL2Types.size())];
   349 		String[] s = new String[counterTypes.size() * EVENT_TYPE_TABLE.size() + (counterL2Types == null ? 0 : counterL2Types.size())];
   350 		int k = 0;
   350 		int k = 0;
   351 		for (int i = 0; i < eventTypeTable.size(); i++) {
   351 		for (int i = 0; i < EVENT_TYPE_TABLE.size(); i++) {
   352 			String eventType =  eventTypeTable.get(i);
   352 			String eventType =  EVENT_TYPE_TABLE.get(i);
   353 			for (Integer counterType : counterTypes) {
   353 			for (Integer counterType : counterTypes) {
   354 				s[k] = String.format(Messages.IpcTraceParser_20, eventType, convertCounterType(counterType));
   354 				s[k] = String.format(Messages.IpcTraceParser_20, eventType, convertCounterType(counterType));
   355 				k++;
   355 				k++;
   356 			}
   356 			}
   357 		}
   357 		}
   364 		}
   364 		}
   365 		return s;
   365 		return s;
   366 	}
   366 	}
   367 	
   367 	
   368 	private String convertL2EventType(Integer value) {
   368 	private String convertL2EventType(Integer value) {
   369 		String s = IpcTraceParser.l2EventTypeTable.get(value);
   369 		String s = IpcTraceParser.L2_EVENT_TYPE_TABLE.get(value);
   370 		if (s == null) {
   370 		if (s == null) {
   371 			s = String.format(IPC_EVENT_NOT_RECOGNISED, value);
   371 			s = String.format(IPC_EVENT_NOT_RECOGNISED, value);
   372 		}
   372 		}
   373 		return s;
   373 		return s;
   374 	}
   374 	}
   375 	
   375 	
   376 	private String convertCounterType(Integer value) {
   376 	private String convertCounterType(Integer value) {
   377 		String s = IpcTraceParser.counterTypeTable.get(value);
   377 		String s = IpcTraceParser.COUNTER_TYPE_TABLE.get(value);
   378 		if (s == null) {
   378 		if (s == null) {
   379 			s = String.format(IPC_EVENT_NOT_RECOGNISED, value);
   379 			s = String.format(IPC_EVENT_NOT_RECOGNISED, value);
   380 		}
   380 		}
   381 		return s;
   381 		return s;
   382 	}
   382 	}