DBus学习(4)---相关接口函数

本文介绍了DBus的一些常用接口函数,包括获取连接、创建对象代理、同步和异步调用方法、信号处理等。通过这些函数,开发者可以方便地与DBus进行交互,实现对象的注册和信号处理等功能,为编写DBus测试程序提供了基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*引用本文请注明来自 blog.youkuaiyun.com/wtz1985       

下面是常用的函数接口,使用了glib的数据类型和函数调用规范。可变参数一般是调用的方法的参数列表。

     1.获取一个连接(bus).

     DBusGConnection* dbus_g_bus_get (DBusBusType type, Gerror **error);

 

     2.获取一个对象的代理

     DBusGProxy* dbus_g_proxy_new_for_name (DBusGConnection *connection,

                                                                       const char      *bus_name,

                                                                       const char      *path_name,

                                                                           const char      *interface_name);

 

     3.同步调用对象的方法并返回结果,参数error后面是输入参数列表和输出参数列表。

     gboolean dbus_g_proxy_call (DBusGProxy        *proxy,

                                        const char        *method,

                                        GError           **error,

                                        GType           first_arg_type,

                                         ...);

 

4.异步调用对象的方法,回调函数notify由用户提供。

DBusGProxyCall * dbus_g_proxy_begin_call (DBusGProxy          *proxy,

                                                                       const char          *method,

                                                                       DBusGProxyCallNotify notify,

                                                                       gpointer             user_data,

                                                                       GDestroyNotify      destroy,

                                                                       GType              first_arg_type,

                                                                       ...);

 

5.异步调用结束获取调用结果,此函数一般在回调函数notify中调用.

gboolean dbus_g_proxy_end_call (DBusGProxy          *proxy,

                                                DBusGProxyCall      *call,

                                                GError             **error,

                                                GType                first_arg_type,

                                                ...);

 

6.取消正在处理的异步调用,参数call是从dbus_g_proxy_begin_call函数返回的。

void dbus_g_proxy_cancel_call (DBusGProxy        *proxy, DBusGProxyCall    *call);

 

7.异步调用对象的方法,不需要返回结果,相当于dbus_g_proxy_begin_call,但不需要获取结果.

void dbus_g_proxy_call_no_reply (DBusGProxy               *proxy,

                                                     const char               *method,

                                                     GType                     first_arg_type,

                                                      ...);

 

8.增加一个信号,通知对象调用者需要捕获指定的信号

void dbus_g_proxy_add_signal  (DBusGProxy        *proxy,

                                                   const char        *signal_name,

                                                   GType           first_type,

                                                   ...);

 

9.连接信号,将处理函数handler连接到指定的信号上。

void dbus_g_proxy_connect_signal (DBusGProxy             *proxy,

                                                       const char             *signal_name,

                                                       GCallback               handler,

                                                       void                   *data,

                                                       GClosureNotify          free_data_func);

 

10.解除信号的连接,解除处理函数handler和指定的信号的连接。

void dbus_g_proxy_disconnect_signal (DBusGProxy             *proxy,

                                                            const char             *signal_name,

                                                            GCallback               handler,

                                                            void                   *data);

 

11.安装对象的类型信息

void dbus_g_object_type_install_info (GType                  object_type,

                                                          const DBusGObjectInfo *info);

 

12.注册对象,Dbus的一个连接注册对象。

void dbus_g_connection_register_g_object (DBusGConnection       *connection,

                                                                    const char            *at_path,
                                                                   
GObject               *object);

这是比较常用的接口函数,有了这些函数和之前的对DBUS的介绍,可以为自己写一个测试程序了.

 

~~END~~    

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值