cParsimSynchronizer Class Reference
[Parallel simulation support]

Abstract base class for parallel simulation algorithms. More...

#include <cparsimsynchr.h>

Inheritance diagram for cParsimSynchronizer:

cScheduler cPolymorphic cParsimProtocolBase cIdealSimulationProtocol cNoSynchronization cNullMessageProtocol cISPEventLogger List of all members.

Public Member Functions

 cParsimSynchronizer ()
virtual ~cParsimSynchronizer ()
virtual void setContext (cSimulation *sim, cParsimPartition *seg, cParsimCommunications *co)
virtual void startRun ()=0
virtual void endRun ()=0
virtual cMessagegetNextEvent ()=0
virtual void processOutgoingMessage (cMessage *msg, int procId, int moduleId, int gateId, void *data)=0

Detailed Description

Abstract base class for parallel simulation algorithms.

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 Documentation

cParsimSynchronizer::cParsimSynchronizer  )  [inline]
 

Constructor.

virtual cParsimSynchronizer::~cParsimSynchronizer  )  [inline, virtual]
 

Destructor.


Member Function Documentation

virtual void cParsimSynchronizer::endRun  )  [pure virtual]
 

Called at the end of a simulation run.

Implements cScheduler.

Implemented in cIdealSimulationProtocol, cISPEventLogger, cNoSynchronization, and cNullMessageProtocol.

virtual cMessage* cParsimSynchronizer::getNextEvent  )  [pure virtual]
 

Scheduler function -- it comes from cScheduler interface.

Implements cScheduler.

Implemented in cIdealSimulationProtocol, cISPEventLogger, cNoSynchronization, and cNullMessageProtocol.

virtual void cParsimSynchronizer::processOutgoingMessage cMessage msg,
int  procId,
int  moduleId,
int  gateId,
void *  data
[pure virtual]
 

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.

virtual void cParsimSynchronizer::setContext cSimulation sim,
cParsimPartition seg,
cParsimCommunications co
[inline, virtual]
 

Pass cParsimSynchronizer the objects it has to cooperate with.

Reimplemented in cNullMessageProtocol.

virtual void cParsimSynchronizer::startRun  )  [pure virtual]
 

Called at the beginning of a simulation run.

Implements cScheduler.

Implemented in cIdealSimulationProtocol, cISPEventLogger, cNoSynchronization, and cNullMessageProtocol.


The documentation for this class was generated from the following file:
Generated on Sat Oct 21 17:48:01 2006 for OMNeT++ Parallel Simulation Support by  doxygen 1.4.6