1 /**********************************************************************
2 * Copyright (c) 2012, 2013 Ericsson
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
10 * Bernd Hufmann - Initial API and implementation
11 * Simon Delisle - Updated for support of LTTng Tools 2.2
12 **********************************************************************/
13 package org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.impl
;
15 import java
.util
.ArrayList
;
16 import java
.util
.Iterator
;
17 import java
.util
.List
;
19 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.IChannelInfo
;
20 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.IEventInfo
;
21 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.TraceEnablement
;
25 * Implementation of the trace channel interface (IChannelInfo) to store channel
29 * @author Bernd Hufmann
31 public class ChannelInfo
extends TraceInfo
implements IChannelInfo
{
33 // ------------------------------------------------------------------------
35 // ------------------------------------------------------------------------
37 * The overwrite mode of the channel.
39 private boolean fOverwriteMode
;
41 * The sub-buffer size of the channel.
43 private long fSubBufferSize
;
45 * The number of sub-buffers of the channel.
47 private int fNumberOfSubBuffers
;
49 * The switch timer interval of the channel.
51 private long fSwitchTimer
;
53 * The read timer interval of the channel.
55 private long fReadTimer
;
57 * The Output type of the channel.
59 private String fOutputType
= ""; //$NON-NLS-1$
61 * The channel enable state.
63 private TraceEnablement fState
= TraceEnablement
.DISABLED
;
65 * The events information of the channel.
67 private final List
<IEventInfo
> fEvents
= new ArrayList
<IEventInfo
>();
69 * The maximum size of trace files
71 private int fMaxSizeTraceFiles
;
73 * The maximum number of trace files
75 private int fMaxNumberTraceFiles
;
77 * The value of buffer type
79 private BufferType fBufferType
;
82 // ------------------------------------------------------------------------
84 // ------------------------------------------------------------------------
87 * @param name - name channel
89 public ChannelInfo(String name
) {
95 * @param other - the instance to copy
97 public ChannelInfo(ChannelInfo other
) {
99 fOverwriteMode
= other
.fOverwriteMode
;
100 fSubBufferSize
= other
.fSubBufferSize
;
101 fNumberOfSubBuffers
= other
.fNumberOfSubBuffers
;
102 fSwitchTimer
= other
.fSwitchTimer
;
103 fReadTimer
= other
.fReadTimer
;
104 fMaxSizeTraceFiles
= other
.fMaxSizeTraceFiles
;
105 fMaxNumberTraceFiles
= other
.fMaxNumberTraceFiles
;
106 fBufferType
= other
.fBufferType
;
107 fOutputType
= (other
.fOutputType
== null ?
null : String
.valueOf(other
.fOutputType
));
108 fState
= other
.fState
;
109 for (Iterator
<IEventInfo
> iterator
= other
.fEvents
.iterator(); iterator
.hasNext();) {
110 IEventInfo event
= iterator
.next();
111 if (event
instanceof EventInfo
) {
112 fEvents
.add(new EventInfo((EventInfo
)event
));
119 // ------------------------------------------------------------------------
121 // ------------------------------------------------------------------------
124 public boolean isOverwriteMode() {
125 return fOverwriteMode
;
129 public void setOverwriteMode(boolean mode
) {
130 fOverwriteMode
= mode
;
134 public long getSubBufferSize() {
135 return fSubBufferSize
;
139 public void setSubBufferSize(long bufferSize
) {
140 fSubBufferSize
= bufferSize
;
144 public int getNumberOfSubBuffers() {
145 return fNumberOfSubBuffers
;
149 public void setNumberOfSubBuffers(int numberOfSubBuffers
) {
150 fNumberOfSubBuffers
= numberOfSubBuffers
;
154 public long getSwitchTimer() {
159 public void setSwitchTimer(long timer
) {
160 fSwitchTimer
= timer
;
164 public long getReadTimer() {
169 public void setReadTimer(long timer
) {
174 public String
getOutputType() {
179 public void setOutputType(String type
) {
184 public TraceEnablement
getState() {
189 public void setState(TraceEnablement state
) {
194 public void setState(String stateName
) {
195 fState
= TraceEnablement
.ENABLED
;
196 if (TraceEnablement
.DISABLED
.getInName().equals(stateName
)) {
197 fState
= TraceEnablement
.DISABLED
;
198 } else if (TraceEnablement
.ENABLED
.getInName().equals(stateName
)) {
199 fState
= TraceEnablement
.ENABLED
;
204 public IEventInfo
[] getEvents() {
205 return fEvents
.toArray(new IEventInfo
[fEvents
.size()]);
209 public void setEvents(List
<IEventInfo
> events
) {
211 for (Iterator
<IEventInfo
> iterator
= events
.iterator(); iterator
.hasNext();) {
212 IEventInfo eventInfo
= iterator
.next();
213 fEvents
.add(eventInfo
);
218 public void addEvent(IEventInfo channel
) {
219 fEvents
.add(channel
);
223 public int hashCode() {
224 final int prime
= 31;
225 int result
= super.hashCode();
226 result
= prime
* result
+ fEvents
.hashCode();
227 result
= prime
* result
+ fNumberOfSubBuffers
;
228 result
= prime
* result
+ ((fOutputType
== null) ?
0 : fOutputType
.hashCode());
229 result
= prime
* result
+ (fOverwriteMode ?
1231 : 1237);
230 result
= prime
* result
+ (int) (fReadTimer ^
(fReadTimer
>>> 32));
231 result
= prime
* result
+ ((fState
== null) ?
0 : (fState
.ordinal() + 1));
232 result
= prime
* result
+ (int) (fSubBufferSize ^
(fSubBufferSize
>>> 32));
233 result
= prime
* result
+ (int) (fSwitchTimer ^
(fSwitchTimer
>>> 32));
234 result
= prime
* result
+ ((fBufferType
== null) ?
0 : (fBufferType
.ordinal() + 1));
239 public boolean equals(Object obj
) {
243 if (!super.equals(obj
)) {
246 if (getClass() != obj
.getClass()) {
249 ChannelInfo other
= (ChannelInfo
) obj
;
250 if (!fEvents
.equals(other
.fEvents
)) {
253 if (fNumberOfSubBuffers
!= other
.fNumberOfSubBuffers
) {
256 if (fOutputType
== null) {
257 if (other
.fOutputType
!= null) {
260 } else if (!fOutputType
.equals(other
.fOutputType
)) {
263 if (fOverwriteMode
!= other
.fOverwriteMode
) {
266 if (fReadTimer
!= other
.fReadTimer
) {
269 if (fState
!= other
.fState
) {
272 if (fSubBufferSize
!= other
.fSubBufferSize
) {
275 if (fSwitchTimer
!= other
.fSwitchTimer
) {
278 if (fBufferType
!= other
.fBufferType
) {
284 @SuppressWarnings("nls")
286 public String
toString() {
287 StringBuffer output
= new StringBuffer();
288 output
.append("[ChannelInfo(");
289 output
.append(super.toString());
290 output
.append(",State=");
291 output
.append(fState
);
292 output
.append(",OverwriteMode=");
293 output
.append(fOverwriteMode
);
294 output
.append(",SubBuffersSize=");
295 output
.append(fSubBufferSize
);
296 output
.append(",NumberOfSubBuffers=");
297 output
.append(fNumberOfSubBuffers
);
298 output
.append(",SwitchTimer=");
299 output
.append(fSwitchTimer
);
300 output
.append(",ReadTimer=");
301 output
.append(fReadTimer
);
302 output
.append(",output=");
303 output
.append(fOutputType
);
304 if (!fBufferType
.equals(BufferType
.BUFFER_TYPE_UNKNOWN
) && !fBufferType
.equals(BufferType
.BUFFER_SHARED
)) {
305 output
.append(",BufferType=");
306 output
.append(fBufferType
);
308 output
.append(",Events=");
309 if (fEvents
.isEmpty()) {
310 output
.append("None");
312 for (Iterator
<IEventInfo
> iterator
= fEvents
.iterator(); iterator
.hasNext();) {
313 IEventInfo event
= iterator
.next();
314 output
.append(event
.toString());
318 return output
.toString();
322 public void setMaxSizeTraceFiles(int maxSizeTraceFiles
) {
323 fMaxSizeTraceFiles
= maxSizeTraceFiles
;
327 public void setMaxNumberTraceFiles(int maxNumberTraceFiles
) {
328 fMaxNumberTraceFiles
= maxNumberTraceFiles
;
332 public int getMaxSizeTraceFiles() {
333 return fMaxSizeTraceFiles
;
337 public int getMaxNumberTraceFiles() {
338 return fMaxNumberTraceFiles
;
342 public void setBufferType(BufferType bufferType
) {
343 fBufferType
= bufferType
;
347 public BufferType
getBufferType() {
This page took 0.042268 seconds and 6 git commands to generate.