Spec-Zone.ru › Qt 5.13

Класс 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, const QVariant &arg1 = QVariant(), const QVariant &arg2 = QVariant(), const QVariant &arg3 = QVariant(), const QVariant &arg4 = QVariant(), const QVariant &arg5 = QVariant(), const QVariant &arg6 = QVariant(), const QVariant &arg7 = QVariant(), const QVariant &arg8 = QVariant())
QDBusPendingCall asyncCallWithArgumentList(const QString &method, const QList<QVariant> &args)
QDBusMessage call(const QString &method, const QVariant &arg1 = QVariant(), const QVariant &arg2 = QVariant(), const QVariant &arg3 = QVariant(), const QVariant &arg4 = QVariant(), const QVariant &arg5 = QVariant(), const QVariant &arg6 = QVariant(), const QVariant &arg7 = QVariant(), const QVariant &arg8 = QVariant())
QDBusMessage call(QDBus::CallMode mode, const QString &method, const QVariant &arg1 = QVariant(), const QVariant &arg2 = QVariant(), const QVariant &arg3 = QVariant(), const QVariant &arg4 = QVariant(), const QVariant &arg5 = QVariant(), const QVariant &arg6 = QVariant(), const QVariant &arg7 = QVariant(), const QVariant &arg8 = QVariant())
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, const QVariant &arg1 = QVariant(), const QVariant &arg2 = QVariant(), const QVariant &arg3 = QVariant(), const QVariant &arg4 = QVariant(), const QVariant &arg5 = QVariant(), const QVariant &arg6 = QVariant(), const QVariant &arg7 = QVariant(), const QVariant &arg8 = QVariant())

Вызывает метод method в этом интерфейсе и передает параметры этой функции методу.

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

Эта функция может использоваться с до 8 параметров, передаваемых в аргументы arg1, arg2, arg3, arg4, arg5, arg6, arg7 и arg8. Если вам нужно более 8 параметров или у вас есть переменное число параметров для передачи, используйте asyncCallWithArgumentList().

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

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" будет содержать одну строку Unicode, второй вызов "ProcessWork" будет содержать одну строку и один массив байтов).

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

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

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

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

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

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

QDBusMessage QDBusAbstractInterface::call(const QString &method, const QVariant &arg1 = QVariant(), const QVariant &arg2 = QVariant(), const QVariant &arg3 = QVariant(), const QVariant &arg4 = QVariant(), const QVariant &arg5 = QVariant(), const QVariant &arg6 = QVariant(), const QVariant &arg7 = QVariant(), const QVariant &arg8 = QVariant())

Вызывает метод method в этом интерфейсе и передает параметры этой функции методу.

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

Эта функция может использоваться с до 8 параметров, передаваемых в аргументы arg1, arg2, arg3, arg4, arg5, arg6, arg7 и arg8. Если вам нужно более 8 параметров или у вас есть переменное число параметров для передачи, используйте callWithArgumentList().

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

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" будет содержать одну строку и один массив байтов).

QDBusMessage QDBusAbstractInterface::call(QDBus::CallMode mode, const QString &method, const QVariant &arg1 = QVariant(), const QVariant &arg2 = QVariant(), const QVariant &arg3 = QVariant(), const QVariant &arg4 = QVariant(), const QVariant &arg5 = QVariant(), const QVariant &arg6 = QVariant(), const QVariant &arg7 = QVariant(), const QVariant &arg8 = QVariant())

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

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

Эта функция может быть использована с максимум 8 параметрами, передаваемыми в аргументах arg1, arg2, arg3, arg4, arg5, arg6, arg7 и arg8. Если вам требуется более 8 параметров или у вас переменное количество параметров для передачи, используйте callWithArgumentList().

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

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.13/qdbusabstractinterface.html

Spec-Zone.ru

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