Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Core support of 'Auto-Refresh' and 'Refresh' actions

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.core/ChangeLog,v
retrieving revision 1.155
diff -u -r1.155 ChangeLog
--- ChangeLog 28 Mar 2003 22:22:55 -0000 1.155
+++ ChangeLog 31 Mar 2003 22:48:02 -0000
@@ -1,3 +1,14 @@
+2003-03-31 Mikhail Khodjaiants
+ The new abstract class ('CUpdateManager') is added to provide a basic implementation of ICUpdateManager.
+ CSignalManager, CSharedLibraryManager and CRegisterManager extend this class.
+ * ICRegisterManager.java: new
+ * CRegisterManager.java: new
+ * CSharedLibraryManager.java
+ * CSignalManager.java
+ * CUpdateManager.java: new
+ * CDebugTarget.java
+ * CRegisterGroup.java
+
 2003-03-28 Mikhail Khodjaiants
  Use the 'exists' method of the 'IFile' interface instead of using 'toFile().exists()' for 'IPath'.
  * CDirectorySourceLocation.java
Index: src/org/eclipse/cdt/debug/core/ICRegisterManager.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/core/ICRegisterManager.java
diff -N src/org/eclipse/cdt/debug/core/ICRegisterManager.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/cdt/debug/core/ICRegisterManager.java 31 Mar 2003 22:48:02 -0000
@@ -0,0 +1,33 @@
+/*
+ *(c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+
+package org.eclipse.cdt.debug.core;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.debug.core.DebugException;
+import org.eclipse.debug.core.model.IRegisterGroup;
+
+/**
+ * Enter type comment.
+ *
+ * @since Mar 31, 2003
+ */
+public interface ICRegisterManager extends ICUpdateManager, IAdaptable
+{
+ void initialize();

+ IRegisterGroup[] getRegisterGroups() throws DebugException;

+ void addRegisterGroup( IRegisterGroup group );

+ void removeRegisterGroup( IRegisterGroup group );
+
+ void removeAllRegisterGroups();
+
+ void reset();

+ void dispose();
+}
Index: src/org/eclipse/cdt/debug/internal/core/CRegisterManager.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/internal/core/CRegisterManager.java
diff -N src/org/eclipse/cdt/debug/internal/core/CRegisterManager.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/cdt/debug/internal/core/CRegisterManager.java 31 Mar 2003 22:48:03 -0000
@@ -0,0 +1,147 @@
+/*
+ *(c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+
+package org.eclipse.cdt.debug.internal.core;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.cdt.debug.core.CDebugCorePlugin;
+import org.eclipse.cdt.debug.core.ICRegisterManager;
+import org.eclipse.cdt.debug.core.cdi.CDIException;
+import org.eclipse.cdt.debug.core.cdi.ICDIManager;
+import org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterObject;
+import org.eclipse.cdt.debug.internal.core.model.CDebugTarget;
+import org.eclipse.cdt.debug.internal.core.model.CRegisterGroup;
+import org.eclipse.debug.core.DebugException;
+import org.eclipse.debug.core.model.IRegisterGroup;
+
+/**
+ * Enter type comment.
+ *
+ * @since Mar 31, 2003
+ */
+public class CRegisterManager extends CUpdateManager implements ICRegisterManager
+{
+ /**
+  * Collection of register groups added to this target. Values are of type <code>CRegisterGroup</code>.
+  */
+ private List fRegisterGroups;
+
+ /**
+  *
+  */
+ public CRegisterManager( CDebugTarget target )
+ {
+  super( target );
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+  */
+ public Object getAdapter( Class adapter )
+ {
+  if ( ICRegisterManager.class.equals( adapter ) )
+   return this;
+  if ( CRegisterManager.class.equals( adapter ) )
+   return this;
+  return super.getAdapter( adapter );
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.core.ICRegisterManager#dispose()
+  */
+ public void dispose()
+ {
+  removeAllRegisterGroups();
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.core.ICRegisterManager#addRegisterGroup(org.eclipse.debug.core.model.IRegisterGroup)
+  */
+ public void addRegisterGroup( IRegisterGroup group )
+ {
+  // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.core.ICRegisterManager#getRegisterGroups()
+  */
+ public IRegisterGroup[] getRegisterGroups() throws DebugException
+ {
+  return (IRegisterGroup[])fRegisterGroups.toArray( new IRegisterGroup[fRegisterGroups.size()] );
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.core.ICRegisterManager#initialize()
+  */
+ public void initialize()
+ {
+  fRegisterGroups = new ArrayList( 20 );
+  createMainRegisterGroup();
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.core.ICRegisterManager#removeAllRegisterGroups()
+  */
+ public void removeAllRegisterGroups()
+ {
+  Iterator it = fRegisterGroups.iterator();
+  while( it.hasNext() )
+  {
+   ((CRegisterGroup)it.next()).dispose();
+  }
+  fRegisterGroups.clear();
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.core.ICRegisterManager#removeRegisterGroup(org.eclipse.debug.core.model.IRegisterGroup)
+  */
+ public void removeRegisterGroup( IRegisterGroup group )
+ {
+  fRegisterGroups.remove( group );
+ }
+
+ private void createMainRegisterGroup()
+ {
+  ICDIRegisterObject[] regObjects = null;
+  try
+  {
+   regObjects = getDebugTarget().getCDISession().getRegisterManager().getRegisterObjects();
+  }
+  catch( CDIException e )
+  {
+   CDebugCorePlugin.log( e );
+  }
+  if ( regObjects != null )
+  {
+   fRegisterGroups.add( new CRegisterGroup( getDebugTarget(), "Main", regObjects ) );
+  }
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.core.ICRegisterManager#reset()
+  */
+ public void reset()
+ {
+  Iterator it = fRegisterGroups.iterator();
+  while( it.hasNext() )
+  {
+   ((CRegisterGroup)it.next()).resetChangeFlags();
+  }
+ }
+
+ protected ICDIManager getCDIManager()
+ {
+  if ( getDebugTarget() != null )
+  {
+   return ((CDebugTarget)getDebugTarget()).getCDISession().getRegisterManager();
+  }
+  return null;
+ }
+}
Index: src/org/eclipse/cdt/debug/internal/core/CSharedLibraryManager.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CSharedLibraryManager.java,v
retrieving revision 1.6
diff -u -r1.6 CSharedLibraryManager.java
--- src/org/eclipse/cdt/debug/internal/core/CSharedLibraryManager.java 13 Feb 2003 00:15:50 -0000 1.6
+++ src/org/eclipse/cdt/debug/internal/core/CSharedLibraryManager.java 31 Mar 2003 22:48:03 -0000
@@ -9,24 +9,22 @@
 import java.util.Iterator;
 
 import org.eclipse.cdt.debug.core.ICSharedLibraryManager;
-import org.eclipse.cdt.debug.core.ICUpdateManager;
 import org.eclipse.cdt.debug.core.cdi.CDIException;
+import org.eclipse.cdt.debug.core.cdi.ICDIManager;
 import org.eclipse.cdt.debug.core.cdi.ICDISharedLibraryManager;
 import org.eclipse.cdt.debug.core.cdi.model.ICDISharedLibrary;
-import org.eclipse.cdt.debug.core.model.ICDebugTarget;
 import org.eclipse.cdt.debug.core.model.ICSharedLibrary;
 import org.eclipse.cdt.debug.internal.core.model.CDebugTarget;
 import org.eclipse.cdt.debug.internal.core.model.CSharedLibrary;
 import org.eclipse.debug.core.DebugEvent;
 import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.model.IDebugTarget;
 
 /**
  * Enter type comment.
  *
  * @since: Jan 16, 2003
  */
-public class CSharedLibraryManager implements ICSharedLibraryManager
+public class CSharedLibraryManager extends CUpdateManager implements ICSharedLibraryManager
 {
  private CDebugTarget fDebugTarget = null;
  private ArrayList fSharedLibraries;
@@ -36,7 +34,7 @@
   */
  public CSharedLibraryManager( CDebugTarget target )
  {
-  setDebugTarget( target );
+  super( target );
   fSharedLibraries = new ArrayList( 5 );
  }
 
@@ -103,10 +101,6 @@
   */
  public Object getAdapter( Class adapter )
  {
-  if ( adapter.equals( ICUpdateManager.class ) )
-  {
-   return this;
-  }
   if ( adapter.equals( ICSharedLibraryManager.class ) )
   {
    return this;
@@ -115,25 +109,7 @@
   {
    return this;
   }
-  if ( adapter.equals( IDebugTarget.class ) )
-  {
-   return fDebugTarget;
-  }
-  if ( adapter.equals( ICDebugTarget.class ) )
-  {
-   return fDebugTarget;
-  }
-  return null;
- }
-
- public IDebugTarget getDebugTarget()
- {
-  return fDebugTarget;
- }

- protected void setDebugTarget( CDebugTarget target )
- {
-  fDebugTarget = target;
+  return super.getAdapter( adapter );
  }
  
  protected CSharedLibrary find( ICDISharedLibrary cdiLibrary )
@@ -147,49 +123,8 @@
   }
   return null;
  } 
-
- /* (non-Javadoc)
-  * @see org.eclipse.cdt.debug.core.ICUpdateManager#getAutoModeEnabled()
-  */
- public boolean getAutoModeEnabled()
- {
-  if ( getCDIManager() != null )
-  {
-   return getCDIManager().isAutoUpdate();
-  }
-  return false;
- }
-
- /* (non-Javadoc)
-  * @see org.eclipse.cdt.debug.core.ICUpdateManager#setAutoModeEnabled(boolean)
-  */
- public void setAutoModeEnabled( boolean enable )
- {
-  if ( getCDIManager() != null )
-  {
-   getCDIManager().setAutoUpdate( enable );
-  }
- }
-
- /* (non-Javadoc)
-  * @see org.eclipse.cdt.debug.core.ICUpdateManager#update()
-  */
- public void update() throws DebugException
- {
-  if ( getCDIManager() != null )
-  {
-   try
-   {
-    getCDIManager().update();
-   }
-   catch( CDIException e )
-   {
-    ((CDebugTarget)getDebugTarget()).targetRequestFailed( e.toString(), null );
-   }
-  }
- }
  
- private ICDISharedLibraryManager getCDIManager()
+ protected ICDIManager getCDIManager()
  {
   if ( getDebugTarget() != null )
   {
@@ -199,23 +134,11 @@
  }
 
  /* (non-Javadoc)
-  * @see org.eclipse.cdt.debug.core.ICUpdateManager#canUpdate()
-  */
- public boolean canUpdate()
- {
-  if ( getDebugTarget() != null )
-  {
-   return getDebugTarget().isSuspended();
-  }
-  return false;
- }
-
- /* (non-Javadoc)
   * @see org.eclipse.cdt.debug.core.ICSharedLibraryManager#loadSymbols(org.eclipse.cdt.debug.core.model.ICSharedLibrary)
   */
  public void loadSymbols( ICSharedLibrary[] libraries ) throws DebugException
  {
-  ICDISharedLibraryManager slm = getCDIManager();
+  ICDISharedLibraryManager slm = (ICDISharedLibraryManager)getCDIManager();
   if ( slm != null )
   {
    ArrayList cdiLibs = new ArrayList( libraries.length );
@@ -239,7 +162,7 @@
   */
  public void loadSymbolsForAll() throws DebugException
  {
-  ICDISharedLibraryManager slm = getCDIManager();
+  ICDISharedLibraryManager slm = (ICDISharedLibraryManager)getCDIManager();
   if ( slm != null )
   {
    try
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.2
diff -u -r1.2 CSignalManager.java
--- src/org/eclipse/cdt/debug/internal/core/CSignalManager.java 3 Feb 2003 23:08:43 -0000 1.2
+++ src/org/eclipse/cdt/debug/internal/core/CSignalManager.java 31 Mar 2003 22:48:03 -0000
@@ -9,22 +9,21 @@
 
 import org.eclipse.cdt.debug.core.ICSignalManager;
 import org.eclipse.cdt.debug.core.cdi.CDIException;
+import org.eclipse.cdt.debug.core.cdi.ICDIManager;
 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;
 import org.eclipse.cdt.debug.internal.core.model.CSignal;
 import org.eclipse.debug.core.DebugEvent;
 import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.model.IDebugTarget;
 
 /**
  * Enter type comment.
  *
  * @since: Jan 31, 2003
  */
-public class CSignalManager implements ICSignalManager
+public class CSignalManager extends CUpdateManager implements ICSignalManager
 {
- private CDebugTarget fDebugTarget = null;
  private ICSignal[] fSignals = null;
  private boolean fIsDisposed = false;
 
@@ -33,7 +32,7 @@
   */
  public CSignalManager( CDebugTarget target )
  {
-  setDebugTarget( target );
+  super( target );
  }
 
  /* (non-Javadoc)
@@ -87,21 +86,7 @@
   {
    return this;
   }
-  if ( adapter.equals( IDebugTarget.class ) )
-  {
-   return fDebugTarget;
-  }
-  return null;
- }
-
- public IDebugTarget getDebugTarget()
- {
-  return fDebugTarget;
- }

- protected void setDebugTarget( CDebugTarget target )
- {
-  fDebugTarget = target;
+  return super.getAdapter( adapter );
  }
  
  public void signalChanged( ICDISignal cdiSignal )
@@ -131,5 +116,14 @@
  protected boolean isDisposed()
  {
   return fIsDisposed;
+ }
+
+ protected ICDIManager getCDIManager()
+ {
+  if ( getDebugTarget() != null )
+  {
+   return ((CDebugTarget)getDebugTarget()).getCDISession().getSignalManager();
+  }
+  return null;
  }
 }
Index: src/org/eclipse/cdt/debug/internal/core/CUpdateManager.java
===================================================================
RCS file: src/org/eclipse/cdt/debug/internal/core/CUpdateManager.java
diff -N src/org/eclipse/cdt/debug/internal/core/CUpdateManager.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/cdt/debug/internal/core/CUpdateManager.java 31 Mar 2003 22:48:03 -0000
@@ -0,0 +1,108 @@
+/*
+ *(c) Copyright QNX Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+
+package org.eclipse.cdt.debug.internal.core;
+
+import org.eclipse.cdt.debug.core.ICUpdateManager;
+import org.eclipse.cdt.debug.core.cdi.CDIException;
+import org.eclipse.cdt.debug.core.cdi.ICDIManager;
+import org.eclipse.cdt.debug.core.model.ICDebugTarget;
+import org.eclipse.cdt.debug.internal.core.model.CDebugTarget;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.debug.core.DebugException;
+import org.eclipse.debug.core.model.IDebugTarget;
+
+/**
+ * Enter type comment.
+ *
+ * @since Mar 31, 2003
+ */
+public abstract class CUpdateManager implements ICUpdateManager, IAdaptable
+{
+ private CDebugTarget fDebugTarget = null;
+
+ /**
+  *
+  */
+ public CUpdateManager( CDebugTarget target )
+ {
+  fDebugTarget = target;
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.core.ICUpdateManager#setAutoModeEnabled(boolean)
+  */
+ public void setAutoModeEnabled( boolean enable )
+ {
+  if ( getCDIManager() != null )
+  {
+   getCDIManager().setAutoUpdate( enable );
+  }
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.core.ICUpdateManager#getAutoModeEnabled()
+  */
+ public boolean getAutoModeEnabled()
+ {
+  if ( getCDIManager() != null )
+  {
+   return getCDIManager().isAutoUpdate();
+  }
+  return false;
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.core.ICUpdateManager#update()
+  */
+ public void update() throws DebugException
+ {
+  if ( getCDIManager() != null )
+  {
+   try
+   {
+    getCDIManager().update();
+   }
+   catch( CDIException e )
+   {
+    ((CDebugTarget)getDebugTarget()).targetRequestFailed( e.toString(), null );
+   }
+  }
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.core.ICUpdateManager#canUpdate()
+  */
+ public boolean canUpdate()
+ {
+  if ( getDebugTarget() != null )
+  {
+   return getDebugTarget().isSuspended();
+  }
+  return false;
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+  */
+ public Object getAdapter( Class adapter )
+ {
+  if ( ICUpdateManager.class.equals( adapter ) )
+   return this;
+  if ( IDebugTarget.class.equals( adapter ) )
+   return getDebugTarget();
+  if ( ICDebugTarget.class.equals( adapter ) )
+   return getDebugTarget();
+  return null;
+ }
+
+ public CDebugTarget getDebugTarget()
+ {
+  return fDebugTarget;
+ }
+
+ abstract protected ICDIManager getCDIManager();
+}
Index: src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java,v
retrieving revision 1.90
diff -u -r1.90 CDebugTarget.java
--- src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java 28 Mar 2003 19:34:24 -0000 1.90
+++ src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java 31 Mar 2003 22:48:05 -0000
@@ -22,6 +22,7 @@
 import org.eclipse.cdt.debug.core.CDebugModel;
 import org.eclipse.cdt.debug.core.ICBreakpointManager;
 import org.eclipse.cdt.debug.core.ICMemoryManager;
+import org.eclipse.cdt.debug.core.ICRegisterManager;
 import org.eclipse.cdt.debug.core.ICSharedLibraryManager;
 import org.eclipse.cdt.debug.core.ICSignalManager;
 import org.eclipse.cdt.debug.core.cdi.CDIException;
@@ -50,7 +51,6 @@
 import org.eclipse.cdt.debug.core.cdi.model.ICDIBreakpoint;
 import org.eclipse.cdt.debug.core.cdi.model.ICDILocationBreakpoint;
 import org.eclipse.cdt.debug.core.cdi.model.ICDIObject;
-import org.eclipse.cdt.debug.core.cdi.model.ICDIRegisterObject;
 import org.eclipse.cdt.debug.core.cdi.model.ICDISharedLibrary;
 import org.eclipse.cdt.debug.core.cdi.model.ICDISignal;
 import org.eclipse.cdt.debug.core.cdi.model.ICDITarget;
@@ -75,6 +75,7 @@
 import org.eclipse.cdt.debug.core.sourcelookup.ISourceMode;
 import org.eclipse.cdt.debug.internal.core.CDebugUtils;
 import org.eclipse.cdt.debug.internal.core.CMemoryManager;
+import org.eclipse.cdt.debug.internal.core.CRegisterManager;
 import org.eclipse.cdt.debug.internal.core.CSharedLibraryManager;
 import org.eclipse.cdt.debug.internal.core.CSignalManager;
 import org.eclipse.cdt.debug.internal.core.ICDebugInternalConstants;
@@ -214,11 +215,6 @@
  private HashMap fBreakpoints;
 
  /**
-  * Collection of register groups added to this target. Values are of type <code>CRegisterGroup</code>.
-  */
- private List fRegisterGroups;
-
- /**
   * A memory manager for this target.
   */
  private CMemoryManager fMemoryManager;
@@ -239,6 +235,11 @@
  private CSignalManager fSignalManager;
 
  /**
+  * A register manager for this target.
+  */
+ private CRegisterManager fRegisterManager;
+
+ /**
   * Whether the debugger process is default.
   */
  private boolean fIsDebuggerProcessDefault = false;
@@ -284,6 +285,7 @@
   setDisassemblyManager( new DisassemblyManager( this ) );
   setSharedLibraryManager( new CSharedLibraryManager( this ) );
   setSignalManager( new CSignalManager( this ) );
+  setRegisterManager( new CRegisterManager( this ) );
   initialize();
   DebugPlugin.getDefault().getLaunchManager().addLaunchListener( this );
   DebugPlugin.getDefault().getExpressionManager().addExpressionListener( this );
@@ -387,8 +389,7 @@
 
  protected void initializeRegisters()
  {
-  fRegisterGroups = new ArrayList( 20 );
-  createMainRegisterGroup();
+  getRegisterManager().initialize();
  }
 
  protected void initializeMemoryManager()
@@ -931,6 +932,8 @@
    return getSharedLibraryManager();
   if ( adapter.equals( ICSignalManager.class ) )
    return getSignalManager();
+  if ( adapter.equals( ICRegisterManager.class ) )
+   return getRegisterManager();
   return super.getAdapter( adapter );
  }
  
@@ -1175,7 +1178,6 @@
  protected void cleanup()
  {
   removeAllThreads();
-  removeAllRegisterGroups();
   getCDISession().getEventManager().removeEventListener( this );
   DebugPlugin.getDefault().getBreakpointManager().removeBreakpointListener( this );
   DebugPlugin.getDefault().getExpressionManager().removeExpressionListener( this );
@@ -1183,6 +1185,7 @@
   disposeMemoryManager();
   disposeSharedLibraryManager();
   disposeSignalManager();
+  disposeRegisterManager();
   removeAllExpressions();
   try
   {
@@ -2017,42 +2020,6 @@
   return isAvailable() && isSuspended();
  }
 
- protected IRegisterGroup[] getRegisterGroups() throws DebugException
- {
-  return (IRegisterGroup[])fRegisterGroups.toArray( new IRegisterGroup[fRegisterGroups.size()] );
- }
-
- protected IRegisterGroup[] getRegisterGroups( CStackFrame stackFrame ) throws DebugException
- {
-  return (IRegisterGroup[])fRegisterGroups.toArray( new IRegisterGroup[fRegisterGroups.size()] );
- }

- protected void createMainRegisterGroup()
- {
-  ICDIRegisterObject[] regObjects = null;
-  try
-  {
-   regObjects = getCDISession().getRegisterManager().getRegisterObjects();
-  }
-  catch( CDIException e )
-  {
-   CDebugCorePlugin.log( e );
-  }
-  if ( regObjects != null )
-  {
-   fRegisterGroups.add( new CRegisterGroup( this, "Main", regObjects ) );
-  }
- }
-
- protected void removeAllRegisterGroups()
- {
-  Iterator it = fRegisterGroups.iterator();
-  while( it.hasNext() )
-  {
-   ((CRegisterGroup)it.next()).dispose();
-  }
- }
-
  /* (non-Javadoc)
   * @see org.eclipse.debug.core.IExpressionListener#expressionAdded(IExpression)
   */
@@ -2194,11 +2161,7 @@
  
  protected void resetRegisters()
  {
-  Iterator it = fRegisterGroups.iterator();
-  while( it.hasNext() )
-  {
-   ((CRegisterGroup)it.next()).resetChangeFlags();
-  }
+  getRegisterManager().reset();
  }
 
  /**
@@ -2395,6 +2358,11 @@
   fSignalManager.dispose();
  }
 
+ protected void disposeRegisterManager()
+ {
+  fRegisterManager.dispose();
+ }
+
  /* (non-Javadoc)
   * @see org.eclipse.cdt.debug.core.ICBreakpointManager#getBreakpointAddress(IBreakpoint)
   */
@@ -2553,5 +2521,20 @@
   {
    targetRequestFailed( e.toString(), e );
   }
+ }
+
+ public CRegisterManager getRegisterManager()
+ {
+  return fRegisterManager;
+ }
+
+ protected void setRegisterManager( CRegisterManager registerManager )
+ {
+  fRegisterManager = registerManager;
+ }
+
+ public IRegisterGroup[] getRegisterGroups() throws DebugException
+ {
+  return getRegisterManager().getRegisterGroups();
  }
 }
Index: src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java,v
retrieving revision 1.10
diff -u -r1.10 CRegisterGroup.java
--- src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java 7 Mar 2003 19:39:47 -0000 1.10
+++ src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java 31 Mar 2003 22:48:05 -0000
@@ -80,7 +80,7 @@
   return fRegisters;
  }
  
- protected void dispose()
+ public void dispose()
  {
   Iterator it = fRegisters.iterator();
   while( it.hasNext() )
@@ -107,7 +107,7 @@
   return results;
  }
  
- protected void resetChangeFlags()
+ public void resetChangeFlags()
  {
   if ( fRegisters == null )
    return;

Back to the top