Re-structure LTTng sub-project as per the Linux Tools guidelines
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.ui / src / org / eclipse / linuxtools / lttng / ui / tracecontrol / actions / CreateNewTrace.java
index dfffc651fbe39d843b3e1ae0ce3e9e3e7dd2de2e..01be4b955f0c41ee51b75168123d70043932fbcc 100644 (file)
@@ -22,14 +22,14 @@ import java.util.concurrent.TimeUnit;
 import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.linuxtools.lttng.tracecontrol.model.TargetResource;
-import org.eclipse.linuxtools.lttng.tracecontrol.model.TraceResource;
-import org.eclipse.linuxtools.lttng.tracecontrol.model.TraceResource.TraceState;
-import org.eclipse.linuxtools.lttng.tracecontrol.model.config.TraceConfig;
-import org.eclipse.linuxtools.lttng.tracecontrol.service.ILttControllerService;
+import org.eclipse.linuxtools.lttng.core.tracecontrol.model.TargetResource;
+import org.eclipse.linuxtools.lttng.core.tracecontrol.model.TraceResource;
+import org.eclipse.linuxtools.lttng.core.tracecontrol.model.TraceResource.TraceState;
+import org.eclipse.linuxtools.lttng.core.tracecontrol.model.config.TraceConfig;
+import org.eclipse.linuxtools.lttng.core.tracecontrol.service.ILttControllerService;
 import org.eclipse.linuxtools.lttng.ui.LTTngUiPlugin;
-import org.eclipse.linuxtools.lttng.ui.tracecontrol.TraceControlConstants;
 import org.eclipse.linuxtools.lttng.ui.tracecontrol.Messages;
+import org.eclipse.linuxtools.lttng.ui.tracecontrol.TraceControlConstants;
 import org.eclipse.linuxtools.lttng.ui.tracecontrol.dialogs.NewTraceDialog;
 import org.eclipse.linuxtools.lttng.ui.tracecontrol.subsystems.TraceSubSystem;
 import org.eclipse.rse.core.events.ISystemRemoteChangeEvents;
@@ -58,10 +58,8 @@ public class CreateNewTrace implements IObjectActionDelegate, IWorkbenchWindowAc
     // ------------------------------------------------------------------------
     // Attributes
     // ------------------------------------------------------------------------
-    
-    private TargetResource fSelectedTarget;
-    private List<TargetResource> fSelectedFiles;
-    private String fTraceName;
+
+    private final List<TargetResource> fSelectedFiles;
 
     // ------------------------------------------------------------------------
     // Constructors
@@ -71,7 +69,7 @@ public class CreateNewTrace implements IObjectActionDelegate, IWorkbenchWindowAc
      * Constructor for CreateNewTrace.
      */
     public CreateNewTrace() {
-        fSelectedFiles= new ArrayList<TargetResource>();
+        fSelectedFiles = new ArrayList<TargetResource>();
     }
 
     // ------------------------------------------------------------------------
@@ -80,7 +78,10 @@ public class CreateNewTrace implements IObjectActionDelegate, IWorkbenchWindowAc
 
     /*
      * (non-Javadoc)
-     * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart)
+     * 
+     * @see
+     * org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.
+     * action.IAction, org.eclipse.ui.IWorkbenchPart)
      */
     @Override
     public void setActivePart(IAction action, IWorkbenchPart targetPart) {
@@ -93,100 +94,112 @@ public class CreateNewTrace implements IObjectActionDelegate, IWorkbenchWindowAc
      */
     protected TargetResource getFirstSelectedTarget() {
         if (fSelectedFiles.size() > 0) {
-            return (TargetResource) fSelectedFiles.get(0);
+            return fSelectedFiles.get(0);
         }
         return null;
     }
 
     /*
      * (non-Javadoc)
+     * 
      * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
      */
     @Override
     public void run(IAction action) {
         Shell shell = getShell();
-        fSelectedTarget = getFirstSelectedTarget();
-        TraceSubSystem subSystem = (TraceSubSystem)fSelectedTarget.getSubSystem();
-        NewTraceDialog dialog = new NewTraceDialog(shell, subSystem, fSelectedTarget);
-        
+        final TargetResource targetResource = getFirstSelectedTarget();
+        TraceSubSystem subSystem = (TraceSubSystem) targetResource.getSubSystem();
+        NewTraceDialog dialog = new NewTraceDialog(shell, subSystem, targetResource);
+
         final TraceConfig traceConfig = dialog.open();
 
-        if (traceConfig != null) {
-            
-            fTraceName = traceConfig.getTraceName();
+        if (traceConfig == null) {
+            return;
+        }
 
-            try {
-                final ILttControllerService service = subSystem.getControllerService();
+        try {
+            final ILttControllerService service = subSystem.getControllerService();
 
-                if (fSelectedTarget.isUst()) {
-                       boolean ok = setupUstLocation(service, fSelectedTarget, traceConfig);
-                       if (!ok) {
-                               return;
-                       }
-                }
-                
-                // Create future task
-                @SuppressWarnings("unused")
-                Boolean success = new TCFTask<Boolean>() {
-                    @Override
-                    public void run() {
-
-                        // Setup trace  using Lttng controller service proxy
-                        service.setupTrace(fSelectedTarget.getParent().getName(), fSelectedTarget.getName(), traceConfig.getTraceName(), new ILttControllerService.DoneSetupTrace() {
-                            
-                            @Override
-                            public void doneSetupTrace(IToken token, Exception error, Object str) {
-                                if (error != null) {
-                                    // Notify with error
-                                    error(error);
-                                    return;
-                                }
+            TraceResource trace = new TraceResource(targetResource.getSubSystem(), service);
+            trace.setName(traceConfig.getTraceName());
+            trace.setParent(targetResource);
+            trace.setTraceConfig(traceConfig);
 
-                                // Notify about success
-                                done(Boolean.valueOf(true));
-                            }
-                        });
-                    }}.get(TraceControlConstants.DEFAULT_TCF_TASK_TIMEOUT, TimeUnit.SECONDS);
-
-                    // Enable all channels by default
-                    setChannelEnable(service, fSelectedTarget, traceConfig, TraceControlConstants.Lttng_Control_AllChannels, true);
-
-            } catch (Exception e) {
-                SystemMessageException sysExp;
-                if (e instanceof SystemMessageException) {
-                    sysExp = (SystemMessageException)e;
-                } else {
-                    sysExp = new SystemMessageException(LTTngUiPlugin.getDefault().getMessage(e));    
+            if (targetResource.isUst()) {
+                boolean ok = setupUstLocation(service, targetResource, traceConfig);
+                if (!ok) {
+                    return;
                 }
-                SystemBasePlugin.logError(Messages.Lttng_Control_ErrorNewTrace + " (" +  //$NON-NLS-1$
-                        Messages.Lttng_Resource_Trace + ": "  + traceConfig.getTraceName() + ")", sysExp); //$NON-NLS-1$ //$NON-NLS-2$
+            }
+
+            trace.setupTrace();
 
-                return;
+            if (!targetResource.isUst()) {
+
+                // Enable all channels by default
+                trace.setChannelEnable(TraceControlConstants.Lttng_Control_AllChannels, true);
+
+                // Set overwrite mode for all channels according to user
+                // selection (true for flight recorder, false for normal)
+                trace.setChannelOverwrite(TraceControlConstants.Lttng_Control_AllChannels, traceConfig.getMode() == TraceConfig.FLIGHT_RECORDER_MODE);
+
+                // Set channel timer for all channels
+                final long period = 1000;
+                trace.setChannelTimer(TraceControlConstants.Lttng_Control_AllChannels, period);
+
+                // Set subbuffer size for all channels
+                final long subbufSize = 16384;
+                trace.setChannelSubbufSize(TraceControlConstants.Lttng_Control_AllChannels, subbufSize);
+
+                // Set number of subbuffers for all channels
+                final long subbufNum = 2;
+                trace.setChannelSubbufNum(TraceControlConstants.Lttng_Control_AllChannels, subbufNum);
+            }
+
+            if (traceConfig.isNetworkTrace()) {
+
+                File newDir = new File(traceConfig.getTracePath());
+                if (!newDir.exists()) {
+                    boolean created = newDir.mkdirs();
+                    if (!created) {
+                        throw new Exception(Messages.Lttng_Control_ErrorCreateTracePath + ": " + traceConfig.getTracePath()); //$NON-NLS-1$
+                    }
+                }
             }
 
-            TraceResource trace = new TraceResource(fSelectedTarget.getSubSystem());
-            trace.setName(fTraceName);
-            trace.setParent(fSelectedTarget);
-            
             if (trace.isUst()) {
                 // in UST the tracing is started after setupTrace!!
                 trace.setTraceState(TraceState.STARTED);
-            }
-            else {
+            } else {
                 trace.setTraceState(TraceState.CONFIGURED);
             }
-            
-            trace.setTraceConfig(traceConfig);
-            fSelectedTarget.addTrace(trace);
+
+            targetResource.addTrace(trace);
 
             ISystemRegistry registry = SystemStartHere.getSystemRegistry();
-            registry.fireRemoteResourceChangeEvent(ISystemRemoteChangeEvents.SYSTEM_REMOTE_RESOURCE_CREATED, trace, fSelectedTarget, subSystem, null);
+            registry.fireRemoteResourceChangeEvent(ISystemRemoteChangeEvents.SYSTEM_REMOTE_RESOURCE_CREATED, trace, targetResource, subSystem, null);
+
+        } catch (Exception e) {
+            SystemMessageException sysExp;
+            if (e instanceof SystemMessageException) {
+                sysExp = (SystemMessageException) e;
+            } else {
+                sysExp = new SystemMessageException(LTTngUiPlugin.getDefault().getMessage(e));
+            }
+            SystemBasePlugin.logError(Messages.Lttng_Control_ErrorNewTrace + " (" + //$NON-NLS-1$
+                    Messages.Lttng_Resource_Trace + ": " + traceConfig.getTraceName() + ")", sysExp); //$NON-NLS-1$ //$NON-NLS-2$
+
+            return;
         }
+
     }
 
     /*
      * (non-Javadoc)
-     * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
+     * 
+     * @see
+     * org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action
+     * .IAction, org.eclipse.jface.viewers.ISelection)
      */
     @Override
     @SuppressWarnings("unchecked")
@@ -198,7 +211,7 @@ public class CreateNewTrace implements IObjectActionDelegate, IWorkbenchWindowAc
             while (theSet.hasNext()) {
                 Object obj = theSet.next();
                 if (obj instanceof TargetResource) {
-                    fSelectedFiles.add((TargetResource)obj);
+                    fSelectedFiles.add((TargetResource) obj);
                 }
             }
         }
@@ -212,10 +225,12 @@ public class CreateNewTrace implements IObjectActionDelegate, IWorkbenchWindowAc
     protected Shell getShell() {
         return SystemBasePlugin.getActiveWorkbenchShell();
     }
-    
+
     /*
      * (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow)
+     * 
+     * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.
+     * IWorkbenchWindow)
      */
     @Override
     public void init(IWorkbenchWindow window) {
@@ -224,6 +239,7 @@ public class CreateNewTrace implements IObjectActionDelegate, IWorkbenchWindowAc
 
     /*
      * (non-Javadoc)
+     * 
      * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#dispose()
      */
     @Override
@@ -232,24 +248,26 @@ public class CreateNewTrace implements IObjectActionDelegate, IWorkbenchWindowAc
 
     /*
      * (non-Javadoc)
+     * 
      * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
      */
     @Override
     public void init(IViewPart view) {
     }
-    
+
     /*
      * Setup the trace location for UST.
-     */ 
-    private boolean setupUstLocation(final ILttControllerService service, final TargetResource targetResource, final TraceConfig traceConfig) throws Exception {
+     */
+    private boolean setupUstLocation(final ILttControllerService service, final TargetResource targetResource, final TraceConfig traceConfig)
+            throws Exception {
         if (traceConfig.isNetworkTrace()) {
-               File localDir = new File(traceConfig.getTracePath());
-               if (!localDir.exists()) {
-                   boolean success = localDir.mkdirs();
-                   if (!success) {
-                       return false;
-                   }
-               }
+            File localDir = new File(traceConfig.getTracePath());
+            if (!localDir.exists()) {
+                boolean success = localDir.mkdirs();
+                if (!success) {
+                    return false;
+                }
+            }
 
             // Create future task
             boolean ok = new TCFTask<Boolean>() {
@@ -257,28 +275,24 @@ public class CreateNewTrace implements IObjectActionDelegate, IWorkbenchWindowAc
                 public void run() {
 
                     // Setup trace location using Lttng controller service proxy
-                    service.writeTraceNetwork(targetResource.getParent().getName(),
-                            targetResource.getName(),
-                            traceConfig.getTraceName(), 
-                            traceConfig.getNumChannel(), 
-                            traceConfig.getIsAppend(), 
-                            traceConfig.getMode() == TraceConfig.FLIGHT_RECORDER_MODE, 
-                            traceConfig.getMode() == TraceConfig.NORMAL_MODE, 
-                            new ILttControllerService.DoneWriteTraceNetwork() {
-
-                        @Override
-                        public void doneWriteTraceNetwork(IToken token, Exception error, Object str) {
-                            if (error != null) {
-                                // Notify with error
-                                error(error);
-                                return;
-                            }
-
-                            // Notify about success
-                            done(true);
-                        }
-                    });
-                }}.get(TraceControlConstants.DEFAULT_TCF_TASK_TIMEOUT, TimeUnit.SECONDS);
+                    service.writeTraceNetwork(targetResource.getParent().getName(), targetResource.getName(), traceConfig.getTraceName(),
+                            traceConfig.getNumChannel(), traceConfig.getIsAppend(), traceConfig.getMode() == TraceConfig.FLIGHT_RECORDER_MODE,
+                            traceConfig.getMode() == TraceConfig.NORMAL_MODE, new ILttControllerService.DoneWriteTraceNetwork() {
+
+                                @Override
+                                public void doneWriteTraceNetwork(IToken token, Exception error, Object str) {
+                                    if (error != null) {
+                                        // Notify with error
+                                        error(error);
+                                        return;
+                                    }
+
+                                    // Notify about success
+                                    done(true);
+                                }
+                            });
+                }
+            }.get(TraceControlConstants.DEFAULT_TCF_TASK_TIMEOUT, TimeUnit.SECONDS);
             return ok;
         } else {
             // Create future task
@@ -287,62 +301,27 @@ public class CreateNewTrace implements IObjectActionDelegate, IWorkbenchWindowAc
                 public void run() {
 
                     // Setup trace location using Lttng controller service proxy
-                    service.writeTraceLocal(targetResource.getParent().getName(),
-                            targetResource.getName(),
-                            traceConfig.getTraceName(), 
-                            traceConfig.getTracePath(), 
-                            traceConfig.getNumChannel(),
-                            traceConfig.getIsAppend(), 
-                            traceConfig.getMode() == TraceConfig.NORMAL_MODE, 
-                            traceConfig.getMode() == TraceConfig.FLIGHT_RECORDER_MODE, 
+                    service.writeTraceLocal(targetResource.getParent().getName(), targetResource.getName(), traceConfig.getTraceName(),
+                            traceConfig.getTracePath(), traceConfig.getNumChannel(), traceConfig.getIsAppend(),
+                            traceConfig.getMode() == TraceConfig.NORMAL_MODE, traceConfig.getMode() == TraceConfig.FLIGHT_RECORDER_MODE,
                             new ILttControllerService.DoneWriteTraceLocal() {
 
-                        @Override
-                        public void doneWriteTraceLocal(IToken token, Exception error, Object str) {
-                            if (error != null) {
-                                // Notify with error
-                                error(error);
-                                return;
-                            }
-
-                            // Notify about success
-                            done(true);
-                        }
-                    });
-                }}.get(TraceControlConstants.DEFAULT_TCF_TASK_TIMEOUT, TimeUnit.SECONDS);
+                                @Override
+                                public void doneWriteTraceLocal(IToken token, Exception error, Object str) {
+                                    if (error != null) {
+                                        // Notify with error
+                                        error(error);
+                                        return;
+                                    }
+
+                                    // Notify about success
+                                    done(true);
+                                }
+                            });
+                }
+            }.get(TraceControlConstants.DEFAULT_TCF_TASK_TIMEOUT, TimeUnit.SECONDS);
             return ok;
         }
     }
 
-    /*
-     * Enable or disable a channel on the remote system. 
-     */
-    private void setChannelEnable(final ILttControllerService service, final TargetResource targetResource, final TraceConfig traceConfig, final String channelName, final boolean enabled) throws Exception{
-            // Create future task
-           new TCFTask<Boolean>() {
-                @Override
-                public void run() {
-
-                    // Set marker enable using Lttng controller service proxy
-                    service.setChannelEnable(targetResource.getParent().getName(),
-                            targetResource.getName(), 
-                            traceConfig.getTraceName(), 
-                            channelName, 
-                            enabled,  
-                            new ILttControllerService.DoneSetChannelEnable() {
-
-                        @Override
-                        public void doneSetChannelEnable(IToken token, Exception error, Object str) {
-                            if (error != null) {
-                                // Notify with error
-                                error(error);
-                                return;
-                            }
-
-                            // Notify about success
-                            done(Boolean.valueOf(true));
-                        }
-                    });
-                }}.get(TraceControlConstants.DEFAULT_TCF_TASK_TIMEOUT, TimeUnit.SECONDS);
-    }
-}
\ No newline at end of file
+}
This page took 0.028505 seconds and 5 git commands to generate.