williamr@2: /* -*- mode: C; c-file-style: "gnu" -*- */ williamr@2: /* dbus-glib.h GLib integration williamr@2: * williamr@2: * Copyright (C) 2002, 2003 CodeFactory AB williamr@2: * Copyright (C) 2003, 2004 Red Hat, Inc. williamr@2: * Portion Copyright © 2008 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. williamr@2: * Licensed under the Academic Free License version 2.1 williamr@2: * williamr@2: * This program is free software; you can redistribute it and/or modify williamr@2: * it under the terms of the GNU General Public License as published by williamr@2: * the Free Software Foundation; either version 2 of the License, or williamr@2: * (at your option) any later version. williamr@2: * williamr@2: * This program is distributed in the hope that it will be useful, williamr@2: * but WITHOUT ANY WARRANTY; without even the implied warranty of williamr@2: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the williamr@2: * GNU General Public License for more details. williamr@2: * williamr@2: * You should have received a copy of the GNU General Public License williamr@2: * along with this program; if not, write to the Free Software williamr@2: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA williamr@2: * williamr@2: */ williamr@2: #ifndef DBUS_GLIB_H williamr@2: #define DBUS_GLIB_H williamr@2: williamr@2: #include williamr@2: #include williamr@2: williamr@2: G_BEGIN_DECLS williamr@2: williamr@2: #define DBUS_INSIDE_DBUS_GLIB_H 1 williamr@2: williamr@2: williamr@2: /** williamr@2: * Convert to DBusConnection with dbus_g_connection_get_connection() in dbus-glib-lowlevel.h williamr@2: */ williamr@2: typedef struct _DBusGConnection DBusGConnection; williamr@2: /** williamr@2: * Convert to DBusMessage with dbus_g_message_get_message() in dbus-glib-lowlevel.h williamr@2: */ williamr@2: typedef struct _DBusGMessage DBusGMessage; williamr@2: williamr@2: williamr@2: #define DBUS_TYPE_G_CONNECTION (dbus_g_connection_get_g_type ()) williamr@2: #define DBUS_TYPE_G_MESSAGE (dbus_g_message_get_g_type ()) williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: GType dbus_g_connection_get_g_type (void) G_GNUC_CONST; williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: GType dbus_g_message_get_g_type (void) G_GNUC_CONST; williamr@2: williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: DBusGConnection* dbus_g_connection_ref (DBusGConnection *connection); williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: void dbus_g_connection_unref (DBusGConnection *connection); williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: DBusGMessage* dbus_g_message_ref (DBusGMessage *message); williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: void dbus_g_message_unref (DBusGMessage *message); williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: void dbus_g_connection_flush (DBusGConnection *connection); williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: GQuark dbus_g_error_quark (void); williamr@2: #define DBUS_GERROR dbus_g_error_quark () williamr@2: williamr@2: typedef enum williamr@2: { williamr@2: #ifndef __SYMBIAN32__ williamr@2: #include "dbus-glib-error-enum.h" williamr@2: #else williamr@2: #include williamr@2: #endif //__SYMBIAN32__ williamr@2: } DBusGError; williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: gboolean dbus_g_error_has_name (GError *error, williamr@2: const char *name); williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: const char * dbus_g_error_get_name (GError *error); williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: void dbus_g_thread_init (void); williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: DBusGConnection* dbus_g_connection_open (const gchar *address, williamr@2: GError **error); williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: DBusGConnection* dbus_g_bus_get (DBusBusType type, williamr@2: GError **error); williamr@2: williamr@2: typedef struct _DBusGObjectInfo DBusGObjectInfo; williamr@2: typedef struct _DBusGMethodInfo DBusGMethodInfo; williamr@2: williamr@2: /** williamr@2: * DBusGMethodInfo: williamr@2: * @function: C method to invoke williamr@2: * @marshaller: Marshaller to invoke method williamr@2: * @data_offset: Offset into the introspection data williamr@2: * williamr@2: * Object typically generated by #dbus-binding-tool that williamr@2: * stores a mapping from introspection data to a williamr@2: * function pointer for a C method to be invoked. williamr@2: */ williamr@2: struct _DBusGMethodInfo williamr@2: { williamr@2: GCallback function; williamr@2: GClosureMarshal marshaller; williamr@2: int data_offset; williamr@2: }; williamr@2: williamr@2: /** williamr@2: * DBusGObjectInfo: williamr@2: * @format_version: Allows us to change the rest of this struct williamr@2: * by adding DBusGObjectInfo2, DBusGObjectInfo3, etc. williamr@2: * @method_infos: Array of method pointers williamr@2: * @n_method_infos: Length of the infos array williamr@2: * @data: Introspection data williamr@2: * @exported_signals: Exported signals williamr@2: * @exported_properties: Exported properties williamr@2: * williamr@2: * Introspection data for a #GObject, normally autogenerated by williamr@2: * a tool such as #dbus-binding-tool. williamr@2: */ williamr@2: struct _DBusGObjectInfo williamr@2: { williamr@2: int format_version; williamr@2: williamr@2: const DBusGMethodInfo *method_infos; williamr@2: int n_method_infos; williamr@2: const char *data; williamr@2: const char *exported_signals; williamr@2: const char *exported_properties; williamr@2: }; williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: void dbus_g_object_type_install_info (GType object_type, williamr@2: const DBusGObjectInfo *info); williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: void dbus_g_error_domain_register (GQuark domain, williamr@2: const char * default_iface, williamr@2: GType code_enum); williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: void dbus_g_connection_register_g_object (DBusGConnection *connection, williamr@2: const char *at_path, williamr@2: GObject *object); williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: GObject * dbus_g_connection_lookup_g_object (DBusGConnection *connection, williamr@2: const char *at_path); williamr@2: williamr@2: #ifdef DBUS_COMPILATION williamr@2: #include "dbus/dbus-gtype-specialized.h" williamr@2: #else williamr@2: #include williamr@2: #endif williamr@2: williamr@2: /* definitions for some basic array types */ williamr@2: #define DBUS_TYPE_G_BOOLEAN_ARRAY (dbus_g_type_get_collection ("GArray", G_TYPE_BOOLEAN)) williamr@2: #define DBUS_TYPE_G_UCHAR_ARRAY (dbus_g_type_get_collection ("GArray", G_TYPE_UCHAR)) williamr@2: #define DBUS_TYPE_G_UINT_ARRAY (dbus_g_type_get_collection ("GArray", G_TYPE_UINT)) williamr@2: #define DBUS_TYPE_G_INT_ARRAY (dbus_g_type_get_collection ("GArray", G_TYPE_INT)) williamr@2: #define DBUS_TYPE_G_UINT64_ARRAY (dbus_g_type_get_collection ("GArray", G_TYPE_UINT64)) williamr@2: #define DBUS_TYPE_G_INT64_ARRAY (dbus_g_type_get_collection ("GArray", G_TYPE_INT64)) williamr@2: #define DBUS_TYPE_G_OBJECT_ARRAY (dbus_g_type_get_collection ("GPtrArray", G_TYPE_OBJECT)) williamr@2: williamr@2: #define DBUS_TYPE_G_STRING_STRING_HASHTABLE (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_STRING)) williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: GType dbus_g_object_path_get_g_type (void) G_GNUC_CONST; williamr@2: #define DBUS_TYPE_G_OBJECT_PATH (dbus_g_object_path_get_g_type ()) williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: void dbus_g_object_register_marshaller (GClosureMarshal marshaller, williamr@2: GType rettype, williamr@2: ...); williamr@2: void dbus_g_object_register_marshaller_array(GClosureMarshal marshaller, williamr@2: GType rettype, williamr@2: guint n_types, williamr@2: const GType* types); williamr@2: williamr@2: typedef struct _DBusGProxy DBusGProxy; williamr@2: typedef struct _DBusGProxyClass DBusGProxyClass; williamr@2: williamr@2: #define DBUS_TYPE_G_PROXY (dbus_g_proxy_get_type ()) williamr@2: #define DBUS_G_PROXY(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), DBUS_TYPE_G_PROXY, DBusGProxy)) williamr@2: #define DBUS_G_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DBUS_TYPE_G_PROXY, DBusGProxyClass)) williamr@2: #define DBUS_IS_G_PROXY(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), DBUS_TYPE_G_PROXY)) williamr@2: #define DBUS_IS_G_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DBUS_TYPE_G_PROXY)) williamr@2: #define DBUS_G_PROXY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DBUS_TYPE_G_PROXY, DBusGProxyClass)) williamr@2: williamr@2: struct _DBusGProxy williamr@2: { williamr@2: GObject parent; williamr@2: }; williamr@2: williamr@2: struct _DBusGProxyClass williamr@2: { williamr@2: GObjectClass parent_class; /**< Parent class */ williamr@2: }; williamr@2: williamr@2: typedef struct _DBusGProxyCall DBusGProxyCall; williamr@2: typedef void (* DBusGProxyCallNotify) (DBusGProxy *proxy, williamr@2: DBusGProxyCall *call_id, williamr@2: void *user_data); williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: GType dbus_g_proxy_get_type (void) G_GNUC_CONST; williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: DBusGProxy* dbus_g_proxy_new_for_name (DBusGConnection *connection, williamr@2: const char *name, williamr@2: const char *path, williamr@2: const char *interface); williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: DBusGProxy* dbus_g_proxy_new_for_name_owner (DBusGConnection *connection, williamr@2: const char *name, williamr@2: const char *path, williamr@2: const char *interface, williamr@2: GError **error); williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: DBusGProxy* dbus_g_proxy_new_from_proxy (DBusGProxy *proxy, williamr@2: const char *interface, williamr@2: const char *path_name); williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: DBusGProxy* dbus_g_proxy_new_for_peer (DBusGConnection *connection, williamr@2: const char *path_name, williamr@2: const char *interface_name); williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: void dbus_g_proxy_set_interface (DBusGProxy *proxy, williamr@2: const char *interface_name); williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: void dbus_g_proxy_add_signal (DBusGProxy *proxy, williamr@2: const char *signal_name, williamr@2: GType first_type, williamr@2: ...); williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: void dbus_g_proxy_connect_signal (DBusGProxy *proxy, williamr@2: const char *signal_name, williamr@2: GCallback handler, williamr@2: void *data, williamr@2: GClosureNotify free_data_func); williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: void dbus_g_proxy_disconnect_signal (DBusGProxy *proxy, williamr@2: const char *signal_name, williamr@2: GCallback handler, williamr@2: void *data); williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: gboolean dbus_g_proxy_call (DBusGProxy *proxy, williamr@2: const char *method, williamr@2: GError **error, williamr@2: GType first_arg_type, williamr@2: ...); williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: gboolean dbus_g_proxy_call_with_timeout (DBusGProxy *proxy, williamr@2: const char *method, williamr@2: int timeout, williamr@2: GError **error, williamr@2: GType first_arg_type, williamr@2: ...); williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: void dbus_g_proxy_call_no_reply (DBusGProxy *proxy, williamr@2: const char *method, williamr@2: GType first_arg_type, williamr@2: ...); williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: DBusGProxyCall * dbus_g_proxy_begin_call (DBusGProxy *proxy, williamr@2: const char *method, williamr@2: DBusGProxyCallNotify notify, williamr@2: gpointer data, williamr@2: GDestroyNotify destroy, williamr@2: GType first_arg_type, williamr@2: ...); williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: DBusGProxyCall * dbus_g_proxy_begin_call_with_timeout (DBusGProxy *proxy, williamr@2: const char *method, williamr@2: DBusGProxyCallNotify notify, williamr@2: gpointer user_data, williamr@2: GDestroyNotify destroy, williamr@2: int timeout, williamr@2: GType first_arg_type, williamr@2: ...); williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: gboolean dbus_g_proxy_end_call (DBusGProxy *proxy, williamr@2: DBusGProxyCall *call, williamr@2: GError **error, williamr@2: GType first_arg_type, williamr@2: ...); williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: void dbus_g_proxy_cancel_call (DBusGProxy *proxy, williamr@2: DBusGProxyCall *call); williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: const char* dbus_g_proxy_get_path (DBusGProxy *proxy); williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: const char* dbus_g_proxy_get_bus_name (DBusGProxy *proxy); williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: const char* dbus_g_proxy_get_interface (DBusGProxy *proxy); williamr@2: williamr@2: typedef struct _DBusGMethodInvocation DBusGMethodInvocation; williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: void dbus_g_method_return (DBusGMethodInvocation *context, ...); williamr@2: williamr@2: #ifdef __SYMBIAN32__ williamr@2: IMPORT_C williamr@2: #endif williamr@2: void dbus_g_method_return_error (DBusGMethodInvocation *context, GError *error); williamr@2: williamr@2: /* Probably possible to replace this with a closure */ williamr@2: typedef struct { williamr@2: GCallback cb; williamr@2: gpointer userdata; williamr@2: } DBusGAsyncData; williamr@2: williamr@2: #undef DBUS_INSIDE_DBUS_GLIB_H williamr@2: williamr@2: G_END_DECLS williamr@2: williamr@2: #endif /* DBUS_GLIB_H */