package ptolemy.apps.apes;
import java.util.HashMap;
import java.util.Map;
import ptolemy.actor.Actor;
import ptolemy.actor.NoRoomException;
import ptolemy.kernel.util.IllegalActionException;
public class AccessPointCallbackDispatcher {
public native void InitializeC();
public AccessPointCallbackDispatcher() {
}
/** Map of taskNames and tasks. */
private Map<String, Actor> _taskNames = new HashMap();
public void accessPointCallback(double extime, double minNextTime) {
CTask task = (CTask) _taskNames.get(Thread.currentThread().getName());
try {
task.accessPointCallback(extime, minNextTime);
} catch (NoRoomException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalActionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void accessPointCallback(double extime, double minNextTime, String varName) {
CTask task = (CTask) _taskNames.get(Thread.currentThread().getName());
try {
task.accessPointCallback(extime, minNextTime);
//task.setGlobalVariable(varName);
} catch (NoRoomException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalActionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int i = 0;
}
public void accessPointCallback(double extime, double minNextTime, String varName, double value) {
CTask task = (CTask) _taskNames.get(Thread.currentThread().getName());
try {
task.accessPointCallback(extime, minNextTime);
task.setOutputValue(varName, value);
} catch (NoRoomException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalActionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void addTask(CTask task) {
_taskNames.put(task.getName(), task);
}
}