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 **********************************************************************/
12 package org
.eclipse
.linuxtools
.internal
.lttng2
.control
.ui
.views
.preferences
;
16 import org
.eclipse
.jface
.preference
.IPreferenceStore
;
17 import org
.eclipse
.linuxtools
.internal
.lttng2
.control
.ui
.views
.logging
.ControlCommandLogger
;
21 * Singleton class to access LTTng tracer control preferences.
24 * @author Bernd Hufmann
26 public class ControlPreferences
{
28 // ------------------------------------------------------------------------
30 // ------------------------------------------------------------------------
32 * Trace control log file
34 public static final String TRACE_CONTROL_LOG_FILENAME
= "lttng_tracer_control.log"; //$NON-NLS-1$
38 * The tracing group preference
40 public static final String TRACE_CONTROL_TRACING_GROUP_PREF
= "trace.control.tracing.group"; //$NON-NLS-1$
42 * The log commands preference
44 public static final String TRACE_CONTROL_LOG_COMMANDS_PREF
= "trace.control.log.commands"; //$NON-NLS-1$
46 * The log append preference
48 public static final String TRACE_CONTROL_LOG_APPEND_PREF
= "trace.control.log.append"; //$NON-NLS-1$
50 * The log file path preference
52 public static final String TRACE_CONTROL_LOG_FILE_PATH_PREF
= "trace.control.log.path"; //$NON-NLS-1$
54 * The verbose level preference
56 public static final String TRACE_CONTROL_VERBOSE_LEVEL_PREF
= "trace.control.verbose.level"; //$NON-NLS-1$
58 * The command time-out preference
60 public static final String TRACE_CONTROL_COMMAND_TIMEOUT_PREF
= "trace.control.command.timeout"; //$NON-NLS-1$
62 * The verbose level value for none
64 public static final String TRACE_CONTROL_VERBOSE_LEVEL_NONE
= "trace.control.verbose.level.none"; //$NON-NLS-1$
66 * The verbose level value for level 1 (-v)
68 public static final String TRACE_CONTROL_VERBOSE_LEVEL_VERBOSE
= "trace.control.verbose.level.v"; //$NON-NLS-1$
70 * The verbose level value for level 2 (-vv)
72 public static final String TRACE_CONTROL_VERBOSE_LEVEL_V_VERBOSE
= "trace.control.verbose.level.vv"; //$NON-NLS-1$
74 * The verbose level value for level 3 (-vvv)
76 public static final String TRACE_CONTROL_VERBOSE_LEVEL_V_V_VERBOSE
= "trace.control.verbose.level.vvv"; //$NON-NLS-1$
78 * The default tracing group
80 public static final String TRACE_CONTROL_DEFAULT_TRACING_GROUP
= "tracing"; //$NON-NLS-1$
82 * The default tracing log file name with absolute path
84 public static final String TRACE_CONTROL_DEFAULT_LOG_PATH
= System
.getProperty("user.home") + File
.separator
+ TRACE_CONTROL_LOG_FILENAME
; //$NON-NLS-1$
86 * Default timeout value used for executing commands, in seconds
88 public static final int TRACE_CONTROL_DEFAULT_TIMEOUT_VALUE
= 15;
90 * Minimum timeout value used for executing commands, in seconds
92 public static final int TRACE_CONTROL_MIN_TIMEOUT_VALUE
= 5;
94 * Maximum timeout value used for executing commands, in seconds
96 public static final int TRACE_CONTROL_MAX_TIMEOUT_VALUE
= 600;
98 // ------------------------------------------------------------------------
100 // ------------------------------------------------------------------------
102 * The trace control preferences singleton instance.
104 private static ControlPreferences fInstance
= null;
106 * The preference store reference
108 private IPreferenceStore fPreferenceStore
= null;
110 // ------------------------------------------------------------------------
112 // ------------------------------------------------------------------------
114 * Private constructor
116 private ControlPreferences() {
119 // ------------------------------------------------------------------------
121 // ------------------------------------------------------------------------
123 * Returns the trace control preferences singleton instance
125 * @return the trace control preferences singleton instance
127 public static synchronized ControlPreferences
getInstance() {
128 if (fInstance
== null) {
129 fInstance
= new ControlPreferences();
135 * @return the preference store
137 public IPreferenceStore
getPreferenceStore() {
138 return fPreferenceStore
;
142 * @return true if tracing group is set to default
144 public boolean isDefaultTracingGroup() {
145 return fPreferenceStore
.getString(TRACE_CONTROL_TRACING_GROUP_PREF
).equals(fPreferenceStore
.getDefaultString(TRACE_CONTROL_TRACING_GROUP_PREF
));
149 * @return value of tracing group preference
151 public String
getTracingGroup() {
152 return fPreferenceStore
.getString(TRACE_CONTROL_TRACING_GROUP_PREF
);
156 * @return whether is logging is enabled
158 public boolean isLoggingEnabled() {
159 return fPreferenceStore
.getBoolean(TRACE_CONTROL_LOG_COMMANDS_PREF
);
163 * @return whether an existing log file will appended or not
165 public boolean isAppend() {
166 return fPreferenceStore
.getBoolean(ControlPreferences
.TRACE_CONTROL_LOG_APPEND_PREF
);
170 * @return verbose level preference
172 public String
getVerboseLevel() {
173 return fPreferenceStore
.getString(TRACE_CONTROL_VERBOSE_LEVEL_PREF
);
177 * @return absolute log file path
179 public String
getLogfilePath() {
180 return fPreferenceStore
.getString(TRACE_CONTROL_LOG_FILE_PATH_PREF
);
184 * @return command timeout value
186 public int getCommandTimeout() {
187 return fPreferenceStore
.getInt(TRACE_CONTROL_COMMAND_TIMEOUT_PREF
);
191 // ------------------------------------------------------------------------
193 // ------------------------------------------------------------------------
196 * Initializes the control preferences (e.g. enable open log file)
198 * @param preferenceStore
199 * The preference store to assign
201 public void init(IPreferenceStore preferenceStore
) {
202 fPreferenceStore
= preferenceStore
;
204 if (fPreferenceStore
.getBoolean(ControlPreferences
.TRACE_CONTROL_LOG_COMMANDS_PREF
)) {
205 ControlCommandLogger
.init(getLogfilePath(), isAppend());
210 * Disposes any resource (e.g. close log file).
212 public void dispose() {
213 ControlCommandLogger
.close();