cISPEventLogger Class Reference

Parallel Simulation API: cISPEventLogger Class Reference
Parallel Simulation API
cISPEventLogger Class Reference
Inheritance diagram for cISPEventLogger:
[legend]

Public Member Functions

 cISPEventLogger ()
virtual ~cISPEventLogger ()
virtual void startRun () override
virtual void endRun () override
void processOutgoingMessage (cMessage *msg, const SendOptions &options, int procId, int moduleId, int gateId, void *data) override
virtual cEvent * takeNextEvent () override
virtual void putBackEvent (cEvent *event) override
Public Member Functions inherited from cNullMessageProtocol
 cNullMessageProtocol ()
virtual ~cNullMessageProtocol ()
virtual void setContext (cSimulation *sim, cParsimPartition *seg, cParsimCommunications *co) override
void setLaziness (double d)
double getLaziness ()
Public Member Functions inherited from cParsimProtocolBase
 cParsimProtocolBase ()
virtual ~cParsimProtocolBase ()
Public Member Functions inherited from cParsimSynchronizer
 cParsimSynchronizer ()
virtual ~cParsimSynchronizer ()
virtual std::string str () const override
virtual cEvent * guessNextEvent () override

Description

Implements phase one for the Ideal Simulation Protocol (ISP), namely, creating the log of "external" events. That log will be used as by the ISP synchromization mechanism (cIdealSimulationProtocol).

This class simply executes the simulation under the Null Message Algorithm, and additionally records all "external" events to a file.

Constructor & Destructor Documentation

◆ cISPEventLogger()

cISPEventLogger ( )
inline

Constructor.

◆ ~cISPEventLogger()

virtual ~cISPEventLogger ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ startRun()

virtual void startRun ( )
overridevirtual

Called at the beginning of a simulation run. The addition to the base class is opening the file.

Reimplemented from cNullMessageProtocol.

◆ endRun()

virtual void endRun ( )
overridevirtual

Called at the end of a simulation run. The addition to the base class is closing the file.

Reimplemented from cNullMessageProtocol.

◆ processOutgoingMessage()

void processOutgoingMessage ( cMessage * msg,
const SendOptions & options,
int procId,
int moduleId,
int gateId,
void * data )
overridevirtual

Overridden to check that the model doesn't set message priority which we need for our own purposes.

Reimplemented from cNullMessageProtocol.

◆ takeNextEvent()

virtual cEvent * takeNextEvent ( )
overridevirtual

Scheduler function. The addition to the base class is recording the event to the file.

Reimplemented from cNullMessageProtocol.

◆ putBackEvent()

virtual void putBackEvent ( cEvent * event)
overridevirtual

Undo takeNextEvent() – it comes from the cScheduler interface.

Reimplemented from cNullMessageProtocol.