org.freedesktop.DBus 的12个Methods简要说明

本文介绍了 DBus 的核心 API,包括请求和释放名称、启动服务、获取连接信息等操作。DBus 是一种用于进程间通信的协议,这些 API 对于开发者理解和使用 DBus 至关重要。

org.freedesktop.DBus.RequestName (in STRING name, in UINT32 flags, out UINT32 reply)

请求公众名。其中flag定义如下:
DBUS_NAME_FLAG_ALLOW_REPLACEMENT 1
DBUS_NAME_FLAG_REPLACE_EXISTING 2
DBUS_NAME_FLAG_DO_NOT_QUEUE 4

返回值reply定义如下:
DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER 1
DBUS_REQUEST_NAME_REPLY_IN_QUEUE 2
DBUS_REQUEST_NAME_REPLY_EXISTS 3
DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER 4

org.freedesktop.DBus.ReleaseName (in STRING name, out UINT32 reply)

释放公众名。返回值reply定义如下:
DBUS_RELEASE_NAME_REPLY_RELEASED 1
DBUS_RELEASE_NAME_REPLY_NON_EXISTENT 2
DBUS_RELEASE_NAME_REPLY_NOT_OWNER 3

org.freedesktop.DBus.Hello (out STRING unique_name)

一个应用在通过消息总线向其它应用发消息前必须先调用Hello获取自己这个连接的唯一名。返回值就是连接的唯一名。dbus没有定义专门的切断连接命令,关闭socket就是切断连接。
1.2节的dbus-monitor输出中可以看到dbus-send调用消息总线的Hello方法。

org.freedesktop.DBus.ListNames (out ARRAY of STRING bus_names)

返回消息总线上已连接的所有连接名,包括所有公共名和唯一名。例如连接“org.fmddlmyy.Test”同时有公共名“org.fmddlmyy.Test”和唯一名“:1.21”,这两个名称都会被返回。

org.freedesktop.DBus.ListActivatableNames (out ARRAY of STRING bus_names)

返回所有可以启动的服务名。dbus支持按需启动服务,即根据应用程序的请求启动服务。

org.freedesktop.DBus.NameHasOwner (in STRING name, out BOOLEAN has_owner)

检查是否有连接拥有指定名称。

org.freedesktop.DBus.StartServiceByName (in STRING name, in UINT32 flags, out UINT32 ret_val)

按名称启动服务。参数flags暂未使用。返回值ret_val定义如下:
1
服务被成功启动
2
已经有连接拥有要启动的服务名

org.freedesktop.DBus.GetNameOwner (in STRING name, out STRING unique_connection_name)

返回拥有指定公众名的连接的唯一名。

org.freedesktop.DBus.GetConnectionUnixUser (in STRING connection_name, out UINT32 unix_user_id)

返回指定连接对应的服务器进程的Unix用户id

org.freedesktop.DBus.AddMatch (in STRING rule)

为当前连接增加匹配规则。

org.freedesktop.DBus.RemoveMatch (in STRING rule)

为当前连接去掉指定匹配规则。

org.freedesktop.DBus.GetId (out STRING id)

返回消息总线的ID。这个ID在消息总线的生命期内是唯一的。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值