16 #ifndef ALEXA_CLIENT_SDK_AVSCOMMON_UTILS_INCLUDE_AVSCOMMON_UTILS_TIMING_MULTITIMER_H_ 17 #define ALEXA_CLIENT_SDK_AVSCOMMON_UTILS_INCLUDE_AVSCOMMON_UTILS_TIMING_MULTITIMER_H_ 21 #include <condition_variable> 84 bool executeTimer() noexcept;
92 bool hasNextLocked(
std::unique_lock<
std::mutex>& lock) noexcept;
102 std::condition_variable m_waitCondition;
105 std::mutex m_waitMutex;
108 threading::TaskThread m_timerThread;
111 std::multimap<TimePoint,
Token> m_timers;
114 std::map<
Token,
std::pair<TimePoint,
std::function<
void()>>> m_tasks;
120 bool m_isBeingDestroyed;
131 #endif // ALEXA_CLIENT_SDK_AVSCOMMON_UTILS_INCLUDE_AVSCOMMON_UTILS_TIMING_MULTITIMER_H_ Definition: CapabilityConfiguration.h:190
void cancelTask(Token token) noexcept
Token submitTask(const std::chrono::milliseconds &delay, std::function< void()> task) noexcept
Whether or not curl logs should be emitted.
Definition: AVSConnectionManager.h:36
Definition: MultiTimer.h:39
const
Definition: upload.py:398
uint64_t Token
Alias for the token used to identify a task. This can be used to cancel a task execution.
Definition: MultiTimer.h:42
static std::shared_ptr< MultiTimer > createMultiTimer() noexcept