GP-704: Converting models to a push-centric comm pattern.

This commit is contained in:
Dan 2021-02-23 10:57:51 -05:00
parent dd37995833
commit 5bb6f95a84
95 changed files with 2348 additions and 1635 deletions

View file

@ -21,7 +21,6 @@ import java.util.concurrent.CompletableFuture;
import com.sun.jdi.*;
import ghidra.async.AsyncUtils;
import ghidra.dbg.agent.AbstractDebuggerObjectModel;
import ghidra.dbg.jdi.manager.JdiManager;
import ghidra.dbg.target.TargetObject;
@ -64,6 +63,7 @@ public class JdiModelImpl extends AbstractDebuggerObjectModel {
Address start = ram.getAddress(0L);
this.defaultRange = new AddressRangeImpl(start, start.add(BLOCK_SIZE));
addModelRoot(root);
}
@Override
@ -86,7 +86,7 @@ public class JdiModelImpl extends AbstractDebuggerObjectModel {
@Override
public CompletableFuture<Void> close() {
jdi.terminate();
return AsyncUtils.NIL;
return super.close();
}
public JdiModelTargetRoot getRoot() {
@ -227,6 +227,7 @@ public class JdiModelImpl extends AbstractDebuggerObjectModel {
return range;
}
@Override
public AddressFactory getAddressFactory() {
return addressFactory;
}

View file

@ -85,7 +85,7 @@ public class JdiModelTargetClassContainer extends JdiModelTargetObjectImpl {
return getClassesByName().get(name);
}
public CompletableFuture<?> refresh() {
public CompletableFuture<?> refreshInternal() {
if (!isObserved()) {
return AsyncUtils.NIL;
}

View file

@ -91,7 +91,7 @@ public class JdiModelTargetConnectorContainer extends JdiModelTargetObjectImpl {
return null;
}
public CompletableFuture<?> refresh() {
public CompletableFuture<?> refreshInternal() {
if (!isObserved()) {
return AsyncUtils.NIL;
}

View file

@ -118,7 +118,7 @@ public class JdiModelTargetModuleContainer extends JdiModelTargetObjectImpl
return modulesByName.get(name);
}
public CompletableFuture<?> refresh() {
public CompletableFuture<?> refreshInternal() {
if (!isObserved()) {
return AsyncUtils.NIL;
}

View file

@ -46,7 +46,7 @@ public class JdiModelTargetObjectImpl extends
private boolean modified;
public JdiModelTargetObjectImpl(JdiModelTargetObject parent, String id) {
super(parent.getModel(), parent, id, "Object");
super(parent.getModelImpl(), parent, id, "Object");
this.impl = parent.getModelImpl();
this.mirror = (Mirror) parent.getObject();
this.object = null;
@ -65,7 +65,7 @@ public class JdiModelTargetObjectImpl extends
public JdiModelTargetObjectImpl(JdiModelTargetObject parent, String id, Object object,
boolean isElement) {
super(parent.getModel(), parent, isElement ? keyObject(id) : id, "Object");
super(parent.getModelImpl(), parent, isElement ? keyObject(id) : id, "Object");
this.impl = parent.getModelImpl();
this.mirror = object instanceof Mirror ? (Mirror) object : null;
this.object = object;
@ -88,7 +88,7 @@ public class JdiModelTargetObjectImpl extends
}
public JdiModelTargetObjectImpl(JdiModelTargetSectionContainer parent) {
super(parent.getModel(), parent, keyObject("NULL_SPACE"), "Object");
super(parent.getModelImpl(), parent, keyObject("NULL_SPACE"), "Object");
this.impl = parent.getModelImpl();
this.mirror = parent.mirror;
this.display = "NULL_SPACE";

View file

@ -398,7 +398,7 @@ public class JdiModelTargetVM extends JdiModelTargetObjectImpl implements //
}
@Override
public void refresh() {
public void refreshInternal() {
// TODO Auto-generated method stub
}

View file

@ -21,7 +21,7 @@ import ghidra.dbg.target.TargetEnvironment;
public interface JdiModelTargetEnvironment<T extends TargetEnvironment<T>>
extends JdiModelTargetObject, TargetEnvironment<T> {
public void refresh();
public void refreshInternal();
@Override
public default String getArchitecture() {