00001 #ifndef ICD_DBUS_H
00002 #define ICD_DBUS_H
00003
00014 #include <glib.h>
00015
00016 #include <dbus/dbus.h>
00017
00018 #include <dbus/dbus-glib-lowlevel.h>
00019
00025 struct icd_dbus_mcall_table {
00027 const gchar *name;
00029 const gchar *mcall_sig;
00031 const gchar *reply_sig;
00033 DBusObjectPathMessageFunction handler_fn;
00034 };
00035
00037 struct icd_dbus_sig_table {
00039 const gchar *name;
00041 const gchar *mcall_sig;
00042 };
00043
00045 struct icd_dbus_prop_table {
00047 const gchar *name;
00048 };
00049
00058 gboolean icd_dbus_connect_system_path (const char *path,
00059 DBusObjectPathMessageFunction cb,
00060 void *user_data);
00065 gboolean icd_dbus_disconnect_system_path (const char* path);
00066
00079 gboolean icd_dbus_connect_system_bcast_signal (const char *interface,
00080 DBusHandleMessageFunction cb,
00081 void *user_data,
00082 const char *extra_filters);
00083
00095 gboolean icd_dbus_disconnect_system_bcast_signal (const char *interface,
00096 DBusHandleMessageFunction cb,
00097 void *user_data,
00098 const char *extra_filters);
00099
00108 gboolean icd_dbus_register_system_service (const char *path,
00109 const char *service,
00110 guint service_flags,
00111 DBusObjectPathMessageFunction cb,
00112 void *user_data);
00113
00118 void icd_dbus_unregister_system_service (const char *path,
00119 const char *service);
00120
00131 DBusPendingCall *icd_dbus_send_system_mcall (DBusMessage *message,
00132 gint timeout,
00133 DBusPendingCallNotifyFunction cb,
00134 void *user_data);
00135
00141 gboolean icd_dbus_send_system_msg (DBusMessage *message);
00142
00143
00149 typedef void
00150 (*icd_dbus_get_unique_name_cb_fn) (const gchar *name,
00151 const gchar *id,
00152 gpointer user_data);
00153
00157 void icd_dbus_cancel_unique_name (DBusPendingCall *pending);
00158
00165 gboolean icd_dbus_get_unique_name (const gchar *name,
00166 icd_dbus_get_unique_name_cb_fn cb,
00167 gpointer user_data);
00168
00171 void icd_dbus_close (void);
00172
00175 #endif