#include <cparsimsynchr.h>
Inheritance diagram for cParsimSynchronizer:
Public Member Functions | |
cParsimSynchronizer () | |
virtual | ~cParsimSynchronizer () |
virtual void | setContext (cSimulation *sim, cParsimPartition *seg, cParsimCommunications *co) |
virtual void | startRun ()=0 |
virtual void | endRun ()=0 |
virtual cMessage * | getNextEvent ()=0 |
virtual void | processOutgoingMessage (cMessage *msg, int procId, int moduleId, int gateId, void *data)=0 |
Subclasses implement the "null message algorithm" and others.
Task of this layer is to implement conservative synchronization, that is, block the execution at time points where it is not safe to proceed since events from other partitions will (may) arrive before the next local event.
Synchronizer integrates into the simulation kernel via the getNextEvent() and processOutgoingMessage() functions:
|
Constructor.
|
|
Destructor.
|
|
Called at the end of a simulation run.
Implements cScheduler. Implemented in cIdealSimulationProtocol, cISPEventLogger, cNoSynchronization, and cNullMessageProtocol. |
|
Scheduler function -- it comes from cScheduler interface.
Implements cScheduler. Implemented in cIdealSimulationProtocol, cISPEventLogger, cNoSynchronization, and cNullMessageProtocol. |
|
Hook, called when a cMessage is sent out of the partition. It is provided here so that the synchronizer can potentially perform optimizations, such as piggybacking null messages (see null message algorithm) on outgoing messages. Implemented in cISPEventLogger, cNullMessageProtocol, and cParsimProtocolBase. |
|
Pass cParsimSynchronizer the objects it has to cooperate with.
Reimplemented in cNullMessageProtocol. |
|
Called at the beginning of a simulation run.
Implements cScheduler. Implemented in cIdealSimulationProtocol, cISPEventLogger, cNoSynchronization, and cNullMessageProtocol. |