dbus-glib示例说明

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、dbus-glib简介
5、dbus的服务
• 服务(Services) 是 D-BUS 的最高层次抽象, 它们的实现当前还在不断发展变化。应用程 序可以通过一个总线来注册一个服务,如果 成功,则应用程序就已经 获得 了那个服务。 其他应用程序可以检查在总线上是否已经存 在一个特定的服务,如果没有可以要求总线 启动它。服务抽象的细节 —— 尤其是服务活 化 —— 当前正处于发展之中,应该会有变化。
一、dbus-glib简介
4、dbus的消息 • 在 D-BUS 中有四种类型的消息:方法调用(method calls)、方法返回(method returns)、信号(signals) 和错误(errors)。要执行 D-BUS 对象的方法,您需要 向对象发送一个方法调用消息。它将完成一些处理并 返回一个方法返回消息或者错误消息。信号的不同之 处在于它们不返回任何内容:既没有“信号返回”消 息,也没有任何类型的错误消息。 • 消息也可以有任意的参数。参数是强类型的,类型的 范围是从基本的非派生类型(布尔(booleans)、字节 (bytes)、整型(integers))到高层次数据结构(字 符串(strings)、数组( arrays)和字典 (dictionaries))。
一、dbus-glib简介
7、什么是GObject对象系统 • 简单的说,GObject对象系统是一个建立在GLIB基础上 的,用C语言完成的,具有跨平台特色的、灵活的、可 扩展的、非常容易映射到其它语言的面向对象的框架。 如果你是一个C语言的执着的追随者,你没有理由不研 究一下它。 • GType 是GLib 运行时类型认证和管理系统。GType API 是GObject的基础系统,所以理解GType是理解GObject 的关键。Gtype提供了注册和管理所有基本数据类型、 用户定义对象和界面类型的技术实现。(注意:在运 用任一GType和GObject函数之前必需运行g_type_init() 函数来初始化类型系统。) • 在GObject系统中,信号是一种定制对象行为的手段, 同时也是一种多种用途的通知机制。
一、dbus-glib简介
3、dbus的对象
Байду номын сангаас
本质上,D-BUS是一个对等(peer-topeer)的协议——每个消息都有一个源和 一个目的。这些地址被指定为对象路径。 概念上,所有使用D-BUS的应用程序都包括 一组对象,消息发送到或者发送自特定对 象——不是应用程序——这些对象由对象 路径来标识。
dbus-glib示例说明
Copyright©2010NeusoftCorporatio
– 一、dbus-glib简介 – 二、如何高效地完成编码 – 三、如何快捷地进行测试
一、dbus-glib简介
1、dbus是什么?
• D-BUS本质上是进程间通信(interprocesscommunication)(IPC)的一个实现。 • D-BUS正在的保护下进行开 发,在那里,来自GNOME、KDE以及其他组 织的对此感兴趣的成员参与了设计与实现。 (是一项帮助在不同的 XWindow桌面——例如GNOME,KDE或者 XFCE——之间实现互操作和共享技术的计 划。)
一、dbus-glib简介
6、什么是GLib
• GLib是GTK+和GNOME工程的基础底层核心程 序库,是一个综合用途的实用的轻量级的C程 序库,它提供C语言的常用的数据结构的定义、 相关的处理函数,有趣而实用的宏,可移植 的封装和一些运行时机能,如事件循环、线 程、动态调用、对象系统等的API。它能够在 类UNIX的操作系统平台(如LINUX, HP-UNIX 等),WINDOWS,OS2和BeOS等操作系统台 上运行。
一、dbus-glib简介
8、GObject系统中对象的定义
在GObject系统中,对象由三个部分组成: • 对象的ID标识 (唯一,无符号长整型,所有此类对象共同的标 识); • 对象的类结构 (唯一,结构型,由对象的所有实例共同拥有); • 对象的实例 (多个,结构型,对象的具体实现)。
二、如何高效地完成编码
1、dbus-glib的编译结构
if.xml
dbus-binding-tool
marshal.list
glib-genmarshal
busserver.h server.c
marshal.h marshal.c
server
二、如何高效地完成编码 2、示例代码说明
服务端:server 客户端:client
二、如何快捷地进行测试 2、使用dbus-monitor监视dbus
Copyright©2010NeusoftCorporation
二、如何快捷地进行测试 2、使用dbus-send调用dbus接口
dbus-send --session --print-reply --dest=service.object /com/neusoft/service com.neusoft.service.GetDevState int32:1
Meego架构
一、dbus-glib简介
2、dbus的总线
• 典型的D-BUS设置将由几个总线构成。 • 将有一个持久的系统总线(systembus),它在 引导时就会启动。这个总线由操作系统和后台 进程使用,安全性非常好,以使得任意的应用 程序不能欺骗系统事件。 • 还将有很多会话总线(sessionbuses),这些总 线当用户登录后启动,属于那个用户私有。它 是用户的应用程序用来通信的一个会话总线。 当然,如果一个应用程序需要接收来自系统总 线的消息,它不如直接连接到系统总线——不 过,它可以发送的消息将是受限的。
二、如何快捷地进行测试
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
相关文档
最新文档