From 4edeecf7f8582dc10a4dd83e8da09fba8a024c05 Mon Sep 17 00:00:00 2001 From: Marc Khouzam Date: Tue, 30 Sep 2008 15:57:06 +0000 Subject: [PATCH] [249141] Simplify of API. --- .../org/eclipse/dd/mi/service/MIMemory.java | 63 +++++++------------ 1 file changed, 21 insertions(+), 42 deletions(-) diff --git a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIMemory.java b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIMemory.java index bef7259c976..1fa03cc9633 100644 --- a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIMemory.java +++ b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIMemory.java @@ -31,9 +31,12 @@ import org.eclipse.dd.dsf.datamodel.IDMContext; import org.eclipse.dd.dsf.debug.service.ICachingService; import org.eclipse.dd.dsf.debug.service.IExpressions; import org.eclipse.dd.dsf.debug.service.IMemory; -import org.eclipse.dd.dsf.debug.service.IRunControl; import org.eclipse.dd.dsf.debug.service.IExpressions.IExpressionDMAddress; import org.eclipse.dd.dsf.debug.service.IExpressions.IExpressionDMContext; +import org.eclipse.dd.dsf.debug.service.IRunControl.IContainerResumedDMEvent; +import org.eclipse.dd.dsf.debug.service.IRunControl.IContainerSuspendedDMEvent; +import org.eclipse.dd.dsf.debug.service.IRunControl.IResumedDMEvent; +import org.eclipse.dd.dsf.debug.service.IRunControl.ISuspendedDMEvent; import org.eclipse.dd.dsf.debug.service.IRunControl.StateChangeReason; import org.eclipse.dd.dsf.debug.service.command.CommandCache; import org.eclipse.dd.dsf.debug.service.command.ICommandControlService; @@ -279,11 +282,13 @@ public class MIMemory extends AbstractDsfService implements IMemory, ICachingSer * @noreference This method is not intended to be referenced by clients. */ @DsfServiceEventHandler - public void eventDispatched(IRunControl.IContainerResumedDMEvent e) { - fMemoryCache.setTargetAvailable(e.getDMContext(), false); - if (e.getReason() != StateChangeReason.STEP) { - fMemoryCache.reset(); - } + public void eventDispatched(IResumedDMEvent e) { + if (e instanceof IContainerResumedDMEvent) { + fMemoryCache.setTargetAvailable(e.getDMContext(), false); + if (e.getReason() != StateChangeReason.STEP) { + fMemoryCache.reset(); + } + } } /** @@ -291,9 +296,11 @@ public class MIMemory extends AbstractDsfService implements IMemory, ICachingSer * @noreference This method is not intended to be referenced by clients. */ @DsfServiceEventHandler - public void eventDispatched(IRunControl.IContainerSuspendedDMEvent e) { - fMemoryCache.setTargetAvailable(e.getDMContext(), true); - fMemoryCache.reset(); + public void eventDispatched(ISuspendedDMEvent e) { + if (e instanceof IContainerSuspendedDMEvent) { + fMemoryCache.setTargetAvailable(e.getDMContext(), true); + fMemoryCache.reset(); + } } /** @@ -331,24 +338,6 @@ public class MIMemory extends AbstractDsfService implements IMemory, ICachingSer } } - /** - * This method is left for API compatibility only. - * @nooverride This method is not intended to be re-implemented or extended by clients. - * @noreference This method is not intended to be referenced by clients. - */ - @DsfServiceEventHandler - public void eventDispatched(IRunControl.IResumedDMEvent e) { - } - - /** - * This method is left for API compatibility only. - * @nooverride This method is not intended to be re-implemented or extended by clients. - * @noreference This method is not intended to be referenced by clients. - */ - @DsfServiceEventHandler - public void eventDispatched(IRunControl.ISuspendedDMEvent e) { - } - /////////////////////////////////////////////////////////////////////////// // SortedLinkedlist /////////////////////////////////////////////////////////////////////////// @@ -774,11 +763,11 @@ public class MIMemory extends AbstractDsfService implements IMemory, ICachingSer // that the subsequent memory read will be correct) fCommandCache.reset(); - // Asynchronous update of the memory cache - final DataRequestMonitor drm = - new DataRequestMonitor(getExecutor(), rm) { - @Override - protected void handleSuccess() { + // Re-read the modified memory block to asynchronously update of the memory cache + readMemoryBlock(memoryDMC, address, offset, word_size, count, + new DataRequestMonitor(getExecutor(), rm) { + @Override + protected void handleSuccess() { updateMemoryCache(address.add(offset), count, getData()); // Send the MemoryChangedEvent IAddress[] addresses = new IAddress[count]; @@ -788,16 +777,6 @@ public class MIMemory extends AbstractDsfService implements IMemory, ICachingSer getSession().dispatchEvent(new MemoryChangedEvent(memoryDMC, addresses), getProperties()); // Finally... rm.done(); - } - }; - - // Re-read the modified memory block - readMemoryBlock(memoryDMC, address, offset, word_size, count, - new DataRequestMonitor(getExecutor(), drm) { - @Override - protected void handleSuccess() { - drm.setData(getData()); - drm.done(); } }); }