我正在尝试实现Dbus客户端。Dbus服务器实际上是由第三方实现的,我不知道它使用什么绑定(但我猜是gdbus)。现在我可以在客户端应用程序中使用QDbus绑定,而不管Dbus服务器中使用的是什么绑定吗?如果是这样,如何在服务器之间管理数据类型(复杂数据类型/用户定义的结构)。Glib类型)和客户端(例如。qt类型)?
DBus上的所有类型都有DBus类型,绑定只是将它们转换成自己的格式。例如,在C/c++中,uint32
类型是unsigned int
,而在Java绑定中,它是UInt32
。
基本上,所有实现都需要知道消息的连接格式。只要它们理解这种格式,转换成哪种高级数据类型并不重要。我不会称它们为复杂数据类型,因为你只能通过总线发送基本数据类型。