mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-10 09:45:39 +02:00
159683 update modes
This commit is contained in:
parent
ac373103f4
commit
9a1a5ad41c
9 changed files with 99 additions and 31 deletions
|
@ -21,12 +21,13 @@ Require-Bundle: org.eclipse.ui,
|
||||||
Eclipse-LazyStart: true
|
Eclipse-LazyStart: true
|
||||||
Export-Package:
|
Export-Package:
|
||||||
org.eclipse.dd.dsf.debug.ui,
|
org.eclipse.dd.dsf.debug.ui,
|
||||||
|
org.eclipse.dd.dsf.debug.ui.actions,
|
||||||
|
org.eclipse.dd.dsf.debug.ui.sourcelookup,
|
||||||
org.eclipse.dd.dsf.debug.ui.viewmodel,
|
org.eclipse.dd.dsf.debug.ui.viewmodel,
|
||||||
|
org.eclipse.dd.dsf.debug.ui.viewmodel.dm,
|
||||||
org.eclipse.dd.dsf.debug.ui.viewmodel.expression,
|
org.eclipse.dd.dsf.debug.ui.viewmodel.expression,
|
||||||
org.eclipse.dd.dsf.debug.ui.viewmodel.formatsupport,
|
org.eclipse.dd.dsf.debug.ui.viewmodel.formatsupport,
|
||||||
org.eclipse.dd.dsf.debug.ui.viewmodel.launch,
|
org.eclipse.dd.dsf.debug.ui.viewmodel.launch,
|
||||||
org.eclipse.dd.dsf.debug.ui.viewmodel.register,
|
org.eclipse.dd.dsf.debug.ui.viewmodel.register,
|
||||||
org.eclipse.dd.dsf.debug.ui.viewmodel.variable,
|
org.eclipse.dd.dsf.debug.ui.viewmodel.variable
|
||||||
org.eclipse.dd.dsf.debug.ui.sourcelookup,
|
|
||||||
org.eclipse.dd.dsf.debug.ui.actions
|
|
||||||
Bundle-RequiredExecutionEnvironment: J2SE-1.5
|
Bundle-RequiredExecutionEnvironment: J2SE-1.5
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2007 Wind River Systems and others.
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Ted R Williams (Wind River Systems, Inc.) - initial implementation
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
package org.eclipse.dd.dsf.debug.ui.viewmodel.dm;
|
||||||
|
|
||||||
|
import org.eclipse.dd.dsf.debug.ui.viewmodel.update.VMCacheRefreshAlways;
|
||||||
|
import org.eclipse.dd.dsf.service.DsfSession;
|
||||||
|
import org.eclipse.dd.dsf.ui.viewmodel.AbstractVMAdapter;
|
||||||
|
import org.eclipse.dd.dsf.ui.viewmodel.dm.AbstractDMVMProviderWithCache;
|
||||||
|
import org.eclipse.dd.dsf.ui.viewmodel.update.VMCacheManager;
|
||||||
|
import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The purpose of this class is to satisfy package structure requirements while enabling VM update modes.
|
||||||
|
* The non-debug centric VMCacheManager and VMCache live under org.eclipse.dd.dsf.*. The debug data view
|
||||||
|
* caches (VMCacheRefreshAlways/Manual/OnBreak) live under org.eclipse.dd.dsf.debug.* because of their
|
||||||
|
* awareness of debug specific events. There is a need to instantiate a default (always) cache on view
|
||||||
|
* startup. AbstractDMVMProviderWithCache would be a good place to accomplish this task, but like the
|
||||||
|
* VMCacheManager, this class cannot access the *dsf.debug* VMCacheRefreshAlways. AbstractDebugDMVMProviderWithCache
|
||||||
|
* is meant to solve this problem.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class AbstractDebugDMVMProviderWithCache extends
|
||||||
|
AbstractDMVMProviderWithCache
|
||||||
|
{
|
||||||
|
@SuppressWarnings("restriction")
|
||||||
|
public AbstractDebugDMVMProviderWithCache(AbstractVMAdapter adapter, IPresentationContext presentationContext, DsfSession session) {
|
||||||
|
super(adapter, presentationContext, session);
|
||||||
|
|
||||||
|
VMCacheManager.getVMCacheManager().registerCache(presentationContext, new VMCacheRefreshAlways());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -11,6 +11,7 @@
|
||||||
package org.eclipse.dd.dsf.debug.ui.viewmodel.expression;
|
package org.eclipse.dd.dsf.debug.ui.viewmodel.expression;
|
||||||
|
|
||||||
import org.eclipse.dd.dsf.debug.service.IFormattedValues;
|
import org.eclipse.dd.dsf.debug.service.IFormattedValues;
|
||||||
|
import org.eclipse.dd.dsf.debug.ui.viewmodel.dm.AbstractDebugDMVMProviderWithCache;
|
||||||
import org.eclipse.dd.dsf.debug.ui.viewmodel.formatsupport.IFormattedValuePreferenceStore;
|
import org.eclipse.dd.dsf.debug.ui.viewmodel.formatsupport.IFormattedValuePreferenceStore;
|
||||||
import org.eclipse.dd.dsf.debug.ui.viewmodel.register.RegisterGroupLayoutNode;
|
import org.eclipse.dd.dsf.debug.ui.viewmodel.register.RegisterGroupLayoutNode;
|
||||||
import org.eclipse.dd.dsf.debug.ui.viewmodel.register.RegisterLayoutNode;
|
import org.eclipse.dd.dsf.debug.ui.viewmodel.register.RegisterLayoutNode;
|
||||||
|
@ -23,7 +24,6 @@ import org.eclipse.dd.dsf.ui.viewmodel.AbstractVMAdapter;
|
||||||
import org.eclipse.dd.dsf.ui.viewmodel.IVMContext;
|
import org.eclipse.dd.dsf.ui.viewmodel.IVMContext;
|
||||||
import org.eclipse.dd.dsf.ui.viewmodel.IVMLayoutNode;
|
import org.eclipse.dd.dsf.ui.viewmodel.IVMLayoutNode;
|
||||||
import org.eclipse.dd.dsf.ui.viewmodel.IVMRootLayoutNode;
|
import org.eclipse.dd.dsf.ui.viewmodel.IVMRootLayoutNode;
|
||||||
import org.eclipse.dd.dsf.ui.viewmodel.dm.AbstractDMVMProviderWithCache;
|
|
||||||
import org.eclipse.dd.dsf.ui.viewmodel.dm.DMVMRootLayoutNode;
|
import org.eclipse.dd.dsf.ui.viewmodel.dm.DMVMRootLayoutNode;
|
||||||
import org.eclipse.debug.core.DebugPlugin;
|
import org.eclipse.debug.core.DebugPlugin;
|
||||||
import org.eclipse.debug.core.IExpressionsListener;
|
import org.eclipse.debug.core.IExpressionsListener;
|
||||||
|
@ -35,7 +35,7 @@ import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationCont
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("restriction")
|
@SuppressWarnings("restriction")
|
||||||
public class ExpressionVMProvider extends AbstractDMVMProviderWithCache
|
public class ExpressionVMProvider extends AbstractDebugDMVMProviderWithCache
|
||||||
implements IExpressionsListener, IFormattedValuePreferenceStore
|
implements IExpressionsListener, IFormattedValuePreferenceStore
|
||||||
{
|
{
|
||||||
private String fDefaultFormatId = IFormattedValues.HEX_FORMAT;
|
private String fDefaultFormatId = IFormattedValues.HEX_FORMAT;
|
||||||
|
|
|
@ -11,12 +11,12 @@
|
||||||
package org.eclipse.dd.dsf.debug.ui.viewmodel.register;
|
package org.eclipse.dd.dsf.debug.ui.viewmodel.register;
|
||||||
|
|
||||||
import org.eclipse.dd.dsf.debug.service.IFormattedValues;
|
import org.eclipse.dd.dsf.debug.service.IFormattedValues;
|
||||||
|
import org.eclipse.dd.dsf.debug.ui.viewmodel.dm.AbstractDebugDMVMProviderWithCache;
|
||||||
import org.eclipse.dd.dsf.debug.ui.viewmodel.formatsupport.IFormattedValuePreferenceStore;
|
import org.eclipse.dd.dsf.debug.ui.viewmodel.formatsupport.IFormattedValuePreferenceStore;
|
||||||
import org.eclipse.dd.dsf.service.DsfSession;
|
import org.eclipse.dd.dsf.service.DsfSession;
|
||||||
import org.eclipse.dd.dsf.ui.viewmodel.AbstractVMAdapter;
|
import org.eclipse.dd.dsf.ui.viewmodel.AbstractVMAdapter;
|
||||||
import org.eclipse.dd.dsf.ui.viewmodel.IVMLayoutNode;
|
import org.eclipse.dd.dsf.ui.viewmodel.IVMLayoutNode;
|
||||||
import org.eclipse.dd.dsf.ui.viewmodel.IVMRootLayoutNode;
|
import org.eclipse.dd.dsf.ui.viewmodel.IVMRootLayoutNode;
|
||||||
import org.eclipse.dd.dsf.ui.viewmodel.dm.AbstractDMVMProviderWithCache;
|
|
||||||
import org.eclipse.dd.dsf.ui.viewmodel.dm.DMVMRootLayoutNode;
|
import org.eclipse.dd.dsf.ui.viewmodel.dm.DMVMRootLayoutNode;
|
||||||
import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation;
|
import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation;
|
||||||
import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
|
import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
|
||||||
|
@ -25,7 +25,7 @@ import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationCont
|
||||||
* Provides the VIEW MODEL for the DEBUG MODEL REGISTER view.
|
* Provides the VIEW MODEL for the DEBUG MODEL REGISTER view.
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("restriction")
|
@SuppressWarnings("restriction")
|
||||||
public class RegisterVMProvider extends AbstractDMVMProviderWithCache implements IFormattedValuePreferenceStore
|
public class RegisterVMProvider extends AbstractDebugDMVMProviderWithCache implements IFormattedValuePreferenceStore
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Current default for register formatting.
|
* Current default for register formatting.
|
||||||
|
|
|
@ -25,12 +25,4 @@ public class VMCacheRefreshAlways extends VMCache
|
||||||
flush(true);
|
flush(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean useCache() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,19 +9,19 @@
|
||||||
package org.eclipse.dd.dsf.debug.ui.viewmodel.variable;
|
package org.eclipse.dd.dsf.debug.ui.viewmodel.variable;
|
||||||
|
|
||||||
import org.eclipse.dd.dsf.debug.service.IFormattedValues;
|
import org.eclipse.dd.dsf.debug.service.IFormattedValues;
|
||||||
|
import org.eclipse.dd.dsf.debug.ui.viewmodel.dm.AbstractDebugDMVMProviderWithCache;
|
||||||
import org.eclipse.dd.dsf.debug.ui.viewmodel.formatsupport.IFormattedValuePreferenceStore;
|
import org.eclipse.dd.dsf.debug.ui.viewmodel.formatsupport.IFormattedValuePreferenceStore;
|
||||||
import org.eclipse.dd.dsf.service.DsfSession;
|
import org.eclipse.dd.dsf.service.DsfSession;
|
||||||
import org.eclipse.dd.dsf.ui.viewmodel.AbstractVMAdapter;
|
import org.eclipse.dd.dsf.ui.viewmodel.AbstractVMAdapter;
|
||||||
import org.eclipse.dd.dsf.ui.viewmodel.IVMLayoutNode;
|
import org.eclipse.dd.dsf.ui.viewmodel.IVMLayoutNode;
|
||||||
import org.eclipse.dd.dsf.ui.viewmodel.IVMRootLayoutNode;
|
import org.eclipse.dd.dsf.ui.viewmodel.IVMRootLayoutNode;
|
||||||
import org.eclipse.dd.dsf.ui.viewmodel.dm.AbstractDMVMProviderWithCache;
|
|
||||||
import org.eclipse.dd.dsf.ui.viewmodel.dm.DMVMRootLayoutNode;
|
import org.eclipse.dd.dsf.ui.viewmodel.dm.DMVMRootLayoutNode;
|
||||||
import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation;
|
import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentation;
|
||||||
import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory;
|
import org.eclipse.debug.internal.ui.viewers.model.provisional.IColumnPresentationFactory;
|
||||||
import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
|
import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
|
||||||
|
|
||||||
@SuppressWarnings("restriction")
|
@SuppressWarnings("restriction")
|
||||||
public class VariableVMProvider extends AbstractDMVMProviderWithCache implements
|
public class VariableVMProvider extends AbstractDebugDMVMProviderWithCache implements
|
||||||
IColumnPresentationFactory, IFormattedValuePreferenceStore {
|
IColumnPresentationFactory, IFormattedValuePreferenceStore {
|
||||||
|
|
||||||
private String defaultFormatId = IFormattedValues.NATURAL_FORMAT;
|
private String defaultFormatId = IFormattedValues.NATURAL_FORMAT;
|
||||||
|
|
|
@ -27,11 +27,13 @@ public abstract class AbstractDMVMProviderWithCache extends AbstractDMVMProvider
|
||||||
implements VMCacheManager.CacheListener
|
implements VMCacheManager.CacheListener
|
||||||
{
|
{
|
||||||
@DsfServiceEventHandler
|
@DsfServiceEventHandler
|
||||||
|
@Override
|
||||||
public void eventDispatched(IDMEvent<?> event) {
|
public void eventDispatched(IDMEvent<?> event) {
|
||||||
VMCacheManager.getVMCacheManager().getCache(getPresentationContext()).handleEvent(event);
|
VMCacheManager.getVMCacheManager().getCache(getPresentationContext()).handleEvent(event);
|
||||||
super.eventDispatched(event);
|
super.eventDispatched(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("restriction")
|
||||||
public void cacheFlushed(Object context) {
|
public void cacheFlushed(Object context) {
|
||||||
if(getPresentationContext().equals(context))
|
if(getPresentationContext().equals(context))
|
||||||
getModelProxy().fireModelChanged(new ModelDelta(getRootElement(),IModelDelta.CONTENT));
|
getModelProxy().fireModelChanged(new ModelDelta(getRootElement(),IModelDelta.CONTENT));
|
||||||
|
@ -43,18 +45,22 @@ public abstract class AbstractDMVMProviderWithCache extends AbstractDMVMProvider
|
||||||
VMCacheManager.getVMCacheManager().addCacheListener(getPresentationContext(), this);
|
VMCacheManager.getVMCacheManager().addCacheListener(getPresentationContext(), this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void update(IHasChildrenUpdate[] updates) {
|
public void update(IHasChildrenUpdate[] updates) {
|
||||||
super.update(VMCacheManager.getVMCacheManager().getCache(getPresentationContext()).update(updates));
|
super.update(VMCacheManager.getVMCacheManager().getCache(getPresentationContext()).update(updates));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void update(IChildrenCountUpdate[] updates) {
|
public void update(IChildrenCountUpdate[] updates) {
|
||||||
super.update(VMCacheManager.getVMCacheManager().getCache(getPresentationContext()).update(updates));
|
super.update(VMCacheManager.getVMCacheManager().getCache(getPresentationContext()).update(updates));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void update(final IChildrenUpdate[] updates) {
|
public void update(final IChildrenUpdate[] updates) {
|
||||||
super.update(VMCacheManager.getVMCacheManager().getCache(getPresentationContext()).update(updates));
|
super.update(VMCacheManager.getVMCacheManager().getCache(getPresentationContext()).update(updates));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void dispose()
|
public void dispose()
|
||||||
{
|
{
|
||||||
VMCacheManager.getVMCacheManager().removeCacheListener(getPresentationContext(), this);
|
VMCacheManager.getVMCacheManager().removeCacheListener(getPresentationContext(), this);
|
||||||
|
|
|
@ -56,17 +56,25 @@ public abstract class VMCache
|
||||||
fHasChildren.clear();
|
fHasChildren.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean useCache()
|
protected boolean isCacheReadEnabled()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected boolean isCacheWriteEnabled()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("restriction")
|
@SuppressWarnings("restriction")
|
||||||
public IHasChildrenUpdate[] update(IHasChildrenUpdate[] updates) {
|
public IHasChildrenUpdate[] update(IHasChildrenUpdate[] updates) {
|
||||||
|
if(!isCacheReadEnabled())
|
||||||
|
return updates;
|
||||||
|
|
||||||
Vector<IHasChildrenUpdate> missVector = new Vector<IHasChildrenUpdate>();
|
Vector<IHasChildrenUpdate> missVector = new Vector<IHasChildrenUpdate>();
|
||||||
for(IHasChildrenUpdate update : updates)
|
for(IHasChildrenUpdate update : updates)
|
||||||
{
|
{
|
||||||
if(fHasChildren.containsKey(update.getElement()) && useCache())
|
if(fHasChildren.containsKey(update.getElement()) && isCacheReadEnabled())
|
||||||
{
|
{
|
||||||
update.setHasChilren(fHasChildren.get(update.getElement()).booleanValue());
|
update.setHasChilren(fHasChildren.get(update.getElement()).booleanValue());
|
||||||
update.done();
|
update.done();
|
||||||
|
@ -86,7 +94,8 @@ public abstract class VMCache
|
||||||
@Override
|
@Override
|
||||||
protected void handleCompleted()
|
protected void handleCompleted()
|
||||||
{
|
{
|
||||||
fHasChildren.put(update.getElement(), this.getData());
|
if(isCacheWriteEnabled())
|
||||||
|
fHasChildren.put(update.getElement(), this.getData());
|
||||||
update.setHasChilren(getData());
|
update.setHasChilren(getData());
|
||||||
update.done();
|
update.done();
|
||||||
}
|
}
|
||||||
|
@ -99,10 +108,13 @@ public abstract class VMCache
|
||||||
@SuppressWarnings("restriction")
|
@SuppressWarnings("restriction")
|
||||||
public IChildrenCountUpdate[] update(IChildrenCountUpdate[] updates)
|
public IChildrenCountUpdate[] update(IChildrenCountUpdate[] updates)
|
||||||
{
|
{
|
||||||
|
if(!isCacheReadEnabled())
|
||||||
|
return updates;
|
||||||
|
|
||||||
Vector<IChildrenCountUpdate> missVector = new Vector<IChildrenCountUpdate>();
|
Vector<IChildrenCountUpdate> missVector = new Vector<IChildrenCountUpdate>();
|
||||||
for(IChildrenCountUpdate update : updates)
|
for(IChildrenCountUpdate update : updates)
|
||||||
{
|
{
|
||||||
if(fChildrenCounts.containsKey(update.getElement()) && useCache())
|
if(fChildrenCounts.containsKey(update.getElement()) && isCacheReadEnabled())
|
||||||
{
|
{
|
||||||
update.setChildCount(fChildrenCounts.get(update.getElement()));
|
update.setChildCount(fChildrenCounts.get(update.getElement()));
|
||||||
update.done();
|
update.done();
|
||||||
|
@ -122,7 +134,8 @@ public abstract class VMCache
|
||||||
@Override
|
@Override
|
||||||
protected void handleOK()
|
protected void handleOK()
|
||||||
{
|
{
|
||||||
fChildrenCounts.put(update.getElement(), this.getData());
|
if(isCacheWriteEnabled())
|
||||||
|
fChildrenCounts.put(update.getElement(), this.getData());
|
||||||
update.setChildCount(this.getData());
|
update.setChildCount(this.getData());
|
||||||
update.done();
|
update.done();
|
||||||
}
|
}
|
||||||
|
@ -134,10 +147,13 @@ public abstract class VMCache
|
||||||
|
|
||||||
@SuppressWarnings("restriction")
|
@SuppressWarnings("restriction")
|
||||||
public IChildrenUpdate[] update(IChildrenUpdate[] updates) {
|
public IChildrenUpdate[] update(IChildrenUpdate[] updates) {
|
||||||
|
if(!isCacheReadEnabled())
|
||||||
|
return updates;
|
||||||
|
|
||||||
Vector<IChildrenUpdate> updatesEntirelyMissingFromCache = new Vector<IChildrenUpdate>();
|
Vector<IChildrenUpdate> updatesEntirelyMissingFromCache = new Vector<IChildrenUpdate>();
|
||||||
for(final IChildrenUpdate update : updates)
|
for(final IChildrenUpdate update : updates)
|
||||||
{
|
{
|
||||||
if(fChildren.containsKey(update.getElement()) && useCache())
|
if(fChildren.containsKey(update.getElement()) && isCacheReadEnabled())
|
||||||
{
|
{
|
||||||
Vector<Integer> childrenMissingFromCache = new Vector<Integer>();
|
Vector<Integer> childrenMissingFromCache = new Vector<Integer>();
|
||||||
for(int i = update.getOffset(); i < update.getOffset() + update.getLength(); i++)
|
for(int i = update.getOffset(); i < update.getOffset() + update.getLength(); i++)
|
||||||
|
@ -227,10 +243,13 @@ public abstract class VMCache
|
||||||
{
|
{
|
||||||
for(int j = 0; j < update.getLength(); j++)
|
for(int j = 0; j < update.getLength(); j++)
|
||||||
{
|
{
|
||||||
if(!fChildren.containsKey(update.getElement()))
|
if(isCacheWriteEnabled())
|
||||||
fChildren.put(update.getElement(), new HashMap<Integer,Object>());
|
{
|
||||||
|
if(!fChildren.containsKey(update.getElement()))
|
||||||
fChildren.get(update.getElement()).put(update.getOffset() + j, getData().get(j));
|
fChildren.put(update.getElement(), new HashMap<Integer,Object>());
|
||||||
|
|
||||||
|
fChildren.get(update.getElement()).put(update.getOffset() + j, getData().get(j));
|
||||||
|
}
|
||||||
|
|
||||||
update.setChild(getData().get(j), update.getOffset() + j);
|
update.setChild(getData().get(j), update.getOffset() + j);
|
||||||
}
|
}
|
||||||
|
@ -246,7 +265,7 @@ public abstract class VMCache
|
||||||
@ConfinedToDsfExecutor("DsfSession.getSession(dmc.getSessionId()).getExecutor()")
|
@ConfinedToDsfExecutor("DsfSession.getSession(dmc.getSessionId()).getExecutor()")
|
||||||
public void getModelData(IDMService service, final IDMContext dmc, final DataRequestMonitor rm, DsfExecutor executor)
|
public void getModelData(IDMService service, final IDMContext dmc, final DataRequestMonitor rm, DsfExecutor executor)
|
||||||
{
|
{
|
||||||
if(fData.containsKey(dmc) && useCache())
|
if(fData.containsKey(dmc) && isCacheReadEnabled())
|
||||||
{
|
{
|
||||||
rm.setData( fData.get(dmc));
|
rm.setData( fData.get(dmc));
|
||||||
rm.done();
|
rm.done();
|
||||||
|
@ -257,7 +276,8 @@ public abstract class VMCache
|
||||||
new DataRequestMonitor<IDMData>(executor, null) {
|
new DataRequestMonitor<IDMData>(executor, null) {
|
||||||
@Override
|
@Override
|
||||||
public void handleOK() {
|
public void handleOK() {
|
||||||
fData.put(dmc, getData());
|
if(isCacheWriteEnabled())
|
||||||
|
fData.put(dmc, getData());
|
||||||
rm.setData(getData());
|
rm.setData(getData());
|
||||||
rm.done();
|
rm.done();
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,10 +49,16 @@ public class VMCacheManager
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(IDMEvent event) {
|
public void handleEvent(IDMEvent event) {
|
||||||
flush(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean readFromCache()
|
@Override
|
||||||
|
public boolean isCacheReadEnabled()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCacheWriteEnabled()
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue