Spec-Zone.ru › Qt 5.15

Класс QDBusAbstractInterface

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

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

QDBusConnectionInterface и QDBusInterface

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

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

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

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, 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.

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 Event Loop, ожидая ответа.

Если эта функция возвращается в Qt event loop, чтобы дождаться ответа, она исключит ввод пользователя. Во время ожидания она может посылать сигналы и вызовы других методов в вашу программу. Поэтому она должна быть готова обрабатывать повторное вхождение, когда вызов осуществляется с помощью 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 определяет, как этот вызов должен быть выполнен.

END_OF_DOCUMENT_MARKER

Если вызов выполняется успешно, 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.15/qdbusabstractinterface.html

Spec-Zone.ru

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