#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 |
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 |
|
private |
Initial value:
boost::multi_index::indexed_by<time_index, scope_index>>
Definition at line 90 of file manual_runtime.hpp.
◆ scope_index
using vanetza::ManualRuntime::scope_index |
|
private |
Initial value: boost::multi_index::hashed_non_unique<
boost::multi_index::tag<by_scope>,
boost::multi_index::member<ScheduledCallback, const void*, &ScheduledCallback::scope>>
Definition at line 87 of file manual_runtime.hpp.
◆ time_index
using vanetza::ManualRuntime::time_index |
|
private |
Initial value: boost::multi_index::ordered_non_unique<
boost::multi_index::tag<by_deadline>,
boost::multi_index::member<ScheduledCallback, Clock::time_point, &ScheduledCallback::deadline>>
Definition at line 83 of file manual_runtime.hpp.
◆ 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: