Monster fix: TMF model update + corresponding LTTng adaptations + JUnits
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.ui / src / org / eclipse / linuxtools / lttng / ui / views / resources / evProcessor / ResourcesTRangeUpdateFactory.java
CommitLineData
8035003b
ASL
1/*******************************************************************************
2 * Copyright (c) 2009 Ericsson
3 *
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *
9 * Contributors:
10 * Alvaro Sanchez-Leon (alvsan09@gmail.com) - Initial API and implementation
11 *******************************************************************************/
12package org.eclipse.linuxtools.lttng.ui.views.resources.evProcessor;
13
14import java.util.HashMap;
15import java.util.Map;
16
17import org.eclipse.linuxtools.lttng.state.StateStrings;
18import org.eclipse.linuxtools.lttng.state.evProcessor.AbsEventProcessorFactory;
19import org.eclipse.linuxtools.lttng.state.evProcessor.IEventProcessing;
20
21/**
22 * Builds a Map from string event name to a processing handler object, the
23 * processors implement the same interface to facilitate transparent methods
24 * call,
25 *
26 * The map key String is the entry point of the raw events. Using a hash speeds
27 * up the resolution of the appropriate processor
28 *
29 * @author alvaro
30 *
31 */
32public class ResourcesTRangeUpdateFactory extends AbsEventProcessorFactory {
28b94d61
FC
33 // ========================================================================
34 // Data
35 // =======================================================================
36 private final Map<String, IEventProcessing> eventNametoBeforeProcessor = new HashMap<String, IEventProcessing>();
37 private final Map<String, IEventProcessing> eventNametoAfterProcessor = new HashMap<String, IEventProcessing>();
8035003b 38 private ResourcesTRangeFinishUpdateHandler finishProcessor = null;
28b94d61
FC
39 private static ResourcesTRangeUpdateFactory instance = null;
40 private ResourcesTRangeBeforeUpdateHandlers instantiateBeforeHandler = new ResourcesTRangeBeforeUpdateHandlers();
41 private ResourcesTRangeAfterUpdateHandlers instantiateAfterHandler = new ResourcesTRangeAfterUpdateHandlers();
42
8035003b 43 private ResourcesTRangeUpdateFactory() {
28b94d61
FC
44 // Create one instance of each individual event handler and add the
45 // instance to the map
8035003b 46
28b94d61 47 // *** BEFORE HOOKS ***
8035003b
ASL
48 eventNametoBeforeProcessor.put(
49 StateStrings.Events.LTT_EVENT_SCHED_SCHEDULE.getInName(),
50 instantiateBeforeHandler.getBeforeSchedChangeHandler());
28b94d61
FC
51
52 eventNametoBeforeProcessor.put(StateStrings.Events.LTT_EVENT_TRAP_ENTRY
8035003b
ASL
53 .getInName(), instantiateBeforeHandler
54 .getBeforeExecutionModeTrap());
55 eventNametoBeforeProcessor.put(StateStrings.Events.LTT_EVENT_TRAP_EXIT
56 .getInName(), instantiateBeforeHandler
57 .getBeforeExecutionModeTrap());
58 eventNametoBeforeProcessor.put(
59 StateStrings.Events.LTT_EVENT_PAGE_FAULT_ENTRY.getInName(),
60 instantiateBeforeHandler.getBeforeExecutionModeTrap());
61 eventNametoBeforeProcessor.put(
62 StateStrings.Events.LTT_EVENT_PAGE_FAULT_EXIT.getInName(),
63 instantiateBeforeHandler.getBeforeExecutionModeTrap());
64 eventNametoBeforeProcessor.put(
65 StateStrings.Events.LTT_EVENT_PAGE_FAULT_NOSEM_ENTRY
66 .getInName(), instantiateBeforeHandler
67 .getBeforeExecutionModeTrap());
68 eventNametoBeforeProcessor
69 .put(StateStrings.Events.LTT_EVENT_PAGE_FAULT_NOSEM_EXIT
70 .getInName(), instantiateBeforeHandler
71 .getBeforeExecutionModeTrap());
28b94d61
FC
72
73 eventNametoBeforeProcessor.put(StateStrings.Events.LTT_EVENT_IRQ_ENTRY
8035003b
ASL
74 .getInName(), instantiateBeforeHandler
75 .getBeforeExecutionModeIrq());
76 eventNametoBeforeProcessor.put(StateStrings.Events.LTT_EVENT_IRQ_EXIT
77 .getInName(), instantiateBeforeHandler
78 .getBeforeExecutionModeIrq());
28b94d61
FC
79
80 eventNametoBeforeProcessor.put(
8035003b
ASL
81 StateStrings.Events.LTT_EVENT_SOFT_IRQ_RAISE.getInName(),
82 instantiateBeforeHandler.getBeforeExecutionModeSoftIrq());
83 eventNametoBeforeProcessor.put(
84 StateStrings.Events.LTT_EVENT_SOFT_IRQ_ENTRY.getInName(),
85 instantiateBeforeHandler.getBeforeExecutionModeSoftIrq());
86 eventNametoBeforeProcessor.put(
87 StateStrings.Events.LTT_EVENT_SOFT_IRQ_EXIT.getInName(),
88 instantiateBeforeHandler.getBeforeExecutionModeSoftIrq());
28b94d61
FC
89
90 eventNametoBeforeProcessor.put(
8035003b
ASL
91 StateStrings.Events.LTT_EVENT_REQUEST_ISSUE.getInName(),
92 instantiateBeforeHandler.getBeforeBdevEvent());
93 eventNametoBeforeProcessor.put(
94 StateStrings.Events.LTT_EVENT_REQUEST_COMPLETE.getInName(),
95 instantiateBeforeHandler.getBeforeBdevEvent());
28b94d61
FC
96
97 // *** AFTER HOOKS ***
41dc35d0 98 eventNametoAfterProcessor.put(
8035003b
ASL
99 StateStrings.Events.LTT_EVENT_SCHED_SCHEDULE.getInName(),
100 instantiateAfterHandler.getAfterSchedChangeHandler());
101
102 finishProcessor = new ResourcesTRangeFinishUpdateHandler();
28b94d61
FC
103 }
104
105 /**
8035003b
ASL
106 *
107 */
108 public static AbsEventProcessorFactory getInstance() {
28b94d61 109 if (instance == null) {
8035003b 110 instance = new ResourcesTRangeUpdateFactory();
28b94d61
FC
111 }
112 return instance;
113 }
114
115 @Override
116 public IEventProcessing getAfterProcessor(String eventType) {
117 return eventNametoAfterProcessor.get(eventType);
118 }
8035003b 119
28b94d61
FC
120 @Override
121 public IEventProcessing getBeforeProcessor(String eventType) {
122 return eventNametoBeforeProcessor.get(eventType);
123 }
8035003b
ASL
124
125 @Override
126 public IEventProcessing getfinishProcessor() {
127 return finishProcessor;
128 }
129}
This page took 0.031709 seconds and 5 git commands to generate.