Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Implementing the 'Signals' view (core)

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.core/ChangeLog,v
retrieving revision 1.118
diff -u -r1.118 ChangeLog
--- ChangeLog 3 Feb 2003 21:34:49 -0000 1.118
+++ ChangeLog 3 Feb 2003 23:06:30 -0000
@@ -1,3 +1,8 @@
+2003-02-03 Mikhail Khodjaiants
+ Implementing the 'Signals' view.
+ * CSignalManager.java: new
+ * CSignal.java: new
+
 2003-02-03  Alain Magloire
 
  * src/org/eclipse/cdt/debug/core/cdi/event/ICDIExitEvent.java:
Index: src/org/eclipse/cdt/debug/internal/core/CSignalManager.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CSignalManager.java,v
retrieving revision 1.1
diff -u -r1.1 CSignalManager.java
--- src/org/eclipse/cdt/debug/internal/core/CSignalManager.java 31 Jan 2003 22:38:13 -0000 1.1
+++ src/org/eclipse/cdt/debug/internal/core/CSignalManager.java 3 Feb 2003 23:06:30 -0000
@@ -5,7 +5,10 @@
  */
 package org.eclipse.cdt.debug.internal.core;
 
+import java.util.ArrayList;
+
 import org.eclipse.cdt.debug.core.ICSignalManager;
+import org.eclipse.cdt.debug.core.cdi.CDIException;
 import org.eclipse.cdt.debug.core.cdi.model.ICDISignal;
 import org.eclipse.cdt.debug.core.model.ICSignal;
 import org.eclipse.cdt.debug.internal.core.model.CDebugTarget;
@@ -23,6 +26,7 @@
 {
  private CDebugTarget fDebugTarget = null;
  private ICSignal[] fSignals = null;
+ private boolean fIsDisposed = false;
 
  /**
   * Constructor for CSignalManager.
@@ -37,9 +41,21 @@
   */
  public ICSignal[] getSignals() throws DebugException
  {
-  if ( fSignals == null )
+  if ( !isDisposed() && fSignals == null )
   {
-   // load signals from target
+   try
+   {
+    ICDISignal[] cdiSignals = ((CDebugTarget)getDebugTarget()).getCDISession().getSignalManager().getSignals();
+    ArrayList list = new ArrayList( cdiSignals.length );
+    for ( int i = 0; i < cdiSignals.length; ++i )
+    {
+     list.add( new CSignal( (CDebugTarget)getDebugTarget(), cdiSignals[i] ) );
+    }
+    fSignals = (ICSignal[])list.toArray( new ICSignal[list.size()] );
+   }
+   catch( CDIException e )
+   {
+   }
   }
   return ( fSignals != null ) ? fSignals : new ICSignal[0];
  }
@@ -55,6 +71,7 @@
    fSignals[i].dispose();
   }
   fSignals = null;
+  fIsDisposed = true;
  }
 
  /* (non-Javadoc)
@@ -109,5 +126,10 @@
   {
   }
   return null;
+ }

+ protected boolean isDisposed()
+ {
+  return fIsDisposed;
  }
 }
Index: src/org/eclipse/cdt/debug/internal/core/model/CSignal.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CSignal.java,v
retrieving revision 1.1
diff -u -r1.1 CSignal.java
--- src/org/eclipse/cdt/debug/internal/core/model/CSignal.java 31 Jan 2003 22:38:13 -0000 1.1
+++ src/org/eclipse/cdt/debug/internal/core/model/CSignal.java 3 Feb 2003 23:06:30 -0000
@@ -5,6 +5,7 @@
  */
 package org.eclipse.cdt.debug.internal.core.model;
 
+import org.eclipse.cdt.debug.core.cdi.CDIException;
 import org.eclipse.cdt.debug.core.cdi.event.ICDIEvent;
 import org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener;
 import org.eclipse.cdt.debug.core.cdi.model.ICDISignal;
@@ -36,7 +37,7 @@
   */
  public String getDescription()
  {
-  return "";
+  return getCDISignal().getDescription();
  }
 
  /* (non-Javadoc)
@@ -44,7 +45,7 @@
   */
  public String getName()
  {
-  return "";
+  return getCDISignal().getName();
  }
 
  /* (non-Javadoc)
@@ -52,7 +53,7 @@
   */
  public boolean isPassEnabled()
  {
-  return false;
+  return !getCDISignal().isIgnore();
  }
 
  /* (non-Javadoc)
@@ -60,7 +61,7 @@
   */
  public boolean isStopEnabled()
  {
-  return false;
+  return getCDISignal().isStopSet();
  }
 
  /* (non-Javadoc)
@@ -97,5 +98,18 @@
   */
  public void signal() throws DebugException
  {
+  try
+  {
+   getCDISignal().signal();
+  }
+  catch( CDIException e )
+  {
+   targetRequestFailed( e.getMessage(), null );
+  }
+ }

+ protected ICDISignal getCDISignal()
+ {
+  return fCDISignal;
  }
 }

Back to the top