LeechCraft  0.6.70-18450-gabe19ee3b0
Modular cross-platform feature rich live environment.
process.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 <coroutine>
12 #include <QMetaObject>
14 #include "../threadsconfig.h"
15 
16 class QProcess;
17 
18 namespace LC::Util::detail
19 {
21  {
22  QProcess& Process_;
23 
24  RaiiSignalConnection FinishedConn_ {};
25  RaiiSignalConnection ErrorConn_ {};
26 
27  bool await_ready () const noexcept;
28  void await_suspend (std::coroutine_handle<> handle) noexcept;
29  void await_resume () const noexcept;
30  };
31 }
32 
33 namespace LC
34 {
35  UTIL_THREADS_API Util::detail::ProcessAwaiter operator co_await (QProcess& process);
36 }
#define UTIL_THREADS_API
Definition: threadsconfig.h:16
STL namespace.
auto Tup2 &&tup2 noexcept
Definition: ctstringutils.h:68