cRealTimeScheduler Class Reference

API: cRealTimeScheduler Class Reference
API
Inheritance diagram for cRealTimeScheduler:
[legend]

Public Member Functions

 cRealTimeScheduler ()
virtual ~cRealTimeScheduler ()
virtual std::string str () const override
virtual void executionResumed () override
virtual cEventguessNextEvent () override
virtual cEventtakeNextEvent () override
virtual void putBackEvent (cEvent *event) override
Public Member Functions inherited from cScheduler
 cScheduler ()
virtual ~cScheduler ()
virtual void setSimulation (cSimulation *_sim)
cSimulationgetSimulation () const
virtual void endRun ()
Public Member Functions inherited from cObject
 cObject ()
 cObject (const cObject &other)=default
virtual ~cObject ()
virtual const char * getClassName () const
virtual const char * getName () const
bool isName (const char *s) const
virtual const char * getFullName () const
virtual std::string getFullPath () const
virtual std::string getClassAndFullName () const
virtual std::string getClassAndFullPath () const
const cObjectgetThisPtr () const
virtual std::ostream & printOn (std::ostream &os) const
virtual cObjectdup () const
virtual void parsimPack (cCommBuffer *buffer) const
virtual void parsimUnpack (cCommBuffer *buffer)
virtual cObjectgetOwner () const
virtual bool isOwnedObject () const
virtual bool isSoftOwner () const
virtual void forEachChild (cVisitor *v)
cObjectfindObject (const char *name, bool deep=true)
virtual cClassDescriptorgetDescriptor () const
void copyNotSupported () const
Public Member Functions inherited from cISimulationLifecycleListener
virtual ~cISimulationLifecycleListener ()
virtual void listenerAdded ()
virtual void listenerRemoved ()

Protected Member Functions

virtual void startRun () override
Protected Member Functions inherited from cScheduler
virtual void lifecycleEvent (SimulationLifecycleEventType eventType, cObject *details) override
Protected Member Functions inherited from cObject
virtual void take (cOwnedObject *obj)
virtual void drop (cOwnedObject *obj)
void dropAndDelete (cOwnedObject *obj)

Additional Inherited Members

Static Public Member Functions inherited from cISimulationLifecycleListener
static const char * getSimulationLifecycleEventName (SimulationLifecycleEventType eventType)

Description

Real-time scheduler class.

When installed as scheduler using the scheduler-class omnetpp.ini entry, it will synchronize simulation execution to real (wall clock) time.

Operation: a "base time" is determined when startRun() is called. Later on, the scheduler object calls usleep() from takeNextEvent() to synchronize the simulation time to real time, that is, to wait until the current time minus base time becomes equal to the simulation time. Should the simulation lag behind real time, this scheduler will try to catch up by omitting sleep calls altogether.

Scaling is supported via the realtimescheduler-scaling omnetpp.ini entry. For example, if it is set to 2.0, the simulation will try to execute twice as fast as real time.

Constructor & Destructor Documentation

◆ cRealTimeScheduler()

cRealTimeScheduler ( )
inline

Constructor.

◆ ~cRealTimeScheduler()

virtual ~cRealTimeScheduler ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ startRun()

virtual void startRun ( )
overrideprotectedvirtual

Called at the beginning of a simulation run.

Reimplemented from cScheduler.

◆ str()

virtual std::string str ( ) const
overridevirtual

Returns a description that depends on the parametrization of this class.

Reimplemented from cScheduler.

◆ executionResumed()

virtual void executionResumed ( )
overridevirtual

Recalculates "base time" from current wall clock time.

Reimplemented from cScheduler.

◆ guessNextEvent()

virtual cEvent * guessNextEvent ( )
overridevirtual

Returns the first event in the Future Event Set.

Implements cScheduler.

◆ takeNextEvent()

virtual cEvent * takeNextEvent ( )
overridevirtual

Scheduler function – it comes from cScheduler interface. This function synchronizes to real time: before returning the first event from the FES, it waits (using usleep()) until the real time reaches the time of that simulation event.

Implements cScheduler.

◆ putBackEvent()

virtual void putBackEvent ( cEvent * event)
overridevirtual

Puts back the event into the Future Event Set.

Implements cScheduler.