BPMN-OS
BPMN for optimization and simulation
Loading...
Searching...
No Matches
Metronome.cpp
Go to the documentation of this file.
1
#include "
Metronome.h
"
2
#include "
execution/engine/src/events/ClockTickEvent.h
"
3
#include <thread>
4
5
using namespace
BPMNOS::Execution
;
6
7
Metronome::Metronome
(
unsigned
int
clockTickDuration)
8
{
9
initialize
(clockTickDuration);
10
}
11
12
void
Metronome::initialize
(
unsigned
int
clockTickDuration) {
13
this->clockTickDuration = clockTickDuration;
14
timestamp = std::chrono::system_clock::now();
15
}
16
17
std::shared_ptr<Event>
Metronome::dispatchEvent
( [[maybe_unused]]
const
SystemState
* systemState ) {
18
auto
trigger = timestamp + std::chrono::milliseconds( clockTickDuration );
19
std::this_thread::sleep_until(trigger);
20
timestamp = std::chrono::system_clock::now();
21
22
return
std::make_shared<ClockTickEvent>();
23
}
24
ClockTickEvent.h
Metronome.h
BPMNOS::Execution::Metronome::Metronome
Metronome(unsigned int clockTickDuration=1000)
Definition
Metronome.cpp:7
BPMNOS::Execution::Metronome::dispatchEvent
std::shared_ptr< Event > dispatchEvent(const SystemState *systemState) override
Definition
Metronome.cpp:17
BPMNOS::Execution::Metronome::initialize
void initialize(unsigned int clockTickDuration)
Change clockTickDuration and set timestamp to current time and.
Definition
Metronome.cpp:12
BPMNOS::Execution::SystemState
A class representing the state that the execution or simulation of a given scenario is in.
Definition
SystemState.h:21
BPMNOS::Execution
Definition
Controller.h:9