Spec-Zone.ru › Qt 5.14

Класс QDBusAbstractInterface

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

Заголовок: #include <QDBusAbstractInterface>
qmake: QT += dbus
С тех пор: Qt 4.2
Наследуется от: QObject
Наследует:

QDBusConnectionInterface и QDBusInterface

Этот класс был представлен в Qt 4.2.

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

Открытые функции

виртуальный ~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()

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

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, this);

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().

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

Эта функция была представлена в Qt 4.5.

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().

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 в качестве единственного параметра.

Эта функция была введена в Qt 4.3.

См. также 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 секунд).

Эта функция была введена в Qt 4.8.

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

int QDBusAbstractInterface::timeout() const

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

Эта функция была введена в Qt 4.8.

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

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

Spec-Zone.ru

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