INET Framework for OMNeT++/OMNEST
inet::SimpleClockSynchronizer Class Reference

#include <SimpleClockSynchronizer.h>

Inheritance diagram for inet::SimpleClockSynchronizer:
inet::ApplicationBase inet::OperationalBase inet::OperationalMixin< cSimpleModule > inet::ILifecycle

Public Member Functions

virtual ~SimpleClockSynchronizer ()
 
- Public Member Functions inherited from inet::ApplicationBase
 ApplicationBase ()
 
- Public Member Functions inherited from inet::OperationalMixin< cSimpleModule >
virtual ~OperationalMixin ()
 }@ More...
 
- Public Member Functions inherited from inet::ILifecycle
virtual ~ILifecycle ()
 

Protected Member Functions

virtual void initialize (int stage) override
 
virtual void handleMessageWhenUp (cMessage *msg) override
 
virtual void handleStartOperation (LifecycleOperation *operation) override
 
virtual void handleStopOperation (LifecycleOperation *operation) override
 
virtual void handleCrashOperation (LifecycleOperation *operation) override
 
virtual void synchronizeSlaveClock ()
 
virtual void scheduleSynchronizationTimer ()
 
- Protected Member Functions inherited from inet::ApplicationBase
virtual bool isInitializeStage (int stage) const override
 
virtual bool isModuleStartStage (int stage) const override
 
virtual bool isModuleStopStage (int stage) const override
 
- Protected Member Functions inherited from inet::OperationalMixin< cSimpleModule >
virtual int numInitStages () const override
 
virtual void refreshDisplay () const override
 
virtual void handleMessage (cMessage *msg) override
 
virtual void handleMessageWhenDown (cMessage *msg)
 
virtual bool handleOperationStage (LifecycleOperation *operation, IDoneCallback *doneCallback) override
 Perform one stage of a lifecycle operation. More...
 
virtual State getInitialOperationalState () const
 Returns initial operational state: OPERATING or NOT_OPERATING. More...
 
virtual void handleActiveOperationTimeout (cMessage *message)
 
virtual bool isUp () const
 utility functions More...
 
virtual bool isDown () const
 
virtual void setOperationalState (State newState)
 
virtual void scheduleOperationTimeout (simtime_t timeout)
 
virtual void setupActiveOperation (LifecycleOperation *operation, IDoneCallback *doneCallback, State)
 
virtual void delayActiveOperationFinish (simtime_t timeout)
 
virtual void startActiveOperationExtraTime (simtime_t delay=SIMTIME_ZERO)
 
virtual void startActiveOperationExtraTimeOrFinish (simtime_t extraTime)
 
virtual void finishActiveOperation ()
 

Protected Attributes

cMessage * synhronizationTimer = nullptr
 
ModuleRefByPar< IClockmasterClock
 
ModuleRefByPar< SettableClockslaveClock
 
cPar * synchronizationIntervalParameter = nullptr
 
cPar * synchronizationAccuracyParameter = nullptr
 
- Protected Attributes inherited from inet::OperationalMixin< cSimpleModule >
State operationalState
 
simtime_t lastChange
 
Operation activeOperation
 
cMessage * activeOperationTimeout
 
cMessage * activeOperationExtraTimer
 

Additional Inherited Members

- Protected Types inherited from inet::OperationalMixin< cSimpleModule >
enum  State
 

Constructor & Destructor Documentation

◆ ~SimpleClockSynchronizer()

virtual inet::SimpleClockSynchronizer::~SimpleClockSynchronizer ( )
inlinevirtual
39 { cancelAndDelete(synhronizationTimer); }

Member Function Documentation

◆ handleCrashOperation()

virtual void inet::SimpleClockSynchronizer::handleCrashOperation ( LifecycleOperation operation)
inlineoverrideprotectedvirtual

◆ handleMessageWhenUp()

void inet::SimpleClockSynchronizer::handleMessageWhenUp ( cMessage *  msg)
overrideprotectedvirtual

Implements inet::OperationalMixin< cSimpleModule >.

29 {
30  if (msg == synhronizationTimer) {
33  }
34  else
35  throw cRuntimeError("Unknown message");
36 }

◆ handleStartOperation()

void inet::SimpleClockSynchronizer::handleStartOperation ( LifecycleOperation operation)
overrideprotectedvirtual

◆ handleStopOperation()

virtual void inet::SimpleClockSynchronizer::handleStopOperation ( LifecycleOperation operation)
inlineoverrideprotectedvirtual

◆ initialize()

void inet::SimpleClockSynchronizer::initialize ( int  stage)
overrideprotectedvirtual

Reimplemented from inet::OperationalMixin< cSimpleModule >.

17 {
19  if (stage == INITSTAGE_LOCAL) {
20  synhronizationTimer = new cMessage("SynchronizationTimer");
21  masterClock.reference(this, "masterClockModule", true);
22  slaveClock.reference(this, "slaveClockModule", true);
23  synchronizationIntervalParameter = &par("synchronizationInterval");
24  synchronizationAccuracyParameter = &par("synchronizationAccuracy");
25  }
26 }

◆ scheduleSynchronizationTimer()

void inet::SimpleClockSynchronizer::scheduleSynchronizationTimer ( )
protectedvirtual
49 {
50  scheduleAfter(synchronizationIntervalParameter->doubleValue(), synhronizationTimer);
51 }

Referenced by handleMessageWhenUp(), and handleStartOperation().

◆ synchronizeSlaveClock()

void inet::SimpleClockSynchronizer::synchronizeSlaveClock ( )
protectedvirtual
44 {
45  slaveClock->setClockTime(masterClock->getClockTime() + synchronizationAccuracyParameter->doubleValue(), true);
46 }

Referenced by handleMessageWhenUp().

Member Data Documentation

◆ masterClock

ModuleRefByPar<IClock> inet::SimpleClockSynchronizer::masterClock
protected

◆ slaveClock

ModuleRefByPar<SettableClock> inet::SimpleClockSynchronizer::slaveClock
protected

◆ synchronizationAccuracyParameter

cPar* inet::SimpleClockSynchronizer::synchronizationAccuracyParameter = nullptr
protected

◆ synchronizationIntervalParameter

cPar* inet::SimpleClockSynchronizer::synchronizationIntervalParameter = nullptr
protected

◆ synhronizationTimer

cMessage* inet::SimpleClockSynchronizer::synhronizationTimer = nullptr
protected

The documentation for this class was generated from the following files:
inet::OperationalMixin< cSimpleModule >::initialize
virtual void initialize(int stage) override
Definition: OperationalMixinImpl.h:26
inet::SimpleClockSynchronizer::scheduleSynchronizationTimer
virtual void scheduleSynchronizationTimer()
Definition: SimpleClockSynchronizer.cc:48
inet::SimpleClockSynchronizer::synchronizeSlaveClock
virtual void synchronizeSlaveClock()
Definition: SimpleClockSynchronizer.cc:43
inet::SimpleClockSynchronizer::slaveClock
ModuleRefByPar< SettableClock > slaveClock
Definition: SimpleClockSynchronizer.h:24
inet::SimpleClockSynchronizer::masterClock
ModuleRefByPar< IClock > masterClock
Definition: SimpleClockSynchronizer.h:23
inet::SimpleClockSynchronizer::synchronizationIntervalParameter
cPar * synchronizationIntervalParameter
Definition: SimpleClockSynchronizer.h:25
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
inet::SimpleClockSynchronizer::synchronizationAccuracyParameter
cPar * synchronizationAccuracyParameter
Definition: SimpleClockSynchronizer.h:26
inet::SimpleClockSynchronizer::synhronizationTimer
cMessage * synhronizationTimer
Definition: SimpleClockSynchronizer.h:22