对dbus路由端口名称创建和使用的一点理解
对于每个应用程序建立的connection,当调用
dbus_bus_request_name(conn, "test.signal.sink", DBUS_NAME_FLAG_REPLACE_EXISTING , &err);
就表示向dbus-session这个daemon追加了一条路由到该应用程序入口[luther.gliethttp],
在执行
conn = dbus_bus_get(DBUS_BUS_SESSION, &err);
创建connection时,dbus-session这个daemon就已经调用create_unique_client_name()为
这个应用程序对应的connection生成了一个unique_name,形式为
":major.minor",比如:":1.204",
我们使用这个作为dest,就可以将message路由到":1.204"对应的connection应用程序,
经过上面dbus_bus_request_name(conn, "test.signal.sink", DBUS_NAME_FLAG_REPLACE_EXISTING , &err);
操作之后,我们还可以使用"test.signal.sink"作为dest,它也指向了dbus-session管理的该connection应用程序连接,所以这个追加了的数值也能同样路由到":1.204"对应的connection应用程序,
《dbus-send工具》当然我们可以使用dbus_bus_request_name()函数给我们的应用程序追加n多条抵达该应用程序的路由线路[luther.gliethttp]
阅读(3104) | 评论(0) | 转发(0) |