Rename xxx.lttng to xxx.lttng.core
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.core / src / org / eclipse / linuxtools / lttng / state / evProcessor / state / StateEventToHandlerFactory.java
CommitLineData
5d10d135
ASL
1/*******************************************************************************
2 * Copyright (c) 2009, 2010 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
860cadcf 11 * Michel Dagenais (michel.dagenais@polymtl.ca) - Reference C implementation, used with permission
5d10d135
ASL
12 *******************************************************************************/
13package org.eclipse.linuxtools.lttng.state.evProcessor.state;
14
15import java.util.HashMap;
16import java.util.Map;
17
18import org.eclipse.linuxtools.lttng.state.StateStrings;
19import org.eclipse.linuxtools.lttng.state.evProcessor.AbsEventToHandlerResolver;
20import org.eclipse.linuxtools.lttng.state.evProcessor.ILttngEventProcessor;
21
22/**
23 * Builds a Map from string event name to a processing handler object, the
24 * processors implement the same interface to facilitate transparent methods
25 * call,
26 *
27 * The map key STring is the entry point of the raw events, using a hash speeds
28 * up the resolution of the appropriate processor
29 *
30 * @author alvaro
31 *
32 */
33public class StateEventToHandlerFactory extends AbsEventToHandlerResolver {
34 // ========================================================================
35 // Data
36 // =======================================================================
37 private final Map<String, ILttngEventProcessor> eventNametoStateProcessor = new HashMap<String, ILttngEventProcessor>();
38 private final static StateEventToHandlerFactory instance = new StateEventToHandlerFactory();
39 private StateUpdateHandlers instantiateHandler = new StateUpdateHandlers();
40
41 // ========================================================================
42 // Constructors
43 // =======================================================================
44 protected StateEventToHandlerFactory() {
45 //create one instance of each individual event handler and add the instance to the map
46 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_SYSCALL_ENTRY
47 .getInName(), instantiateHandler.getSyscallEntryHandler());
48
49 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_SYSCALL_EXIT
50 .getInName(), instantiateHandler.getsySyscallExitHandler());
51
52 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_TRAP_ENTRY
53 .getInName(), instantiateHandler.getTrapEntryHandler());
54
55 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_TRAP_EXIT
56 .getInName(), instantiateHandler.getTrapExitHandler());
57
58 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_PAGE_FAULT_ENTRY
59 .getInName(), instantiateHandler.getTrapEntryHandler());
60
61 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_PAGE_FAULT_EXIT
62 .getInName(), instantiateHandler.getTrapExitHandler());
63
64 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_PAGE_FAULT_NOSEM_ENTRY
65 .getInName(), instantiateHandler.getTrapEntryHandler());
66
67 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_PAGE_FAULT_NOSEM_EXIT
68 .getInName(), instantiateHandler.getTrapExitHandler());
69
70 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_IRQ_ENTRY
71 .getInName(), instantiateHandler.getIrqEntryHandler());
72
73 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_IRQ_EXIT
74 .getInName(), instantiateHandler.getIrqExitHandler());
75
76 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_SOFT_IRQ_RAISE
77 .getInName(), instantiateHandler.getSoftIrqRaiseHandler());
78
79 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_SOFT_IRQ_ENTRY
80 .getInName(), instantiateHandler.getSoftIrqEntryHandler());
81
82 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_SOFT_IRQ_EXIT
83 .getInName(), instantiateHandler.getSoftIrqExitHandler());
84
85 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_LIST_INTERRUPT
86 .getInName(), instantiateHandler.getEnumInterruptHandler());
87
88 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_REQUEST_ISSUE
89 .getInName(), instantiateHandler.getBdevRequestIssueHandler());
90
91 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_REQUEST_COMPLETE
92 .getInName(), instantiateHandler.getBdevRequestCompleteHandler());
93
94 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_FUNCTION_ENTRY
95 .getInName(), instantiateHandler.getFunctionEntryHandler());
96
97 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_FUNCTION_EXIT
98 .getInName(), instantiateHandler.getFunctionExitHandler());
99
100 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_SYS_CALL_TABLE
101 .getInName(), instantiateHandler.getDumpSyscallHandler());
102
103 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_KPROBE_TABLE
104 .getInName(), instantiateHandler.getDumpKprobeHandler());
105
106 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_SOFTIRQ_VEC
107 .getInName(), instantiateHandler.getDumpSoftIrqHandler());
108
109 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_SCHED_SCHEDULE
110 .getInName(), instantiateHandler.getSchedChangeHandler());
111
112 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_PROCESS_FORK
113 .getInName(), instantiateHandler.getProcessForkHandler());
114
115 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_KTHREAD_CREATE
116 .getInName(), instantiateHandler.getProcessKernelThreadHandler());
117
118 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_PROCESS_EXIT
119 .getInName(), instantiateHandler.getProcessExitHandler());
120
121 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_PROCESS_FREE
122 .getInName(), instantiateHandler.getProcessFreeHandler());
123
124 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_EXEC
125 .getInName(), instantiateHandler.getProcessExecHandler());
126
127 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_THREAD_BRAND
128 .getInName(), instantiateHandler.GetThreadBrandHandler());
129
130 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_STATEDUMP_END
131 .getInName(), instantiateHandler.getStateDumpEndHandler());
132
133 eventNametoStateProcessor.put(StateStrings.Events.LTT_EVENT_PROCESS_STATE
134 .getInName(), instantiateHandler.getEnumProcessStateHandler());
135
136
137 }
138
139 // ========================================================================
140 // Public methods
141 // =======================================================================
142 /**
143 * The event processors are common to all traces an multiple instances will
144 * use more memory unnecessarily
145 *
146 * @return
147 */
148 public static AbsEventToHandlerResolver getInstance() {
149 return instance;
150 }
151
152
153 /* (non-Javadoc)
154 * @see org.eclipse.linuxtools.lttng.state.evProcessor.AbsEventProcessorFactory#getAfterProcessor(java.lang.String)
155 */
156 @Override
157 public ILttngEventProcessor getAfterProcessor(String eventType) {
158 return null;
159 }
160
161 /* (non-Javadoc)
162 * @see org.eclipse.linuxtools.lttng.state.evProcessor.AbsEventProcessorFactory#getBeforeProcessor(java.lang.String)
163 */
164 @Override
165 public ILttngEventProcessor getBeforeProcessor(String eventType) {
166 return null;
167 }
168
169 /**
170 * This is the only event handler to update the State provider
171 * @return
172 *
173 */
174 @Override
175 public ILttngEventProcessor getStateUpdaterProcessor(String eventType) {
176 return eventNametoStateProcessor.get(eventType);
177 }
178
179 @Override
180 public ILttngEventProcessor getfinishProcessor() {
181 // No finishing processor used
182 return null;
183 }
184
185}
This page took 0.03572 seconds and 5 git commands to generate.