Implements the "null message algorithm". Lookahead calculation is encapsulated into a separate object, subclassed from cNMPLookahead.
Public Member Functions | |
cNullMessageProtocol () | |
virtual | ~cNullMessageProtocol () |
virtual void | setContext (cSimulation *sim, cParsimPartition *seg, cParsimCommunications *co) override |
void | setLaziness (double d) |
double | getLaziness () |
virtual void | startRun () override |
virtual void | endRun () override |
virtual cEvent * | takeNextEvent () override |
virtual void | putBackEvent (cEvent *event) override |
virtual void | processOutgoingMessage (cMessage *msg, const SendOptions &options, int procId, int moduleId, int gateId, void *data) override |
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 |
Constructor.
|
virtual |
Destructor.
|
overridevirtual |
Redefined beacause we have to pass the same data to the lookahead calculator object (cNMPLookahead) too.
Reimplemented from cParsimSynchronizer.
|
inline |
Sets null message resend laziness. Value is between 0 and 1 – 0.0 means eager resend, 1.0 means lazy resend.
(Probably should never be 1.0, otherwise floating point rounding errors may cause obscure EIT-deadlocks on receiving side.)
|
inline |
Get laziness of null message resend.
|
overridevirtual |
Called at the beginning of a simulation run.
Implements cParsimSynchronizer.
Reimplemented in cISPEventLogger.
|
overridevirtual |
Called at the end of a simulation run.
Implements cParsimSynchronizer.
Reimplemented in cISPEventLogger.
|
overridevirtual |
Scheduler function. The null message algorithm is embedded here.
Implements cParsimSynchronizer.
Reimplemented in cISPEventLogger.
|
overridevirtual |
Undo takeNextEvent() – it comes from the cScheduler interface.
Reimplemented in cISPEventLogger.
|
overridevirtual |
In addition to its normal task (sending out the cMessage to the given partition), it also does lookahead calculation and optional piggybacking of null message on the cMessage.
Reimplemented from cParsimProtocolBase.
Reimplemented in cISPEventLogger.