123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346 |
- /* -*- mode: C; c-file-style: "gnu" -*- */
- /* dbus-glib.h GLib integration
- *
- * Copyright (C) 2002, 2003 CodeFactory AB
- * Copyright (C) 2003, 2004 Red Hat, Inc.
- *
- * Licensed under the Academic Free License version 2.1
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
- #ifndef DBUS_GLIB_H
- #define DBUS_GLIB_H
- #include <glib-object.h>
- #include <dbus/dbus-shared.h>
- G_BEGIN_DECLS
- #define DBUS_INSIDE_DBUS_GLIB_H 1
- /*
- * Convert to DBusConnection with dbus_g_connection_get_connection() in dbus-glib-lowlevel.h
- */
- typedef struct _DBusGConnection DBusGConnection;
- /*
- * Convert to DBusMessage with dbus_g_message_get_message() in dbus-glib-lowlevel.h
- */
- typedef struct _DBusGMessage DBusGMessage;
- #define DBUS_TYPE_G_CONNECTION (dbus_g_connection_get_g_type ())
- #define DBUS_TYPE_G_MESSAGE (dbus_g_message_get_g_type ())
- GType dbus_g_connection_get_g_type (void) G_GNUC_CONST;
- GType dbus_g_message_get_g_type (void) G_GNUC_CONST;
- DBusGConnection* dbus_g_connection_ref (DBusGConnection *connection);
- void dbus_g_connection_unref (DBusGConnection *connection);
- DBusGMessage* dbus_g_message_ref (DBusGMessage *message);
- void dbus_g_message_unref (DBusGMessage *message);
- void dbus_g_connection_flush (DBusGConnection *connection);
- GQuark dbus_g_error_quark (void);
- #define DBUS_GERROR dbus_g_error_quark ()
- typedef enum
- {
- DBUS_GERROR_FAILED,
- DBUS_GERROR_NO_MEMORY,
- DBUS_GERROR_SERVICE_UNKNOWN,
- DBUS_GERROR_NAME_HAS_NO_OWNER,
- DBUS_GERROR_NO_REPLY,
- DBUS_GERROR_IO_ERROR,
- DBUS_GERROR_BAD_ADDRESS,
- DBUS_GERROR_NOT_SUPPORTED,
- DBUS_GERROR_LIMITS_EXCEEDED,
- DBUS_GERROR_ACCESS_DENIED,
- DBUS_GERROR_AUTH_FAILED,
- DBUS_GERROR_NO_SERVER,
- DBUS_GERROR_TIMEOUT,
- DBUS_GERROR_NO_NETWORK,
- DBUS_GERROR_ADDRESS_IN_USE,
- DBUS_GERROR_DISCONNECTED,
- DBUS_GERROR_INVALID_ARGS,
- DBUS_GERROR_FILE_NOT_FOUND,
- DBUS_GERROR_FILE_EXISTS,
- DBUS_GERROR_UNKNOWN_METHOD,
- DBUS_GERROR_TIMED_OUT,
- DBUS_GERROR_MATCH_RULE_NOT_FOUND,
- DBUS_GERROR_MATCH_RULE_INVALID,
- DBUS_GERROR_SPAWN_EXEC_FAILED,
- DBUS_GERROR_SPAWN_FORK_FAILED,
- DBUS_GERROR_SPAWN_CHILD_EXITED,
- DBUS_GERROR_SPAWN_CHILD_SIGNALED,
- DBUS_GERROR_SPAWN_FAILED,
- DBUS_GERROR_UNIX_PROCESS_ID_UNKNOWN,
- DBUS_GERROR_INVALID_SIGNATURE,
- DBUS_GERROR_INVALID_FILE_CONTENT,
- DBUS_GERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN,
- DBUS_GERROR_REMOTE_EXCEPTION
- } DBusGError;
- gboolean dbus_g_error_has_name (GError *error,
- const char *name);
- const char * dbus_g_error_get_name (GError *error);
- void dbus_g_thread_init (void);
- DBusGConnection* dbus_g_connection_open (const gchar *address,
- GError **error);
- DBusGConnection* dbus_g_connection_open_private (const gchar *address,
- GMainContext *context,
- GError **error);
- DBusGConnection* dbus_g_bus_get (DBusBusType type,
- GError **error);
- DBusGConnection* dbus_g_bus_get_private (DBusBusType type,
- GMainContext *context,
- GError **error);
- typedef struct _DBusGObjectInfo DBusGObjectInfo;
- typedef struct _DBusGMethodInfo DBusGMethodInfo;
- /**
- * DBusGMethodInfo:
- * @function: C method to invoke
- * @marshaller: Marshaller to invoke method
- * @data_offset: Offset into the introspection data
- *
- * Object typically generated by #dbus-binding-tool that
- * stores a mapping from introspection data to a
- * function pointer for a C method to be invoked.
- */
- struct _DBusGMethodInfo
- {
- GCallback function;
- GClosureMarshal marshaller;
- int data_offset;
- };
- /**
- * DBusGObjectInfo:
- * @format_version: Allows us to change the rest of this struct
- * by adding DBusGObjectInfo2, DBusGObjectInfo3, etc.
- * @method_infos: Array of method pointers
- * @n_method_infos: Length of the infos array
- * @data: Introspection data
- * @exported_signals: Exported signals
- * @exported_properties: Exported properties
- *
- * Introspection data for a #GObject, normally autogenerated by
- * a tool such as #dbus-binding-tool.
- */
- struct _DBusGObjectInfo
- {
- int format_version;
-
- const DBusGMethodInfo *method_infos;
- int n_method_infos;
- const char *data;
- const char *exported_signals;
- const char *exported_properties;
- };
- void dbus_glib_global_set_disable_legacy_property_access (void);
- void dbus_g_object_type_install_info (GType object_type,
- const DBusGObjectInfo *info);
- void dbus_g_object_type_register_shadow_property (GType iface_type,
- const char *dbus_prop_name,
- const char *shadow_prop_name);
- void dbus_g_error_domain_register (GQuark domain,
- const char * default_iface,
- GType code_enum);
- void dbus_g_connection_register_g_object (DBusGConnection *connection,
- const char *at_path,
- GObject *object);
- void dbus_g_connection_unregister_g_object (DBusGConnection *connection,
- GObject *object);
- GObject * dbus_g_connection_lookup_g_object (DBusGConnection *connection,
- const char *at_path);
- #ifdef DBUS_COMPILATION
- #include "dbus/dbus-gtype-specialized.h"
- #else
- #include <dbus/dbus-gtype-specialized.h>
- #endif
- /* definitions for some basic array types */
- #define DBUS_TYPE_G_BOOLEAN_ARRAY (dbus_g_type_get_collection ("GArray", G_TYPE_BOOLEAN))
- #define DBUS_TYPE_G_UCHAR_ARRAY (dbus_g_type_get_collection ("GArray", G_TYPE_UCHAR))
- #define DBUS_TYPE_G_UINT_ARRAY (dbus_g_type_get_collection ("GArray", G_TYPE_UINT))
- #define DBUS_TYPE_G_INT_ARRAY (dbus_g_type_get_collection ("GArray", G_TYPE_INT))
- #define DBUS_TYPE_G_UINT64_ARRAY (dbus_g_type_get_collection ("GArray", G_TYPE_UINT64))
- #define DBUS_TYPE_G_INT64_ARRAY (dbus_g_type_get_collection ("GArray", G_TYPE_INT64))
- #define DBUS_TYPE_G_OBJECT_ARRAY (dbus_g_type_get_collection ("GPtrArray", G_TYPE_OBJECT))
- #define DBUS_TYPE_G_STRING_STRING_HASHTABLE (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_STRING))
- typedef gchar DBusGObjectPath;
- GType dbus_g_object_path_get_g_type (void) G_GNUC_CONST;
- #define DBUS_TYPE_G_OBJECT_PATH (dbus_g_object_path_get_g_type ())
- typedef gchar DBusGSignature;
- GType dbus_g_signature_get_g_type (void) G_GNUC_CONST;
- #define DBUS_TYPE_G_SIGNATURE (dbus_g_signature_get_g_type ())
- void dbus_g_object_register_marshaller (GClosureMarshal marshaller,
- GType rettype,
- ...);
- void dbus_g_object_register_marshaller_array(GClosureMarshal marshaller,
- GType rettype,
- guint n_types,
- const GType* types);
- typedef struct _DBusGProxy DBusGProxy;
- typedef struct _DBusGProxyClass DBusGProxyClass;
- #define DBUS_TYPE_G_PROXY (dbus_g_proxy_get_type ())
- #define DBUS_G_PROXY(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), DBUS_TYPE_G_PROXY, DBusGProxy))
- #define DBUS_G_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DBUS_TYPE_G_PROXY, DBusGProxyClass))
- #define DBUS_IS_G_PROXY(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), DBUS_TYPE_G_PROXY))
- #define DBUS_IS_G_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DBUS_TYPE_G_PROXY))
- #define DBUS_G_PROXY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DBUS_TYPE_G_PROXY, DBusGProxyClass))
- struct _DBusGProxy
- {
- /*< private >*/
- GObject parent;
- };
- struct _DBusGProxyClass
- {
- /*< private >*/
- GObjectClass parent_class; /**< Parent class */
- };
- typedef struct _DBusGProxyCall DBusGProxyCall;
- typedef void (* DBusGProxyCallNotify) (DBusGProxy *proxy,
- DBusGProxyCall *call_id,
- void *user_data);
- GType dbus_g_proxy_get_type (void) G_GNUC_CONST;
- DBusGProxy* dbus_g_proxy_new_for_name (DBusGConnection *connection,
- const char *name,
- const char *path,
- const char *iface);
- DBusGProxy* dbus_g_proxy_new_for_name_owner (DBusGConnection *connection,
- const char *name,
- const char *path,
- const char *iface,
- GError **error);
- DBusGProxy* dbus_g_proxy_new_from_proxy (DBusGProxy *proxy,
- const char *iface,
- const char *path);
- DBusGProxy* dbus_g_proxy_new_for_peer (DBusGConnection *connection,
- const char *path,
- const char *iface);
- void dbus_g_proxy_set_interface (DBusGProxy *proxy,
- const char *interface_name);
- void dbus_g_proxy_add_signal (DBusGProxy *proxy,
- const char *signal_name,
- GType first_type,
- ...);
- void dbus_g_proxy_connect_signal (DBusGProxy *proxy,
- const char *signal_name,
- GCallback handler,
- void *data,
- GClosureNotify free_data_func);
- void dbus_g_proxy_disconnect_signal (DBusGProxy *proxy,
- const char *signal_name,
- GCallback handler,
- void *data);
- gboolean dbus_g_proxy_call (DBusGProxy *proxy,
- const char *method,
- GError **error,
- GType first_arg_type,
- ...);
- gboolean dbus_g_proxy_call_with_timeout (DBusGProxy *proxy,
- const char *method,
- int timeout,
- GError **error,
- GType first_arg_type,
- ...);
- void dbus_g_proxy_call_no_reply (DBusGProxy *proxy,
- const char *method,
- GType first_arg_type,
- ...);
- DBusGProxyCall * dbus_g_proxy_begin_call (DBusGProxy *proxy,
- const char *method,
- DBusGProxyCallNotify notify,
- gpointer user_data,
- GDestroyNotify destroy,
- GType first_arg_type,
- ...);
- DBusGProxyCall * dbus_g_proxy_begin_call_with_timeout (DBusGProxy *proxy,
- const char *method,
- DBusGProxyCallNotify notify,
- gpointer user_data,
- GDestroyNotify destroy,
- int timeout,
- GType first_arg_type,
- ...);
- void dbus_g_proxy_set_default_timeout (DBusGProxy *proxy,
- int timeout);
- gboolean dbus_g_proxy_end_call (DBusGProxy *proxy,
- DBusGProxyCall *call,
- GError **error,
- GType first_arg_type,
- ...);
- void dbus_g_proxy_cancel_call (DBusGProxy *proxy,
- DBusGProxyCall *call);
- const char* dbus_g_proxy_get_path (DBusGProxy *proxy);
- const char* dbus_g_proxy_get_bus_name (DBusGProxy *proxy);
- const char* dbus_g_proxy_get_interface (DBusGProxy *proxy);
- typedef struct _DBusGMethodInvocation DBusGMethodInvocation;
- void dbus_g_method_return (DBusGMethodInvocation *context, ...);
- void dbus_g_method_return_error (DBusGMethodInvocation *context, const GError *error);
- DBusGConnection * dbus_g_method_invocation_get_g_connection (DBusGMethodInvocation *context);
- /* Probably possible to replace this with a closure */
- typedef struct {
- GCallback cb;
- gpointer userdata;
- } DBusGAsyncData;
- #undef DBUS_INSIDE_DBUS_GLIB_H
- #include <dbus/dbus-gvalue-parse-variant.h>
- G_END_DECLS
- #endif /* DBUS_GLIB_H */
|