00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef DBUS_GLIB_H
00025 #define DBUS_GLIB_H
00026
00027 #include <glib-object.h>
00028 #include <dbus/dbus-shared.h>
00029
00030 G_BEGIN_DECLS
00031
00032 #define DBUS_INSIDE_DBUS_GLIB_H 1
00033
00034
00038 typedef struct _DBusGConnection DBusGConnection;
00042 typedef struct _DBusGMessage DBusGMessage;
00043
00044
00045 #define DBUS_TYPE_G_CONNECTION (dbus_g_connection_get_g_type ())
00046 #define DBUS_TYPE_G_MESSAGE (dbus_g_message_get_g_type ())
00047 GType dbus_g_connection_get_g_type (void) G_GNUC_CONST;
00048 GType dbus_g_message_get_g_type (void) G_GNUC_CONST;
00049
00050
00051 DBusGConnection* dbus_g_connection_ref (DBusGConnection *connection);
00052 void dbus_g_connection_unref (DBusGConnection *connection);
00053 DBusGMessage* dbus_g_message_ref (DBusGMessage *message);
00054 void dbus_g_message_unref (DBusGMessage *message);
00055
00056 void dbus_g_connection_flush (DBusGConnection *connection);
00057
00058 GQuark dbus_g_error_quark (void);
00059 #define DBUS_GERROR dbus_g_error_quark ()
00060
00061 typedef enum
00062 {
00063 #include "dbus-glib-error-enum.h"
00064 } DBusGError;
00065
00066 gboolean dbus_g_error_has_name (GError *error,
00067 const char *name);
00068 const char * dbus_g_error_get_name (GError *error);
00069
00070 void dbus_g_thread_init (void);
00071
00072 DBusGConnection* dbus_g_connection_open (const gchar *address,
00073 GError **error);
00074 DBusGConnection* dbus_g_bus_get (DBusBusType type,
00075 GError **error);
00076
00077 typedef struct _DBusGObjectInfo DBusGObjectInfo;
00078 typedef struct _DBusGMethodInfo DBusGMethodInfo;
00079
00090 struct _DBusGMethodInfo
00091 {
00092 GCallback function;
00093 GClosureMarshal marshaller;
00094 int data_offset;
00095 };
00096
00110 struct _DBusGObjectInfo
00111 {
00112 int format_version;
00113
00114 const DBusGMethodInfo *method_infos;
00115 int n_method_infos;
00116 const char *data;
00117 const char *exported_signals;
00118 const char *exported_properties;
00119 };
00120
00121 void dbus_g_object_type_install_info (GType object_type,
00122 const DBusGObjectInfo *info);
00123
00124 void dbus_g_error_domain_register (GQuark domain,
00125 const char * default_iface,
00126 GType code_enum);
00127
00128 void dbus_g_connection_register_g_object (DBusGConnection *connection,
00129 const char *at_path,
00130 GObject *object);
00131 GObject * dbus_g_connection_lookup_g_object (DBusGConnection *connection,
00132 const char *at_path);
00133
00134 #ifdef DBUS_COMPILATION
00135 #include "dbus/dbus-gtype-specialized.h"
00136 #else
00137 #include <dbus/dbus-gtype-specialized.h>
00138 #endif
00139
00140
00141 #define DBUS_TYPE_G_BOOLEAN_ARRAY (dbus_g_type_get_collection ("GArray", G_TYPE_BOOLEAN))
00142 #define DBUS_TYPE_G_UCHAR_ARRAY (dbus_g_type_get_collection ("GArray", G_TYPE_UCHAR))
00143 #define DBUS_TYPE_G_UINT_ARRAY (dbus_g_type_get_collection ("GArray", G_TYPE_UINT))
00144 #define DBUS_TYPE_G_INT_ARRAY (dbus_g_type_get_collection ("GArray", G_TYPE_INT))
00145 #define DBUS_TYPE_G_UINT64_ARRAY (dbus_g_type_get_collection ("GArray", G_TYPE_UINT64))
00146 #define DBUS_TYPE_G_INT64_ARRAY (dbus_g_type_get_collection ("GArray", G_TYPE_INT64))
00147 #define DBUS_TYPE_G_OBJECT_ARRAY (dbus_g_type_get_collection ("GPtrArray", G_TYPE_OBJECT))
00148
00149 #define DBUS_TYPE_G_STRING_STRING_HASHTABLE (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_STRING))
00150
00151 GType dbus_g_object_path_get_g_type (void) G_GNUC_CONST;
00152 #define DBUS_TYPE_G_OBJECT_PATH (dbus_g_object_path_get_g_type ())
00153
00154 void dbus_g_object_register_marshaller (GClosureMarshal marshaller,
00155 GType rettype,
00156 ...);
00157 void dbus_g_object_register_marshaller_array(GClosureMarshal marshaller,
00158 GType rettype,
00159 guint n_types,
00160 const GType* types);
00161
00162 typedef struct _DBusGProxy DBusGProxy;
00163 typedef struct _DBusGProxyClass DBusGProxyClass;
00164
00165 #define DBUS_TYPE_G_PROXY (dbus_g_proxy_get_type ())
00166 #define DBUS_G_PROXY(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), DBUS_TYPE_G_PROXY, DBusGProxy))
00167 #define DBUS_G_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DBUS_TYPE_G_PROXY, DBusGProxyClass))
00168 #define DBUS_IS_G_PROXY(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), DBUS_TYPE_G_PROXY))
00169 #define DBUS_IS_G_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DBUS_TYPE_G_PROXY))
00170 #define DBUS_G_PROXY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DBUS_TYPE_G_PROXY, DBusGProxyClass))
00171
00172 struct _DBusGProxy
00173 {
00174 GObject parent;
00175 };
00176
00177 struct _DBusGProxyClass
00178 {
00179 GObjectClass parent_class;
00180 };
00181
00182 typedef struct _DBusGProxyCall DBusGProxyCall;
00183 typedef void (* DBusGProxyCallNotify) (DBusGProxy *proxy,
00184 DBusGProxyCall *call_id,
00185 void *user_data);
00186
00187 GType dbus_g_proxy_get_type (void) G_GNUC_CONST;
00188 DBusGProxy* dbus_g_proxy_new_for_name (DBusGConnection *connection,
00189 const char *name,
00190 const char *path,
00191 const char *interface);
00192 DBusGProxy* dbus_g_proxy_new_for_name_owner (DBusGConnection *connection,
00193 const char *name,
00194 const char *path,
00195 const char *interface,
00196 GError **error);
00197 DBusGProxy* dbus_g_proxy_new_from_proxy (DBusGProxy *proxy,
00198 const char *interface,
00199 const char *path_name);
00200 DBusGProxy* dbus_g_proxy_new_for_peer (DBusGConnection *connection,
00201 const char *path_name,
00202 const char *interface_name);
00203
00204 void dbus_g_proxy_set_interface (DBusGProxy *proxy,
00205 const char *interface_name);
00206 void dbus_g_proxy_add_signal (DBusGProxy *proxy,
00207 const char *signal_name,
00208 GType first_type,
00209 ...);
00210
00211 void dbus_g_proxy_connect_signal (DBusGProxy *proxy,
00212 const char *signal_name,
00213 GCallback handler,
00214 void *data,
00215 GClosureNotify free_data_func);
00216 void dbus_g_proxy_disconnect_signal (DBusGProxy *proxy,
00217 const char *signal_name,
00218 GCallback handler,
00219 void *data);
00220
00221 gboolean dbus_g_proxy_call (DBusGProxy *proxy,
00222 const char *method,
00223 GError **error,
00224 GType first_arg_type,
00225 ...);
00226
00227 gboolean dbus_g_proxy_call_with_timeout (DBusGProxy *proxy,
00228 const char *method,
00229 int timeout,
00230 GError **error,
00231 GType first_arg_type,
00232 ...);
00233
00234 void dbus_g_proxy_call_no_reply (DBusGProxy *proxy,
00235 const char *method,
00236 GType first_arg_type,
00237 ...);
00238
00239 DBusGProxyCall * dbus_g_proxy_begin_call (DBusGProxy *proxy,
00240 const char *method,
00241 DBusGProxyCallNotify notify,
00242 gpointer data,
00243 GDestroyNotify destroy,
00244 GType first_arg_type,
00245 ...);
00246 DBusGProxyCall * dbus_g_proxy_begin_call_with_timeout (DBusGProxy *proxy,
00247 const char *method,
00248 DBusGProxyCallNotify notify,
00249 gpointer user_data,
00250 GDestroyNotify destroy,
00251 int timeout,
00252 GType first_arg_type,
00253 ...);
00254
00255 gboolean dbus_g_proxy_end_call (DBusGProxy *proxy,
00256 DBusGProxyCall *call,
00257 GError **error,
00258 GType first_arg_type,
00259 ...);
00260 void dbus_g_proxy_cancel_call (DBusGProxy *proxy,
00261 DBusGProxyCall *call);
00262
00263 const char* dbus_g_proxy_get_path (DBusGProxy *proxy);
00264
00265 const char* dbus_g_proxy_get_bus_name (DBusGProxy *proxy);
00266
00267 const char* dbus_g_proxy_get_interface (DBusGProxy *proxy);
00268
00269 typedef struct _DBusGMethodInvocation DBusGMethodInvocation;
00270
00271 void dbus_g_method_return (DBusGMethodInvocation *context, ...);
00272
00273 void dbus_g_method_return_error (DBusGMethodInvocation *context, GError *error);
00274
00275
00276 typedef struct {
00277 GCallback cb;
00278 gpointer userdata;
00279 } DBusGAsyncData;
00280
00281 #undef DBUS_INSIDE_DBUS_GLIB_H
00282
00283 G_END_DECLS
00284
00285 #endif