qt5base-lts/src/dbus/qdbuspendingcall.h
Luca Di Sera e2fef733be Replace usages of Q_CLANG_QDOC with Q_QDOC
To allow the user to customize the C++ code that QDoc sees, so as to be
able to work-around some limitations on QDoc itself, QDoc defines two
symbols: Q_QDOC and Q_CLANG_QDOC, both of which are "true" during an
entire execution of QDoc.

At a certain point in time, QDoc allowed the user the choice between a
custom C++ parser and a Clang based one.

The Q_QDOC symbol would always be defined while the Q_CLANG_QDOC symbol
would be defined only when the Clang based parser was chosen.

In more recent times, QDoc always uses a Clang based parser, such that
both Q_CLANG_QDOC and Q_QDOC are always defined, making them equivalent.

To avoid using different symbols, and the possible confusion and
fragmentation that derives from it, all usages of Q_CLANG_QDOC are now
replaced by the equivalent usages of Q_QDOC.

Change-Id: I5810abb9ad1016a4c5bbea99acd03381b8514b3f
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2022-10-21 09:48:36 +02:00

86 lines
2.2 KiB
C++

// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef QDBUSPENDINGCALL_H
#define QDBUSPENDINGCALL_H
#include <QtDBus/qtdbusglobal.h>
#include <QtDBus/qdbusmessage.h>
#include <QtCore/qobject.h>
#include <QtCore/qshareddata.h>
#ifndef QT_NO_DBUS
QT_BEGIN_NAMESPACE
class QDBusConnection;
class QDBusError;
class QDBusPendingCallWatcher;
class QDBusPendingCallPrivate;
class Q_DBUS_EXPORT QDBusPendingCall
{
public:
QDBusPendingCall(const QDBusPendingCall &other);
~QDBusPendingCall();
QDBusPendingCall &operator=(QDBusPendingCall &&other) noexcept { swap(other); return *this; }
QDBusPendingCall &operator=(const QDBusPendingCall &other);
void swap(QDBusPendingCall &other) noexcept { d.swap(other.d); }
#ifndef Q_QDOC
// pretend that they aren't here
bool isFinished() const;
void waitForFinished();
bool isError() const;
bool isValid() const;
QDBusError error() const;
QDBusMessage reply() const;
#endif
static QDBusPendingCall fromError(const QDBusError &error);
static QDBusPendingCall fromCompletedCall(const QDBusMessage &message);
protected:
QExplicitlySharedDataPointer<QDBusPendingCallPrivate> d;
friend class QDBusPendingCallPrivate;
friend class QDBusPendingCallWatcher;
friend class QDBusConnection;
QDBusPendingCall(QDBusPendingCallPrivate *dd);
private:
QDBusPendingCall(); // not defined
};
Q_DECLARE_SHARED(QDBusPendingCall)
class QDBusPendingCallWatcherPrivate;
class Q_DBUS_EXPORT QDBusPendingCallWatcher: public QObject, public QDBusPendingCall
{
Q_OBJECT
public:
explicit QDBusPendingCallWatcher(const QDBusPendingCall &call, QObject *parent = nullptr);
~QDBusPendingCallWatcher();
#ifdef Q_QDOC
// trick qdoc into thinking this method is here
bool isFinished() const;
#endif
void waitForFinished(); // non-virtual override
Q_SIGNALS:
void finished(QDBusPendingCallWatcher *self = nullptr);
private:
Q_DECLARE_PRIVATE(QDBusPendingCallWatcher)
Q_PRIVATE_SLOT(d_func(), void _q_finished())
};
QT_END_NAMESPACE
#endif // QT_NO_DBUS
#endif