dbus-glib示例说明

上传人:简****9 文档编号:116857041 上传时间:2019-11-17 格式:PPT 页数:21 大小:706KB
返回 下载 相关 举报
dbus-glib示例说明_第1页
第1页 / 共21页
dbus-glib示例说明_第2页
第2页 / 共21页
dbus-glib示例说明_第3页
第3页 / 共21页
dbus-glib示例说明_第4页
第4页 / 共21页
dbus-glib示例说明_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《dbus-glib示例说明》由会员分享,可在线阅读,更多相关《dbus-glib示例说明(21页珍藏版)》请在金锄头文库上搜索。

1、dbus-glib示例说明 Copyright2010NeusoftCorporatio 一、dbus-glib简介 二、如何高效地完成编码 三、如何快捷地进行测试 一、dbus-glib简介 1、dbus是什么? D-BUS本质上是进程间通信(inter- processcommunication)(IPC)的一个实现 。 D-BUS正在freedesktop.org的保护下进行开 发,在那里,来自GNOME、KDE以及其他组 织的对此感兴趣的成员参与了设计与实现 。 (Freedesktop.org是一项帮助在不同的 XWindow桌面例如GNOME,KDE或者 XFCE之间实现互操作和共

2、享技术的计划 。) Meego架构 一、dbus-glib简介 2、dbus的总线 典型的D-BUS设置将由几个总线构成。 将有一个持久的系统总线(systembus),它 在引导时就会启动。这个总线由操作系统和后 台进程使用,安全性非常好,以使得任意的应 用程序不能欺骗系统事件。 还将有很多会话总线(sessionbuses),这些总 线当用户登录后启动,属于那个用户私有。它 是用户的应用程序用来通信的一个会话总线。 当然,如果一个应用程序需要接收来自系统总 线的消息,它不如直接连接到系统总线不 过,它可以发送的消息将是受限的。 一、dbus-glib简介 3、dbus的对象 本质上,D-B

3、US是一个对等(peer-to- peer)的协议每个消息都有一个源和 一个目的。这些地址被指定为对象路径。 概念上,所有使用D-BUS的应用程序都包括 一组对象,消息发送到或者发送自特定对 象不是应用程序这些对象由对象 路径来标识。 一、dbus-glib简介 4、dbus的消息 在 D-BUS 中有四种类型的消息:方法调用(method calls)、方法返回(method returns)、信号(signals )和错误(errors)。要执行 D-BUS 对象的方法,您需 要向对象发送一个方法调用消息。它将完成一些处理 并返回一个方法返回消息或者错误消息。信号的不同 之处在于它们不返回

4、任何内容:既没有“信号返回”消 息,也没有任何类型的错误消息。 消息也可以有任意的参数。参数是强类型的,类型的 范围是从基本的非派生类型(布尔(booleans)、字节 (bytes)、整型(integers)到高层次数据结构(字 符串(strings)、数组( arrays)和字典(dictionaries )。 一、dbus-glib简介 5、dbus的服务 服务(Services) 是 D-BUS 的最高层次抽象, 它们的实现当前还在不断发展变化。应用程 序可以通过一个总线来注册一个服务,如果 成功,则应用程序就已经 获得 了那个服务。 其他应用程序可以检查在总线上是否已经存 在一个特定

5、的服务,如果没有可以要求总线 启动它。服务抽象的细节 尤其是服务活 化 当前正处于发展之中,应该会有变化 。 一、dbus-glib简介 6、什么是GLib GLib是GTK+和GNOME工程的基础底层核心程 序库,是一个综合用途的实用的轻量级的C程 序库,它提供C语言的常用的数据结构的定义 、相关的处理函数,有趣而实用的宏,可移 植的封装和一些运行时机能,如事件循环、 线程、动态调用、对象系统等的API。它能够 在类UNIX的操作系统平台(如LINUX, HP- UNIX等),WINDOWS,OS2和BeOS等操作系 统台上运行。 一、dbus-glib简介 7、什么是GObject对象系统

6、 简单的说,GObject对象系统是一个建立在GLIB基础上 的,用C语言完成的,具有跨平台特色的、灵活的、可 扩展的、非常容易映射到其它语言的面向对象的框架 。如果你是一个C语言的执着的追随者,你没有理由不 研究一下它。 GType 是GLib 运行时类型认证和管理系统。GType API 是GObject的基础系统,所以理解GType是理解GObject 的关键。Gtype提供了注册和管理所有基本数据类型、 用户定义对象和界面类型的技术实现。(注意:在运 用任一GType和GObject函数之前必需运行g_type_init() 函数来初始化类型系统。) 在GObject系统中,信号是一种

7、定制对象行为的手段, 同时也是一种多种用途的通知机制。 一、dbus-glib简介 8、GObject系统中对象的定义 在GObject系统中,对象由三个部分组成: 对象的ID标识 (唯一,无符号长整型,所有此类对象共同的标识 ); 对象的类结构 (唯一,结构型,由对象的所有实例共同拥有); 对象的实例 (多个,结构型,对象的具体实现)。 二、如何高效地完成编码 1、dbus-glib的编译结构 server if.xml busserver.hmarshal.h marshal.c marshal.list server.c dbus-binding-tool glib-genmarshal

8、 二、如何高效地完成编码 2、示例代码说明 服务端:server 客户端:client 二、如何快捷地进行测试 1、使用d-feet确认dbus接口 二、如何快捷地进行测试 1、使用d-feet确认dbus接口 二、如何快捷地进行测试 2、使用dbus-send调用dbus接口 dbus-send -session -print-reply -dest=service.object /com/neusoft/service com.neusoft.service.GetDevMgrInfo 二、如何快捷地进行测试 2、使用dbus-send调用dbus接口 dbus-send -session -print-reply -dest=service.object /com/neusoft/service com.neusoft.service.GetDevState int32:1 二、如何快捷地进行测试 2、使用dbus-monitor监视dbus Copyright2010NeusoftCorporation

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号