/*******************************************************************************
* Copyright (c) 2000, 2006 QNX Software 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:
* QNX Software Systems - Initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.debug.mi.core.cdi.model;
import org.eclipse.cdt.debug.core.cdi.CDIException;
import org.eclipse.cdt.debug.core.cdi.model.ICDISignal;
import org.eclipse.cdt.debug.mi.core.cdi.Session;
import org.eclipse.cdt.debug.mi.core.cdi.SignalManager;
import org.eclipse.cdt.debug.mi.core.output.MISigHandle;
/**
*/
public class Signal extends CObject implements ICDISignal {
MISigHandle sig;
public Signal(Target target, MISigHandle s) {
super(target);
sig = s;
}
public void setMISignal(MISigHandle s) {
sig = s;
}
public MISigHandle getMISignal() {
return sig;
}
/**
* @see org.eclipse.cdt.debug.core.cdi.ICDISignal#getMeaning()
*/
public String getDescription() {
return sig.getDescription();
}
/**
* @see org.eclipse.cdt.debug.core.cdi.ICDISignal#getName()
*/
public String getName() {
return sig.getName();
}
/**
* @see org.eclipse.cdt.debug.core.cdi.ICDISignal#handle()
*/
public void handle(boolean ignore, boolean stop) throws CDIException {
SignalManager mgr = ((Session)getTarget().getSession()).getSignalManager();
mgr.handle(this, ignore, stop);
}
/**
* @see org.eclipse.cdt.debug.core.cdi.ICDISignal#isIgnore()
*/
public boolean isIgnore() {
return !sig.isPass();
}
/**
* @see org.eclipse.cdt.debug.core.cdi.ICDISignal#isStopSet()
*/
public boolean isStopSet() {
return sig.isStop();
}
/**
* Continue program giving it signal specified by the argument.
*/
public void signal() throws CDIException {
getTarget().resume(this);
}
}