summaryrefslogtreecommitdiffstats
path: root/dbus
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2005-06-26 17:02:09 +0000
committerColin Walters <walters@verbum.org>2005-06-26 17:02:09 +0000
commitdf901b528bc1e1edd96e9e91b94c9c9b795b8ffd (patch)
treef455e436a057d8525edb4d29067674eb781331da /dbus
parentc904e1e3a695f8f15f098d9316ead6f0db637780 (diff)
2005-06-26 Colin Walters <walters@verbum.org>
* glib/dbus-glib.c (dbus_set_g_error): Delete. (dbus_g_error_set): New public function from its ashes; used by both service-side method implementation and GLib bindings internals. (dbus_g_error_has_name, dbus_g_error_get_name): New function. (_dbus_glib_test): Add some tests. * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name. * test/glib/test-service-glib.c (my_object_throw_error): Use dbus_g_error_set. * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle errors thrown by dbus_g_error_set. * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set. * glib/dbus-gparser.c (validate_signature): Ditto. * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) (dbus_g_proxy_end_call_internal): Ditto. * glib/Makefile.am: Generate dbus-glib-error-switch.h, which converts DBUS_ERROR_x to DBUS_GERROR_x. (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it. * doc/TODO: Remove error TODO. * doc/dbus-tutorial.xml: Update with documentation about error handling. * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
Diffstat (limited to 'dbus')
-rw-r--r--dbus/dbus-glib.h7
-rwxr-xr-xdbus/make-dbus-glib-error-enum.sh3
2 files changed, 9 insertions, 1 deletions
diff --git a/dbus/dbus-glib.h b/dbus/dbus-glib.h
index 2d5005bb..901b5720 100644
--- a/dbus/dbus-glib.h
+++ b/dbus/dbus-glib.h
@@ -81,6 +81,13 @@ typedef enum
#include <dbus/dbus-glib-error-enum.h>
} DBusGError;
+void dbus_g_error_set (GError **error,
+ const char *name,
+ const char *msg);
+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_bus_get (DBusBusType type,
GError **error);
diff --git a/dbus/make-dbus-glib-error-enum.sh b/dbus/make-dbus-glib-error-enum.sh
index c2f538db..55362ded 100755
--- a/dbus/make-dbus-glib-error-enum.sh
+++ b/dbus/make-dbus-glib-error-enum.sh
@@ -11,11 +11,12 @@ die()
}
cat $SRC | grep '#define DBUS_ERROR' | sed -e 's/#define //g' | \
- sed -e 's/".*//g' | sed -e 's/_ERROR/_GERROR/g' | sed -e 's/ *$/,/g' > $DEST.tmp
+ sed -e 's/".*//g' | sed -e 's/DBUS_ERROR/DBUS_GERROR/g' | sed -e 's/ *$/,/g' > $DEST.tmp
if ! test -s $DEST.tmp ; then
die "$DEST.tmp is empty, something went wrong, see any preceding error message"
fi
+echo "DBUS_GERROR_REMOTE_EXCEPTION" >> $DEST.tmp
echo "#ifndef DBUS_INSIDE_DBUS_GLIB_H" >> $DEST.tmp
echo '#error "' "$DEST" 'may only be included by dbus-glib.h"' >> $DEST.tmp