#include <manual_runtime.hpp>
|
using | Callback = std::function< void(Clock::time_point)> |
|
|
| ManualRuntime (Clock::time_point init) |
|
void | trigger (Clock::time_point tp) |
|
void | trigger (Clock::duration d) |
|
void | reset (Clock::time_point tp) |
|
Clock::time_point | next () const |
|
void | schedule (Clock::time_point, const Callback &, const void *=nullptr) override |
|
void | schedule (Clock::duration, const Callback &, const void *=nullptr) override |
|
void | cancel (const void *scope) override |
|
Clock::time_point | now () const override |
|
|
using | time_index = boost::multi_index::ordered_non_unique< boost::multi_index::tag< by_deadline >, boost::multi_index::member< ScheduledCallback, Clock::time_point, &ScheduledCallback::deadline > > |
|
using | scope_index = boost::multi_index::hashed_non_unique< boost::multi_index::tag< by_scope >, boost::multi_index::member< ScheduledCallback, const void *, &ScheduledCallback::scope > > |
|
using | queue_type = boost::multi_index_container< ScheduledCallback, boost::multi_index::indexed_by< time_index, scope_index > > |
|
ManualRuntime is a manually triggered Runtime implementation. Ensure that time progress is triggered monotonically!
Definition at line 17 of file manual_runtime.hpp.
◆ Callback
using vanetza::Runtime::Callback = std::function<void(Clock::time_point)> |
|
inherited |
◆ queue_type
using vanetza::ManualRuntime::queue_type = boost::multi_index_container<ScheduledCallback, boost::multi_index::indexed_by<time_index, scope_index> > |
|
private |
◆ scope_index
using vanetza::ManualRuntime::scope_index = boost::multi_index::hashed_non_unique< boost::multi_index::tag<by_scope>, boost::multi_index::member<ScheduledCallback, const void*, &ScheduledCallback::scope> > |
|
private |
◆ time_index
using vanetza::ManualRuntime::time_index = boost::multi_index::ordered_non_unique< boost::multi_index::tag<by_deadline>, boost::multi_index::member<ScheduledCallback, Clock::time_point, &ScheduledCallback::deadline> > |
|
private |
◆ ManualRuntime()
vanetza::ManualRuntime::ManualRuntime |
( |
Clock::time_point |
init | ) |
|
|
explicit |
Create runtime
- Parameters
-
init | initialization value of internal clock |
Definition at line 7 of file manual_runtime.cpp.
◆ cancel()
void vanetza::ManualRuntime::cancel |
( |
const void * |
scope | ) |
|
|
overridevirtual |
Cancel all scheduled invocations assigned to certain scope
- Parameters
-
scope | any pointer used as scope at scheduling (nullptr has no effect) |
Implements vanetza::Runtime.
Definition at line 21 of file manual_runtime.cpp.
◆ next()
Clock::time_point vanetza::ManualRuntime::next |
( |
| ) |
const |
Get time point of next scheduled event
- Note
- time point might belong to an expired event, i.e. next() < now()
- Returns
- time point of next event or time_point::max if none
Definition at line 29 of file manual_runtime.cpp.
◆ now()
Clock::time_point vanetza::ManualRuntime::now |
( |
| ) |
const |
|
overridevirtual |
◆ reset()
void vanetza::ManualRuntime::reset |
( |
Clock::time_point |
tp | ) |
|
Reset runtime
Drops all scheduled callbacks and resets internal clock
- Parameters
-
Definition at line 74 of file manual_runtime.cpp.
◆ schedule() [1/2]
void vanetza::ManualRuntime::schedule |
( |
Clock::duration |
d, |
|
|
const Callback & |
cb, |
|
|
const void * |
scope = nullptr |
|
) |
| |
|
overridevirtual |
Schedule callback for later invocation
- Parameters
-
d | duration from now until callback invocation |
cb | callback |
scope | associated scope pointer (used only for identification) |
Implements vanetza::Runtime.
Definition at line 16 of file manual_runtime.cpp.
◆ schedule() [2/2]
void vanetza::ManualRuntime::schedule |
( |
Clock::time_point |
tp, |
|
|
const Callback & |
cb, |
|
|
const void * |
scope = nullptr |
|
) |
| |
|
overridevirtual |
Schedule callback for later invocation
- Parameters
-
tp | invoke callback at this time point |
cb | callback |
scope | associated scope pointer (used only for identification) |
Implements vanetza::Runtime.
Definition at line 11 of file manual_runtime.cpp.
◆ trigger() [1/3]
void vanetza::ManualRuntime::trigger |
( |
| ) |
|
|
private |
◆ trigger() [2/3]
void vanetza::ManualRuntime::trigger |
( |
Clock::duration |
d | ) |
|
Trigger relative time progress
All expired callbacks will be invoked
- Parameters
-
d | advance time by this duration |
Definition at line 51 of file manual_runtime.cpp.
◆ trigger() [3/3]
void vanetza::ManualRuntime::trigger |
( |
Clock::time_point |
tp | ) |
|
Trigger absolute time progress
All expired callbacks will be invoked
- Parameters
-
tp | new time point, has to be greater than now |
Definition at line 43 of file manual_runtime.cpp.
◆ m_now
Clock::time_point vanetza::ManualRuntime::m_now |
|
private |
◆ m_queue
queue_type vanetza::ManualRuntime::m_queue |
|
private |
The documentation for this class was generated from the following files: