分类: LINUX
2011-04-10 21:58:55
|
对于Service Name和Object Path,QT4文档中有一个类比还是比较直观的,如下图所示:
图中的ftp.example.com可以看作是Service Name,/pub/something可以看作是Object Path。
D-Bus 通过Signal/Method来发送和接收Message。Signal/Method可以理解为QT4中的Signal/Slot这个概念。一个 Object可以提供多个Method/Signal,这些Method/Signal的集合又组成了Interface。
因此,D-Bus的这些概念从大到小可以表示为:Message Bus->Service->Object->[Interface]->Method/Signal。
其中,Interface是可选的。
// 用于建立到session bus的连接 // 在session bus上注册名为"com.test.hotel"的service // 注册名为"/hotel/registry"的object。 // 表示把类Hotel的所有Slot都导出为这个Object的method |
class Hotel : public QObject
// 定义Interface名称为"com.test.hotel.registry" |
// 用来构造一个在D-Bus上传递的Message // 发送Message |
// 创建QDBusInterface QDBusConnection::sessionBus()); qPrintable(QDBusConnection::sessionBus(). lastError().message()); // 呼叫远程的checkIn,参数为num_room |
// 初始化自动生成的Proxy类com::test::hotel::registry |
int main(int argc, char *argv[]) |