mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
159683
This commit is contained in:
parent
9a1a5ad41c
commit
bd8ee802ca
1 changed files with 51 additions and 23 deletions
|
@ -16,6 +16,7 @@ import java.util.List;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
|
import org.eclipse.core.runtime.IStatus;
|
||||||
import org.eclipse.dd.dsf.concurrent.ConfinedToDsfExecutor;
|
import org.eclipse.dd.dsf.concurrent.ConfinedToDsfExecutor;
|
||||||
import org.eclipse.dd.dsf.concurrent.DataRequestMonitor;
|
import org.eclipse.dd.dsf.concurrent.DataRequestMonitor;
|
||||||
import org.eclipse.dd.dsf.concurrent.DefaultDsfExecutor;
|
import org.eclipse.dd.dsf.concurrent.DefaultDsfExecutor;
|
||||||
|
@ -132,11 +133,13 @@ public abstract class VMCache
|
||||||
updates[i] = new VMElementsCountUpdate(update, new DataRequestMonitor<Integer>(fExecutor, null)
|
updates[i] = new VMElementsCountUpdate(update, new DataRequestMonitor<Integer>(fExecutor, null)
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
protected void handleOK()
|
protected void handleCompleted() {
|
||||||
|
if(getStatus().isOK())
|
||||||
{
|
{
|
||||||
if(isCacheWriteEnabled())
|
if(isCacheWriteEnabled())
|
||||||
fChildrenCounts.put(update.getElement(), this.getData());
|
fChildrenCounts.put(update.getElement(), this.getData());
|
||||||
update.setChildCount(this.getData());
|
update.setChildCount(this.getData());
|
||||||
|
}
|
||||||
update.done();
|
update.done();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -239,7 +242,9 @@ public abstract class VMCache
|
||||||
new DataRequestMonitor<List<Object>>(fExecutor, null)
|
new DataRequestMonitor<List<Object>>(fExecutor, null)
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
protected void handleOK()
|
protected void handleCompleted()
|
||||||
|
{
|
||||||
|
if(getStatus().isOK())
|
||||||
{
|
{
|
||||||
for(int j = 0; j < update.getLength(); j++)
|
for(int j = 0; j < update.getLength(); j++)
|
||||||
{
|
{
|
||||||
|
@ -253,6 +258,7 @@ public abstract class VMCache
|
||||||
|
|
||||||
update.setChild(getData().get(j), update.getOffset() + j);
|
update.setChild(getData().get(j), update.getOffset() + j);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
update.done();
|
update.done();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -275,12 +281,34 @@ public abstract class VMCache
|
||||||
service.getModelData(dmc,
|
service.getModelData(dmc,
|
||||||
new DataRequestMonitor<IDMData>(executor, null) {
|
new DataRequestMonitor<IDMData>(executor, null) {
|
||||||
@Override
|
@Override
|
||||||
public void handleOK() {
|
protected void handleCompleted() {
|
||||||
|
if(getStatus().isOK())
|
||||||
|
{
|
||||||
if(isCacheWriteEnabled())
|
if(isCacheWriteEnabled())
|
||||||
fData.put(dmc, getData());
|
fData.put(dmc, getData());
|
||||||
rm.setData(getData());
|
rm.setData(getData());
|
||||||
|
}
|
||||||
rm.done();
|
rm.done();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public synchronized void setCanceled(boolean canceled) {
|
||||||
|
rm.setCanceled(canceled);
|
||||||
|
super.setCanceled(canceled);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setMultiStatus(String pluginId, int code,
|
||||||
|
String message, IStatus subStatus) {
|
||||||
|
rm.setMultiStatus(pluginId, code, message, subStatus);
|
||||||
|
super.setMultiStatus(pluginId, code, message, subStatus);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public synchronized void setStatus(IStatus status) {
|
||||||
|
rm.setStatus(status);
|
||||||
|
super.setStatus(status);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue