分类: LINUX
2010-01-29 01:14:15
@dbus.service.signal(INTERFACE_URI, signature='i') def StatusChanged(self, status): pass |
dbus_g_proxy_add_signal(proxy, StatusChanged, G_TYPE_INT, G_TYPE_INVALID);
第一个参数是代理对象, 第二个参数是要监听的信号名, 接下来是信号传递的参数描述,最后以
G_TYPE_INVALID来结束参数的描述
2。 指定处理函数
dbus_g_proxy_connect_signal(proxy, StatusChanged, G_CALLBACK(handler), NULL, NULL)
第一个参数是代理对象, 第二个参数是要监听的信号名, 第三个是处理函数, 第4个是额外传递给处理函数的数据
第5个是释放第4个参数所占内存的函数
3。声明处理函数
void handler(DBusGProxy *proxy, int status, gpointer user_data);
第一个参数是代理对象,接下来的是信号传过来的参数,在这个例子中就只要一个int, 最后是在
dbus_g_proxy_connect_signal中指定的额外数据,即第4个参数,这里是NULL