DtkCore
DTK Core module
|
扩展DBus接口, 继承自QDBusAbstractInterface 更多...
Public 槽 | |
void | startServiceProcess () |
启动服务进程 | |
信号 | |
void | serviceValidChanged (const bool valid) const |
服务是否有效状态改变信号 | |
void | serviceStartFinished (const quint32 ret) const |
服务启动完成通知信号 | |
void | propertyChanged (const QString &propertyName, const QVariant &value) |
属性改变信号 | |
void | propertyInvalidated (const QString &propertyName) |
属性失效通知信号 | |
void | asyncPropertyFinished (const QString &propertyName) |
异步获取属性完成通知信号 | |
void | asyncSetPropertyFinished (const QString &propertyName) |
异步设置属性完成通知信号 | |
void | asyncGetAllPropertiesFinished () |
异步获取所有属性完成的通知信号 | |
Public 成员函数 | |
bool | sync () const |
获取是否同步 | |
void | setSync (bool sync) |
设置是否同步 | |
void | setSync (bool sync, bool autoStart) |
设置是否同步和自启动 | |
bool | useCache () const |
获取是否使用缓存 | |
void | setUseCache (bool useCache) |
设置是否使用缓存 | |
void | getAllProperties () |
获取所有属性 | |
QDBusError | lastExtendedError () const |
获取上一次的错误 | |
Protected 成员函数 | |
DDBusExtendedAbstractInterface (const QString &service, const QString &path, const char *interface, const QDBusConnection &connection, QObject *parent) | |
构造函数 | |
void | connectNotify (const QMetaMethod &signal) |
信号连接通知函数 | |
void | disconnectNotify (const QMetaMethod &signal) |
信号断开连接通知函数 | |
QVariant | internalPropGet (const char *propname, void *propertyPtr) |
内部属性获取函数 | |
void | internalPropSet (const char *propname, const QVariant &value, void *propertyPtr) |
内部属性设置函数 | |
属性 | |
bool | sync |
是否同步获取属性 | |
bool | useCache |
是否使用缓存 | |
扩展DBus接口, 继承自QDBusAbstractInterface
和QDBusAbstractInterface相比, 该类连接了org.freedesktop.DBus.Properties接口, 提供了异步访问属性的接口, 可以方便地通过此类进行异步DBus通信.
同时此类提供了属性改变信号的分发和中继.
|
protected |
构造函数
[in] | service | 该interface属于的服务 |
[in] | path | 该interface属于的对象路径 |
[in] | interface | 该interface实际连接的接口 |
[in] | connection | 用于连接该interface的DBus连接 |
[in] | parent | 父对象 |
|
signal |
|
signal |
异步获取属性完成通知信号
[in] | propertyName | 获取成功的属性名 |
|
signal |
异步设置属性完成通知信号
[in] | propertyName | 设置成功的属性名 |
|
protected |
信号连接通知函数
[in] | signal | 连接到该对象的信号 |
该函数重写了QObject的connectNotify函数, 当有某一个信号连接到该对象的时候, 该函数就会被调用.
|
protected |
信号断开连接通知函数
[in] | signal | 断连的信号 |
该函数重写了QObject的disconnectNotify函数, 当有某一个连接到该对象的信号断连时, 该函数就会被调用.
void DDBusExtendedAbstractInterface::getAllProperties | ( | ) |
获取所有属性
该方法会调用org.freedesktop.DBus.Properties接口的GetAll方法, 获取所有属性并且发送属性改变信号, 如果是同步模式(sync为true), 该方法会使用同步调用call.
sync为false的时候会使用异步调用asyncCall.
|
protected |
|
protected |
|
inline |
获取上一次的错误
|
signal |
属性改变信号
[in] | propertyName | 改变的属性名 |
[in] | value | 改变后的属性值 |
|
signal |
属性失效通知信号
[in] | propertyName | 失效的属性名 |
该信号会在DBus属性改变但是本地反序列化失败的情况下发出.
|
signal |
服务启动完成通知信号
[in] | ret | 启动服务的返回值 |
启动服务是调用org.freedesktop.DBus服务的/路径的StartServiceByName方法, ret为StartServiceByName的返回值.
|
signal |
服务是否有效状态改变信号
[in] | valid | 服务是否有效 |
void DDBusExtendedAbstractInterface::setSync | ( | bool | sync | ) |
void DDBusExtendedAbstractInterface::setSync | ( | bool | sync, |
bool | autoStart | ||
) |
|
inline |
设置是否使用缓存
|
slot |
启动服务进程
该函数会调用org.freedesktop.DBus的服务的/路径的StartServiceByName方法启动DDBusExtendedAbstractInterface对应的Service.
|
inline |
获取是否同步
|
inline |
获取是否使用缓存
|
readwrite |
是否同步获取属性
当sync为false的时候, 在调用属性的get函数的时候会一直返回空值, 解决方法是监听属性的changed信号并自行保存一份缓存, 让changed信号修改这个缓存.
|
readwrite |
是否使用缓存
如果使用缓存, 在内部获取属性的时候将不再进行DBus调用更新属性.