contur2
Loading...
Searching...
No Matches
contur::SimulationClock Class Referencefinal

Concrete simulation clock — a simple monotonic tick counter. More...

#include <clock.h>

Inheritance diagram for contur::SimulationClock:
Collaboration diagram for contur::SimulationClock:

Public Member Functions

 SimulationClock ()
 Constructs a new simulation clock initialized to tick 0.
 ~SimulationClock () override
 SimulationClock (const SimulationClock &)=delete
SimulationClockoperator= (const SimulationClock &)=delete
 SimulationClock (SimulationClock &&) noexcept
SimulationClockoperator= (SimulationClock &&) noexcept
Tick now () const noexcept override
 Returns the current simulation tick.
void tick () override
 Advances the simulation clock by one tick.
void reset () override
 Resets the clock to tick 0.
Public Member Functions inherited from contur::IClock
virtual ~IClock ()=default

Private Attributes

std::unique_ptr< Impl > impl_

Detailed Description

Concrete simulation clock — a simple monotonic tick counter.

Stores clock state behind a PIMPL boundary and provides the default clock implementation used by kernel subsystems and demos.

Definition at line 42 of file clock.h.

Constructor & Destructor Documentation

◆ SimulationClock() [1/3]

contur::SimulationClock::SimulationClock ( )

Constructs a new simulation clock initialized to tick 0.

◆ ~SimulationClock()

contur::SimulationClock::~SimulationClock ( )
override

◆ SimulationClock() [2/3]

contur::SimulationClock::SimulationClock ( const SimulationClock & )
delete

◆ SimulationClock() [3/3]

contur::SimulationClock::SimulationClock ( SimulationClock && )
noexcept

Member Function Documentation

◆ now()

Tick contur::SimulationClock::now ( ) const
nodiscardoverridevirtualnoexcept

Returns the current simulation tick.

Returns
Monotonically increasing simulation tick value.

Implements contur::IClock.

◆ operator=() [1/2]

SimulationClock & contur::SimulationClock::operator= ( const SimulationClock & )
delete

◆ operator=() [2/2]

SimulationClock & contur::SimulationClock::operator= ( SimulationClock && )
noexcept

◆ reset()

void contur::SimulationClock::reset ( )
overridevirtual

Resets the clock to tick 0.

Postcondition
now() returns 0.

Implements contur::IClock.

◆ tick()

void contur::SimulationClock::tick ( )
overridevirtual

Advances the simulation clock by one tick.

Postcondition
A subsequent call to now() returns the previous value plus one.

Implements contur::IClock.

Member Data Documentation

◆ impl_

std::unique_ptr<Impl> contur::SimulationClock::impl_
private

Definition at line 71 of file clock.h.


The documentation for this class was generated from the following file: