Spec-Zone.ru › Qt

Класс 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" будет содержать одну строку Unicode, второй вызов "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" будет содержать одну строку Unicode, второй вызов "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.2/qdbusabstractinterface.html

Spec-Zone.ru

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