9 #include "ActionMessage.hpp"
10 #include "gmlc/networking/AsioContextManager.h"
12 #include <asio/steady_timer.hpp>
20 class MessageTimer:
public std::enable_shared_from_this<MessageTimer> {
22 using time_type = decltype(std::chrono::steady_clock::now());
41 bool updateTimer(int32_t timerIndex, time_type expirationTime);
45 bool addTimeToTimer(int32_t timerIndex, std::chrono::nanoseconds time);
53 std::vector<ActionMessage> buffers;
54 std::vector<time_type> expirationTimes;
57 std::vector<std::shared_ptr<asio::steady_timer>> timers;
59 std::shared_ptr<gmlc::networking::AsioContextManager> contextPtr;
61 decltype(contextPtr->startContextLoop()) loopHandle;
Definition: ActionMessage.hpp:30
Definition: MessageTimer.hpp:20
int32_t addTimer(time_type expirationTime, ActionMessage mess)
Definition: MessageTimer.cpp:40
void updateMessage(int32_t timerIndex, ActionMessage mess)
Definition: MessageTimer.cpp:142
void updateTimerFromNow(int32_t timerIndex, std::chrono::nanoseconds time, ActionMessage mess)
Definition: MessageTimer.cpp:101
void cancelTimer(int32_t index)
Definition: MessageTimer.cpp:65
bool addTimeToTimer(int32_t timerIndex, std::chrono::nanoseconds time)
Definition: MessageTimer.cpp:108
void sendMessage(int32_t timerIndex)
Definition: MessageTimer.cpp:150
void updateTimer(int32_t timerIndex, time_type expirationTime, ActionMessage mess)
Definition: MessageTimer.cpp:85
int32_t addTimerFromNow(std::chrono::nanoseconds time, ActionMessage mess)
Definition: MessageTimer.cpp:35
void cancelAll()
Definition: MessageTimer.cpp:74
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14