Spec-Zone.ru › Qt 6.0

Класс QDBusAbstractInterface

Класс QDBusAbstractInterface является базовым классом для всех интерфейсов D-Bus в привязке Qt D-Bus, позволяющим получить доступ к удалённым интерфейсам. Подробнее...

Заголовок: #include <QDBusAbstractInterface>
CMake: find_package(Qt6 COMPONENTS Dbus REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Dbus)
qmake: QT += dbus
Наследует: QObject
Наследуется от:

QDBusConnectionInterface и QDBusInterface

  • Список всех членов, включая унаследованные

Публичные функции

virtual ~QDBusAbstractInterface()
QDBusPendingCall asyncCall(const QString &method, Args &&... args)
QDBusPendingCall asyncCallWithArgumentList(const QString &method, const QList<QVariant> &args)
QDBusMessage call(const QString &method, Args &&... args)
QDBusMessage call(QDBus::CallMode mode, const QString &method, Args &&... args)
QDBusMessage callWithArgumentList(QDBus::CallMode mode, const QString &method, const QList<QVariant> &args)
bool callWithCallback(const QString &method, const QList<QVariant> &args, QObject *receiver, const char *returnMethod, const char *errorMethod)
bool callWithCallback(const QString &method, const QList<QVariant> &args, QObject *receiver, const char *slot)
QDBusConnection connection() const
QString interface() const
bool isValid() const
QDBusError lastError() const
QString path() const
QString service() const
void setTimeout(int timeout)
int timeout() const

Подробное описание

Классы, сгенерированные кодом, также наследуют от QDBusAbstractInterface, все методы, описанные здесь, также действительны для классов, сгенерированных кодом. В дополнение к описанным здесь, классы, сгенерированные кодом, предоставляют члены функций для удалённых методов, которые позволяют проверять правильность параметров и возвращаемых значений во время компиляции, а также соответствие типов свойств и параметров сигналов.

См. также Компилятор QDBus и QDBusInterface.

Документация по функциям-членам

[virtual] QDBusAbstractInterface::~QDBusAbstractInterface()

Освобождает ресурсы этого объекта.

template <typename Args> QDBusPendingCall QDBusAbstractInterface::asyncCall(const QString &method, Args &&... args)

Вызывает метод method в этом интерфейсе и передаёт args методу. Все args должны быть преобразуемы в QVariant.

Параметры call передаются удалённой функции через D-Bus в качестве входных аргументов. Возвращаемый объект QDBusPendingCall может использоваться для получения информации о ответе.

Он может быть использован следующим образом:

QString value = retrieveValue();
QDBusPendingCall pcall = interface->asyncCall(QLatin1String("Process"), value);

QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pcall);

QObject::connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
                this, SLOT(callFinishedSlot(QDBusPendingCallWatcher*)));

Этот пример иллюстрирует вызов функций с 0, 1 и 2 параметрами и иллюстрирует различные типы параметров, переданные в каждом (первый вызов "ProcessWorkUnicode" будет содержать одну строку Юникода, второй вызов "ProcessWork" будет содержать одну строку и один массив байтов).

Примечание: До Qt 5.14 эта функция принимала максимум восемь (8) аргументов.

См. также asyncCallWithArgumentList().

QDBusPendingCall QDBusAbstractInterface::asyncCallWithArgumentList(const QString &method, const QList<QVariant> &args)

Выполняет вызов удалённого метода, указанного параметром method, в этом интерфейсе, используя args в качестве аргументов. Эта функция возвращает объект QDBusPendingCall, который может использоваться для отслеживания состояния ответа и доступа к его содержимому, как только он придёт.

Обычно вызовы должны выполняться с помощью asyncCall().

Примечание: Эта функция безопасна для потоков.

template <typename Args> QDBusMessage QDBusAbstractInterface::call(const QString &method, Args &&... args)

Вызывает метод method в этом интерфейсе и передаёт args методу. Все args должны быть преобразуемы в QVariant.

Параметры call передаются удалённой функции через D-Bus в качестве входных аргументов. Выходные аргументы возвращаются в сообщении ответа QDBusMessage. Если ответ является сообщением об ошибке, lastError() также будет установлено на содержимое сообщения об ошибке.

Он может быть использован следующим образом:

QString value = retrieveValue();
QDBusMessage reply;

QDBusReply<int> api = interface->call(QLatin1String("GetAPIVersion"));
if (api >= 14)
  reply = interface->call(QLatin1String("ProcessWorkUnicode"), value);
else
  reply = interface->call(QLatin1String("ProcessWork"), QLatin1String("UTF-8"), value.toUtf8());

Этот пример иллюстрирует вызов функций с 0, 1 и 2 параметрами и иллюстрирует различные типы параметров, переданные в каждом (первый вызов "ProcessWorkUnicode" будет содержать одну строку Юникода, второй вызов "ProcessWork" будет содержать одну строку и один массив байтов).

Примечание: До Qt 5.14 эта функция принимала максимум восемь (8) аргументов.

См. также callWithArgumentList().

template <typename Args> QDBusMessage QDBusAbstractInterface::call(QDBus::CallMode mode, const QString &method, Args &&... args)

Это перегруженная функция.

Вызывает метод method в этом интерфейсе и передаёт args методу. Все args должны быть преобразуемы в QVariant.

Если mode равно NoWaitForReply, то эта функция вернётся сразу после выполнения вызова, не дожидаясь ответа от удалённого метода. В противном случае, mode указывает, должна ли эта функция активировать цикл событий Qt, ожидая ответа.

Если эта функция повторно входит в цикл событий Qt для ожидания ответа, она исключит ввод пользователя. Во время ожидания она может передавать сигналы и другие вызовы методов в ваше приложение. Поэтому она должна быть готова к обработке повторного входа, когда вызов выполняется с помощью call().

Примечание: До Qt 5.14 эта функция принимала максимум восемь (8) аргументов.

См. также callWithArgumentList().

QDBusMessage QDBusAbstractInterface::callWithArgumentList(QDBus::CallMode mode, const QString &method, const QList<QVariant> &args)

Выполняет вызов удалённого метода, указанного параметром method, в этом интерфейсе, используя args в качестве аргументов. Эта функция возвращает сообщение, которое было получено в качестве ответа, которое может быть обычным сообщением ответа QDBusMessage::ReplyMessage (указывающим на успех) или сообщением об ошибке QDBusMessage::ErrorMessage (если вызов не удался). Параметр mode определяет, как должен быть сделан этот вызов.

Если вызов выполняется успешно, lastError() будет очищен; в противном случае он будет содержать ошибку, возникшую в результате этого вызова.

Обычно вы должны использовать вызовы с помощью call().

Предупреждение: Если вы используете UseEventLoop, ваш код должен быть готов к обработке реентерации: другие вызовы методов и сигналы могут быть доставлены до возврата этой функции, а также другие очереди Qt сигналов и событий.

Примечание: Эта функция безопасна в многопоточном доступе.

bool QDBusAbstractInterface::callWithCallback(const QString &method, const QList<QVariant> &args, QObject *receiver, const char *returnMethod, const char *errorMethod)

Выполняет вызов удаленного метода, указанного параметром method, на этом интерфейсе, используя args в качестве аргументов. Эта функция возвращает значение сразу после помещения вызова в очередь. Ответ от удаленной функции передаётся в returnMethod на объекте receiver. Если произошла ошибка, вместо этого вызывается errorMethod на объекте receiver.

Эта функция возвращает true если помещение в очередь прошло успешно. Она не указывает, что выполненный вызов был успешен. Если произошла ошибка, вызывается errorMethod. Если помещение в очередь завершилось неудачно, функция возвращает false и ни один слот не будет вызван.

returnMethod должен иметь в качестве параметров типы, возвращаемые вызовом функции. Дополнительно, он может иметь параметр QDBusMessage в качестве последнего или единственного параметра. errorMethod должен иметь QDBusError в качестве единственного параметра.

См. также QDBusError и QDBusMessage.

bool QDBusAbstractInterface::callWithCallback(const QString &method, const QList<QVariant> &args, QObject *receiver, const char *slot)

Это перегруженный метод.

Этот метод устарел. Используйте перегруженный вариант.

Выполняет вызов удаленного метода, указанного параметром method, на этом интерфейсе, используя args в качестве аргументов. Эта функция возвращает значение сразу после помещения вызова в очередь. Ответ от удалённой функции или любые ошибки, которые она генерирует, доставляются в слот slot на объекте receiver.

Эта функция возвращает true если помещение в очередь прошло успешно; она не указывает, что вызов был успешным. Если произошла ошибка, слот вызывается с сообщением об ошибке. lastError() не будет установлено в этих обстоятельствах.

См. также QDBusError и QDBusMessage.

QDBusConnection QDBusAbstractInterface::connection() const

Возвращает соединение, с которым связан этот интерфейс.

QString QDBusAbstractInterface::interface() const

Возвращает имя этого интерфейса.

bool QDBusAbstractInterface::isValid() const

Возвращает true если это действительная ссылка на удалённый объект. Возвращает false если при создании этого интерфейса произошла ошибка (например, если удалённое приложение не существует).

Примечание: при работе с удалёнными объектами не всегда возможно определить, существует ли он при создании QDBusInterface.

QDBusError QDBusAbstractInterface::lastError() const

Возвращает ошибку, возникшую при последней операции, или ошибку с недопустимым значением, если последняя операция не привела к ошибке.

QString QDBusAbstractInterface::path() const

Возвращает путь объекта, с которым связан этот интерфейс.

QString QDBusAbstractInterface::service() const

Возвращает имя службы, с которой связан этот интерфейс.

void QDBusAbstractInterface::setTimeout(int timeout)

Устанавливает таймаут в миллисекундах для всех будущих вызовов DBus до значения timeout. -1 означает значение таймаута DBus по умолчанию (обычно 25 секунд).

См. также timeout().

int QDBusAbstractInterface::timeout() const

Возвращает текущее значение таймаута в миллисекундах. -1 означает значение таймаута DBus по умолчанию (обычно 25 секунд).

См. также setTimeout().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qdbusabstractinterface.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API