package ptolemy.apps.apes.demo.TwoTasksCyclicEventDependency;
import java.util.ArrayList;
import ptolemy.actor.NoRoomException;
import ptolemy.apps.apes.CTask;
import ptolemy.kernel.CompositeEntity;
import ptolemy.kernel.util.IllegalActionException;
import ptolemy.kernel.util.NameDuplicationException;
import ptolemy.kernel.util.Workspace;
public class HighPriorityTask extends CTask {
public HighPriorityTask() throws IllegalActionException, NameDuplicationException {
super();
}
public HighPriorityTask(Workspace workspace) throws IllegalActionException, NameDuplicationException {
super(workspace);
}
public HighPriorityTask(CompositeEntity container, String name)
throws IllegalActionException, NameDuplicationException {
super(container, name);
}
private native void CMethod();
public static int ID = 2;
public static int EVENT_ID = 2;
protected void _callCMethod() {
System.out.println(this.getName() + "._callCMethod()");
try {
accessPointCallback(-1.0, 0.5);
accessPointCallback(0.7, 0.0);
eventManager.setEvent(LowPriorityTask.ID, LowPriorityTask.EVENT_ID);
accessPointCallback(1.0, 0.0);
eventManager.waitEvent(HighPriorityTask.EVENT_ID);
accessPointCallback(1.0, 0.0);
eventManager.clearEvent(0);
cpuScheduler.terminateTask();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void accessPointCallback(double extime, double minNextTime) throws NoRoomException,
IllegalActionException {
// TODO Auto-generated method stub
super.accessPointCallback(extime, minNextTime);
}
}