14 #include <QDBusPendingCallWatcher> 15 #include <QDBusPendingReply> 21 template<
typename... Rets>
25 std::unique_ptr<QDBusPendingCallWatcher>
Watcher_;
34 return Reply_.isFinished ();
41 &QDBusPendingCallWatcher::finished,
45 template<
typename =
void>
48 template<
typename T>
requires (
sizeof... (Rets) == 0)
51 template<
typename T>
requires (
sizeof... (Rets) == 1)
54 template<
typename T>
requires (
sizeof... (Rets) > 1)
64 if constexpr (
sizeof... (Rets) == 0)
66 else if constexpr (
sizeof... (Rets) == 1)
67 return {
Reply_.value () };
69 return [&]<
size_t... Idxs> (std::index_sequence<Idxs...>) -> std::tuple<Rets...>
71 return {
Reply_.template argumentAt<Idxs> ()... };
72 } (std::make_index_sequence<
sizeof... (Rets)> {});
79 template<
typename... Rets>
88 template<
typename... Rets>
detail::DBusAwaiter< Rets... > Typed(const QDBusPendingCall &asyncCall)
QDBusPendingReply< Rets... > Reply_
constexpr detail::ExprTree< detail::ExprType::LeafStaticPlaceholder, detail::MemberPtrs< Ptrs... > > tuple
Type
Describes the various types of XDG .desktop files.
Either< QDBusError, SuccessType_t > await_resume() const noexcept
DBusAwaiter(const QDBusPendingReply< Rets... > &reply)
requires(sizeof...(Rets)==1) struct SuccessType< T >
SuccessType<>::Type SuccessType_t
bool await_ready() const noexcept
void await_suspend(std::coroutine_handle<> handle) noexcept
requires(sizeof...(Rets) > 1) struct SuccessType< T >
auto Tup2 &&tup2 noexcept
std::unique_ptr< QDBusPendingCallWatcher > Watcher_
requires(sizeof...(Rets)==0) struct SuccessType< T >
A proper void type, akin to unit (or ()) type in functional languages.