blob: 3db0d3119145fc046d861580ddca54e736d9f3ca [file] [log] [blame]
/*
* (c) Copyright QNX Software Systems Ltd. 2002.
* All Rights Reserved.
*/
package org.eclipse.cdt.debug.mi.core.cdi.event;
import org.eclipse.cdt.debug.core.cdi.event.ICDICreatedEvent;
import org.eclipse.cdt.debug.core.cdi.model.ICDIMemoryBlock;
import org.eclipse.cdt.debug.core.cdi.model.ICDIObject;
import org.eclipse.cdt.debug.mi.core.cdi.BreakpointManager;
import org.eclipse.cdt.debug.mi.core.cdi.MemoryManager;
import org.eclipse.cdt.debug.mi.core.cdi.RegisterManager;
import org.eclipse.cdt.debug.mi.core.cdi.Session;
import org.eclipse.cdt.debug.mi.core.cdi.SharedLibraryManager;
import org.eclipse.cdt.debug.mi.core.cdi.VariableManager;
import org.eclipse.cdt.debug.mi.core.cdi.model.CObject;
import org.eclipse.cdt.debug.mi.core.cdi.model.Target;
import org.eclipse.cdt.debug.mi.core.event.MIBreakpointCreatedEvent;
import org.eclipse.cdt.debug.mi.core.event.MIMemoryCreatedEvent;
import org.eclipse.cdt.debug.mi.core.event.MIRegisterCreatedEvent;
import org.eclipse.cdt.debug.mi.core.event.MISharedLibCreatedEvent;
import org.eclipse.cdt.debug.mi.core.event.MIThreadCreatedEvent;
import org.eclipse.cdt.debug.mi.core.event.MIVarCreatedEvent;
/**
*/
public class CreatedEvent implements ICDICreatedEvent {
Session session;
ICDIObject source;
public CreatedEvent(Session s, MIBreakpointCreatedEvent bpoint) {
session = s;
BreakpointManager mgr = (BreakpointManager)session.getBreakpointManager();
int number = bpoint.getNumber();
source = mgr.getBreakpoint(number);
if (source == null) {
source = new CObject(session.getCurrentTarget());
}
}
public CreatedEvent(Session s, MIVarCreatedEvent var) {
session = s;
VariableManager mgr = (VariableManager)session.getVariableManager();
String varName = var.getVarName();
source = mgr.getVariable(varName);
if (source == null) {
source = new CObject(session.getCurrentTarget());
}
}
public CreatedEvent(Session s, MIRegisterCreatedEvent var) {
session = s;
RegisterManager mgr = (RegisterManager)session.getRegisterManager();
int regno = var.getNumber();
source = mgr.getRegister(regno);
if (source == null) {
source = new CObject(session.getCurrentTarget());
}
}
public CreatedEvent(Session s, MIThreadCreatedEvent ethread) {
session = s;
Target target = (Target)session.getCurrentTarget();
source = target.getThread(ethread.getId());
if (source == null) {
source = new CObject(session.getCurrentTarget());
}
}
public CreatedEvent(Session s, MIMemoryCreatedEvent mblock) {
session = s;
MemoryManager mgr = (MemoryManager)session.getMemoryManager();
ICDIMemoryBlock[] blocks = mgr.listMemoryBlocks();
for (int i = 0; i < blocks.length; i++) {
if (blocks[i].getStartAddress() == mblock.getAddress() &&
blocks[i].getLength() == mblock.getLength()) {
source = blocks[i];
break;
}
}
if (source == null) {
source = new CObject(session.getCurrentTarget());
}
}
public CreatedEvent(Session s, MISharedLibCreatedEvent slib) {
session = s;
SharedLibraryManager mgr = (SharedLibraryManager)session.getSharedLibraryManager();
String name = slib.getName();
source = mgr.getSharedLibrary(name);
if (source == null) {
source = new CObject(session.getCurrentTarget());
}
}
public CreatedEvent(Session s, ICDIObject src) {
session = s;
source = src;
}
/**
* @see org.eclipse.cdt.debug.core.cdi.event.ICDIEvent#getSource()
*/
public ICDIObject getSource() {
return source;
}
}