Spec-Zone.ru › Qt 6.1

Класс 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.1/qdbusabstractinterface.html

Spec-Zone.ru

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