diff options
| author | Paul Buetow <paul@buetow.org> | 2008-08-07 07:32:29 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2008-08-07 07:32:29 +0000 |
| commit | f33c1714f67627848983bc2f9d179bde63da3d80 (patch) | |
| tree | 0fda416822e20c9895f7430eab68ba54220ba6bd /sources/protocols/VSAbstractProtocol.java | |
| parent | 5f388cca7c19d44a3928f4cfe7244faabeb2faff (diff) | |
written a lot
Diffstat (limited to 'sources/protocols/VSAbstractProtocol.java')
| -rw-r--r-- | sources/protocols/VSAbstractProtocol.java | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/sources/protocols/VSAbstractProtocol.java b/sources/protocols/VSAbstractProtocol.java index dfa87a5..603bb1d 100644 --- a/sources/protocols/VSAbstractProtocol.java +++ b/sources/protocols/VSAbstractProtocol.java @@ -30,6 +30,7 @@ import core.*; import events.*; import events.internal.*; import serialize.*; +import simulator.VSSimulatorCanvas; import utils.*; /** @@ -95,13 +96,16 @@ abstract public class VSAbstractProtocol extends VSAbstractEvent { process.increaseVectorTime(); VSMessageStub stub = new VSMessageStub(message); + VSInternalProcess internalProcess = (VSInternalProcess) process; if (currentContextIsServer) - stub.init(process, getClassname(), VSMessage.IS_SERVER_MESSAGE); + stub.init(internalProcess, getClassname(), + VSMessage.IS_SERVER_MESSAGE); else - stub.init(process, getClassname(), VSMessage.IS_CLIENT_MESSAGE); + stub.init(internalProcess, getClassname(), + VSMessage.IS_CLIENT_MESSAGE); - process.sendMessage(message); + internalProcess.sendMessage(message); } /** @@ -299,27 +303,34 @@ abstract public class VSAbstractProtocol extends VSAbstractEvent { * @param time The process' local time to run the schedule at. */ public final void scheduleAt(long time) { + VSInternalProcess internalProcess = (VSInternalProcess) process; VSAbstractEvent scheduleEvent = new VSProtocolScheduleEvent(this, currentContextIsServer); VSTask scheduleTask = - new VSTask(time, process, scheduleEvent, VSTask.LOCAL); + new VSTask(time, internalProcess, scheduleEvent, VSTask.LOCAL); + if (currentContextIsServer) serverSchedules.add(scheduleTask); else clientSchedules.add(scheduleTask); - process.getSimulatorCanvas().getTaskManager().addTask(scheduleTask); + + VSSimulatorCanvas canvas = internalProcess.getSimulatorCanvas(); + canvas.getTaskManager().addTask(scheduleTask); } /** * Removes all schedules of the protocol (server or client) */ public final void removeSchedules() { + VSInternalProcess internalProcess = (VSInternalProcess) process; + if (currentContextIsServer) { - process.getSimulatorCanvas(). + internalProcess.getSimulatorCanvas(). getTaskManager().removeAllTasks(serverSchedules); serverSchedules.clear(); + } else { - process.getSimulatorCanvas(). + internalProcess.getSimulatorCanvas(). getTaskManager().removeAllTasks(clientSchedules); clientSchedules.clear(); } @@ -388,7 +399,8 @@ abstract public class VSAbstractProtocol extends VSAbstractEvent { if (process == null) return 0; - return process.getSimulatorCanvas().getNumProcesses(); + VSInternalProcess internalProcess = (VSInternalProcess) process; + return internalProcess.getSimulatorCanvas().getNumProcesses(); } /* (non-Javadoc) |
