DBus-Glib 使用教程 DBus-Glib 是 GNU 标准库,在 Dbus 接口上封装,方便上层服务与应用更好的使用。以下是对 DBus-Glib 的使用框架的详细介绍: 一、背景介绍 Phoenix 平台从安全的角度考虑,广泛的使用 DBUS 进行进程间通讯。DBus 总线分为系统总线与会话总线两类,两者之前不能互相通信,所以任何应用程序不能欺骗系统事件,安全性很好。 二、Dbus-glib 介绍 Dbus-glib 是 GNU 标准库,在 Dbus 接口上封装,方便上层服务与应用更好的使用。其形如一个 DBUS 代理服务器,由它进行所有 DBUS 消息的遍历与转发,服务端与消息发送端只需要向 DBUS deamon 申请注册唯一的 DBUS name 、绑定 GOBJECT 后,DBUS deamon 就会将申请连到该 DBUS name 的 DBUS 信息转发给指定应用。 Dbus-glib 的结构图如下: 所有的需要进行 DBUS 相互通讯的程序都只与 Dbus daemon 进行通讯。 函数调用流程: * 服务端申请一个 GObject,绑定以下信息:Dbus name:A,Dbus object:B,Dbus interface:C,Method :D * 注册到 dbus daemon 中,其中 D 设置为回调函数 * 客户端向 dbus daemon 申请调用注册信息为:Dbus name:A,Dbus object:B,Dbus interface:C 的 D 函数 * dbus daemon 收到客户端的消息后,查询是否存在该注册信息的回调函数,如果找不到 daemon 会产生错误消息,作为应答消息给客户端。 * 找到则且执行该回调函数,将结果返回给客户端。 消息发送流程: * 消息发送端申请一个 GObject,绑定以下信息:Dbus name:A,Dbus object:B,Dbus interface:C,signal :D * 注册到 dbus daemon 中 * 消息接收端向 dbus daemon 申请绑定注册信息为:Dbus name:A,Dbus object:B,Dbus interface:C signal 为 D 的消息回调函数 * dbus daemon 收到消息发送端发出的 DBUS 消息后,查询是否存在该消息的绑定回调函数,且执行该回调函数。 三、通过 Dbus-glib 写一个服务端 dbus-glib 定义向 dbus daemon 申请一个注册信息的形式为 GObject(C 语言)的对象。 写一个 XML 先学习怎么使用内置的 xml 文件自动创建出易于使用的 dbus 代理对象。 XML 文件描述了一个名为“HelloWorld”,输入参数为 char *,输出参数为 char*[]的被调用的函数。dbus 的接口描述文件统一采用 utf-8 编码。 type 域数据类型定义如下: * a ARRAY 数组 * b BOOLEAN 布尔值 * d DOUBLE IEEE 754 双精度浮点数 * g SIGNATURE 类型签名 * i INT32 32 位有符号整数 * n INT16 16 位有符号整数 * o OBJECT_PATH 对象路径 * q UINT16 16 位无符号整数 * s STRING 零结尾的 UTF-8 字符串 * t UINT64 64 位无符号整数 * u UINT32 32 位无符号整数 * v VARIANT 可以放任意数据类型的容器,数据中包含类型信息。 * x INT64 64 位有符号整数 * y BYTE 8 位无符号整数 例如 "(i(ii))" 定义结构时使用。例如 "{}" 定义键-值对时使用。例如















剩余15页未读,继续阅读


- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 打破科技成果转化瓶颈,赋能产业园区升级.docx
- 高校成果转化新生态:构建价值网络的数智引擎.docx
- 高校科技成果转化困局与生态协同机制构建.docx
- 高校科技成果转化生态赋能新路径.docx
- 高校科技成果转化数智生态构建之道.docx
- 高校院所科技成果转化数智服务平台:构建生态价值网络.docx
- 高校院所科技成果转化数智服务平台:生态赋能创新转化.docx
- 高校院所科技成果转化数智服务平台:构建协同创新新生态.docx
- 高校院所科技成果转化数智服务平台:生态赋能型创新报告.docx
- 高校院所科技成果转化数智服务平台:生态赋能型营销软文.docx
- 高校院所科技成果转化数智服务平台赋能创新生态建设.docx
- 高校院所科技成果转化数智服务平台推动科技创新与产业发展深度融合.docx
- pytorch实现两个轻量级分割网络模型.zip
- 关于构建区域科技成果转化服务体系的建议.docx
- 构建高校院所科技成果转化新生态的数智化平台.docx
- 技术经纪人如何突破转化瓶颈.docx


