Класс QDBusAbstractInterface
Класс QDBusAbstractInterface является базовым классом для всех интерфейсов D-Bus в привязке Qt D-Bus, позволяя получить доступ к удалённым интерфейсам. Подробнее...
| Заголовок: | #include <QDBusAbstractInterface> |
| qmake: | QT += dbus |
| С тех пор: | Qt 4.2 |
| Наследует: | QObject |
| Наследуется: |
Открытые функции
| 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 |
- 34 открытых функции унаследованные от QObject
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QObject
- 1 открытый слот, унаследованный от QObject
- 2 сигнала, унаследованные от QObject
- 1 открытая переменная, унаследованная от QObject
- 10 статических открытых членов, унаследованных от QObject
- 9 защищённых функций, унаследованных от QObject
- 2 защищённые переменные, унаследованные от QObject
Подробное описание
Класс QDBusAbstractInterface является базовым классом для всех интерфейсов D-Bus в привязке Qt D-Bus, позволяя получить доступ к удалённым интерфейсам.
Классы, сгенерированные кодом, также наследуют от 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" будет содержать одну строку Unicode, второй вызов "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 Event, ожидая прибытия ответа.
Эта функция может быть использована с до 8 параметров, переданных в аргументы arg1, arg2, arg3, arg4, arg5, arg6, arg7 и arg8. Если вам нужно более 8 параметров или если у вас переменное количество параметров для передачи, используйте callWithArgumentList().
Если эта функция повторно вводит цикл Qt Event для ожидания ответа, она исключит пользовательский ввод. Во время ожидания она может передавать сигналы и другие вызовы методов в ваше приложение. Поэтому она должна быть готова обработать повторный вход, когда выполняется вызов с помощью 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/archives/qt-5.11/qdbusabstractinterface.html