**********************************************************************/
package org.eclipse.linuxtools.lttng.ui.views.control.model.impl;
+import java.util.List;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.linuxtools.lttng.ui.views.control.Messages;
import org.eclipse.linuxtools.lttng.ui.views.control.model.IChannelInfo;
import org.eclipse.linuxtools.lttng.ui.views.control.model.IDomainInfo;
import org.eclipse.linuxtools.lttng.ui.views.control.model.ITraceControlComponent;
+import org.eclipse.linuxtools.lttng.ui.views.control.model.LogLevelType;
+import org.eclipse.linuxtools.lttng.ui.views.control.model.TraceLogLevel;
import org.eclipse.linuxtools.lttng.ui.views.control.property.TraceDomainPropertySource;
import org.eclipse.ui.views.properties.IPropertySource;
/**
* The domain information.
*/
- private IDomainInfo fDomainInfo = null;
+ private IDomainInfo fDomainInfo = null;
// ------------------------------------------------------------------------
// Constructors
return new TraceDomainPropertySource(this);
}
return null;
- }
+ }
+
+ /**
+ * @return session name from parent
+ */
+ public String getSessionName() {
+ return ((TraceSessionComponent)getParent()).getName();
+ }
+
+ /**
+ * @return session from parent
+ */
+ public TraceSessionComponent getSession() {
+ return (TraceSessionComponent)getParent();
+ }
+
+ /**
+ * @return true if domain is kernel, false for UST
+ */
+ public boolean isKernel() {
+ return fDomainInfo.isKernel();
+ }
+
+ /**
+ * Sets whether domain is Kernel domain or UST
+ * @param isKernel true for kernel, false for UST
+ */
+ public void setIsKernel(boolean isKernel) {
+ fDomainInfo.setIsKernel(isKernel);
+ }
+
+ /**
+ * @return returns all available channels for this domain.
+ */
+ public TraceChannelComponent[] getChannels() {
+ List<ITraceControlComponent> channels = getChildren(TraceChannelComponent.class);
+ return (TraceChannelComponent[])channels.toArray(new TraceChannelComponent[channels.size()]);
+ }
+
+ /**
+ * @return the parent target node
+ */
+ public TargetNodeComponent getTargetNode() {
+ return ((TraceSessionComponent)getParent()).getTargetNode();
+ }
+
// ------------------------------------------------------------------------
// Operations
// ------------------------------------------------------------------------
+ /**
+ * Retrieves the session configuration from the node.
+ * @throws ExecutionException
+ */
+ public void getConfigurationFromNode() throws ExecutionException {
+ getConfigurationFromNode(new NullProgressMonitor());
+ }
+ /**
+ * Retrieves the session configuration from the node.
+ * @param monitor - a progress monitor
+ * @throws ExecutionException
+ */
+ public void getConfigurationFromNode(IProgressMonitor monitor) throws ExecutionException {
+ TraceSessionComponent session = (TraceSessionComponent) getParent();
+ session.getConfigurationFromNode(monitor);
+ }
+ /**
+ * Enables channels with given names which are part of this domain. If a given channel
+ * doesn't exists it creates a new channel with the given parameters (or default values
+ * if given parameter is null).
+ * @param channelNames - a list of channel names to enable on this domain
+ * @param info - channel information to set for the channel (use null for default)
+ * @throws ExecutionException
+ */
+ public void enableChannels(List<String> channelNames, IChannelInfo info) throws ExecutionException {
+ enableChannels(channelNames, info, new NullProgressMonitor());
+ }
+ /**
+ * Enables channels with given names which are part of this domain. If a given channel
+ * doesn't exists it creates a new channel with the given parameters (or default values
+ * if given parameter is null).
+ * @param channelNames - a list of channel names to enable on this domain
+ * @param info - channel information to set for the channel (use null for default)
+ * @param monitor - a progress monitor
+ * @throws ExecutionException
+ */
+ public void enableChannels(List<String> channelNames, IChannelInfo info, IProgressMonitor monitor) throws ExecutionException {
+ getControlService().enableChannels(getParent().getName(), channelNames, isKernel(), info, monitor);
+ }
+ /**
+ * Disables channels with given names which are part of this domain.
+ * @param channelNames - a list of channel names to enable on this domain
+ * @throws ExecutionException
+ */
+ public void disableChannels(List<String> channelNames) throws ExecutionException {
+ disableChannels(channelNames, new NullProgressMonitor());
+ }
+ /**
+ * Disables channels with given names which are part of this domain.
+ * @param channelNames - a list of channel names to enable on this domain
+ * @param monitor - a progress monitor
+ * @throws ExecutionException
+ */
+ public void disableChannels(List<String> channelNames, IProgressMonitor monitor) throws ExecutionException {
+ getControlService().disableChannels(getParent().getName(), channelNames, isKernel(), monitor);
+ }
+
+ /**
+ * Enables a list of events with no additional parameters.
+ * @param eventNames - a list of event names to enabled.
+ * @param monitor - a progress monitor
+ * @throws ExecutionException
+ */
+ public void enableEvents(List<String> eventNames, IProgressMonitor monitor) throws ExecutionException {
+ getControlService().enableEvents(getSessionName(), null, eventNames, isKernel(), monitor);
+ }
+
+ /**
+ * Enables all syscalls (for kernel domain)
+ * @throws ExecutionException
+ */
+ public void enableSyscalls() throws ExecutionException {
+ enableSyscalls(new NullProgressMonitor());
+ }
+
+ /**
+ * Enables all syscalls (for kernel domain)
+ * @param monitor - a progress monitor
+ * @throws ExecutionException
+ */
+
+ public void enableSyscalls(IProgressMonitor monitor) throws ExecutionException {
+ getControlService().enableSyscalls(getSessionName(), null, monitor);
+ }
+
+ /**
+ * Enables a dynamic probe (for kernel domain)
+ * @param eventName - event name for probe
+ * @param isFunction - true for dynamic function entry/return probe else false
+ * @param probe - the actual probe
+ * @throws ExecutionException
+ */
+ public void enableProbe(String eventName, boolean isFunction, String probe) throws ExecutionException {
+ enableProbe(eventName, isFunction, probe, new NullProgressMonitor());
+ }
+
+ /**
+ * Enables a dynamic probe (for kernel domain)
+ * @param eventName - event name for probe
+ * @param isFunction - true for dynamic function entry/return probe else false
+ * @param probe - the actual probe
+ * @param monitor - a progress monitor
+ * @throws ExecutionException
+ */
+ public void enableProbe(String eventName, boolean isFunction, String probe, IProgressMonitor monitor) throws ExecutionException {
+ getControlService().enableProbe(getSessionName(), null, eventName, isFunction, probe, monitor);
+ }
+
+ /**
+ * Enables events using log level.
+ * @param eventName - a event name
+ * @param logLevelType - a log level type
+ * @param level - a log level
+ * @throws ExecutionException
+ */
+ public void enableLogLevel(String eventName, LogLevelType logLevelType, TraceLogLevel level) throws ExecutionException {
+ enableLogLevel(eventName, logLevelType, level, new NullProgressMonitor());
+ }
+
+ /**
+ * Enables events using log level.
+ * @param eventName - a event name
+ * @param logLevelType - a log level type
+ * @param level - a log level
+ * @param monitor - a progress monitor
+ * @throws ExecutionException
+ */
+ public void enableLogLevel(String eventName, LogLevelType logLevelType, TraceLogLevel level, IProgressMonitor monitor) throws ExecutionException {
+ getControlService().enableLogLevel(getSessionName(), null, eventName, logLevelType, level, monitor);
+ }
+
}