1 #ifndef SIM_SIMULATIONOBJECT_H
2 #define SIM_SIMULATIONOBJECT_H
4 #include "SimulationClock.h"
11 * @brief An object in the simulation
13 * Represents a member of the simulation, this can be
14 * either a peripheral or an AVR chip. It contains a
15 * stepping function and can negotiate with the clock
16 * for a specific timing.
18 class SimulationObject
{
20 SimulationObject(SimulationClock
& clock
) : clock(clock
) {}
21 virtual ~SimulationObject() {};
25 * Perform a single simulation step.
27 virtual void step() = 0;
30 SimulationClock
& clock
;
35 #endif /*SIM_SIMULATIONOBJECT_H*/