LeechCraft 0.6.70-16373-g319c272718
Modular cross-platform feature rich live environment.
Loading...
Searching...
No Matches
timer.h
Go to the documentation of this file.
1/**********************************************************************
2 * LeechCraft - modular cross-platform feature rich internet client.
3 * Copyright (C) 2006-2014 Georg Rudoy
4 *
5 * Distributed under the Boost Software License, Version 1.0.
6 * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7 **********************************************************************/
8
9#pragma once
10
11#include <chrono>
12#include <coroutine>
13#include <Qt>
14#include "../threadsconfig.h"
15
16namespace LC::Util
17{
18 namespace detail
19 {
21 {
22 std::chrono::milliseconds Duration_;
23 Qt::TimerType Precision_;
24
25 bool await_ready () const noexcept;
26 void await_suspend (std::coroutine_handle<> handle) noexcept;
27 void await_resume () const noexcept;
28 };
29 }
30
31 template<Qt::TimerType Precision>
33 {
34 std::chrono::milliseconds Duration_;
35
36 auto operator co_await () const
37 {
38 return detail::TimerAwaiter { Duration_, Precision };
39 }
40 };
41
45}
46
47namespace LC
48{
49 UTIL_THREADS_API Util::detail::TimerAwaiter operator co_await (std::chrono::milliseconds duration);
50}
WithPrecision< Qt::PreciseTimer > Precisely
Definition timer.h:42
WithPrecision< Qt::VeryCoarseTimer > VeryCoarsely
Definition timer.h:44
WithPrecision< Qt::CoarseTimer > Coarsely
Definition timer.h:43
Definition constants.h:15
STL namespace.
std::chrono::milliseconds Duration_
Definition timer.h:34
bool await_ready() const noexcept
Definition timer.cpp:14
std::chrono::milliseconds Duration_
Definition timer.h:22
Qt::TimerType Precision_
Definition timer.h:23
void await_resume() const noexcept
Definition timer.cpp:24
void await_suspend(std::coroutine_handle<> handle) noexcept
Definition timer.cpp:19
#define UTIL_THREADS_API