diff options
author | Ryan Lortie <desrt@desrt.ca> | 2013-11-24 22:07:36 -0500 |
---|---|---|
committer | Ryan Lortie <desrt@desrt.ca> | 2013-11-25 12:23:14 -0500 |
commit | 2fbcd57784e845dfee4425a67ae22e02af264498 (patch) | |
tree | ea50b0e3275e322bd617c48be3430c64db253e1d /common | |
parent | c504631da4a13e621222564f6481b290c505c14d (diff) | |
download | dconf-2fbcd57784e845dfee4425a67ae22e02af264498.tar.gz |
Add DCONF_ERROR error domain
Add a DCONF_ERROR error domain with associated DConfError enum type.
Use this instead of the adhoc approach that we've been taking up to this
point.
https://bugzilla.gnome.org/show_bug.cgi?id=704638
Diffstat (limited to 'common')
-rw-r--r-- | common/Makefile.am | 2 | ||||
-rw-r--r-- | common/dconf-error.c | 54 | ||||
-rw-r--r-- | common/dconf-error.h | 37 | ||||
-rw-r--r-- | common/dconf-paths.c | 5 |
4 files changed, 95 insertions, 3 deletions
diff --git a/common/Makefile.am b/common/Makefile.am index 0400298..3435c0f 100644 --- a/common/Makefile.am +++ b/common/Makefile.am @@ -3,6 +3,7 @@ include $(top_srcdir)/Makefile.gtester dconfcommonincludedir = $(dconfincludedir)/common dconfcommoninclude_HEADERS = \ dconf-changeset.h \ + dconf-error.h \ dconf-paths.h noinst_LIBRARIES = libdconf-common.a libdconf-common-shared.a libdconf-common-hidden.a @@ -10,6 +11,7 @@ noinst_LIBRARIES = libdconf-common.a libdconf-common-shared.a libdconf-common-hi libdconf_common_a_CFLAGS = $(glib_CFLAGS) -DG_LOG_DOMAIN=\"dconf\" libdconf_common_a_SOURCES = \ dconf-changeset.c \ + dconf-error.c \ dconf-paths.c libdconf_common_shared_a_CFLAGS = $(libdconf_common_a_CFLAGS) -fPIC -DPIC diff --git a/common/dconf-error.c b/common/dconf-error.c new file mode 100644 index 0000000..6cf1fee --- /dev/null +++ b/common/dconf-error.c @@ -0,0 +1,54 @@ +/* + * Copyright © 2013 Canonical Limited + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the licence, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * Author: Ryan Lortie <desrt@desrt.ca> + */ + +#include "config.h" + +#include "dconf-error.h" + +/** + * SECTION:error + * @title: DConfError + * @short_description: GError error codes + * + * These are the error codes that can be returned from dconf APIs. + **/ + +/** + * DCONF_ERROR: + * + * The error domain of DConf. + * + * Since: 0.20 + **/ + +/** + * DConfError: + * @DCONF_ERROR_FAILED: generic error + * @DCONF_ERROR_PATH: the path given for the operation was a valid path + * or was not of the expected type (dir vs. key) + * @DCONF_ERROR_NOT_WRITABLE: the given key was not writable + * + * Possible errors from DConf functions. + * + * Since: 0.20 + **/ + +G_DEFINE_QUARK (dconf_error, dconf_error) diff --git a/common/dconf-error.h b/common/dconf-error.h new file mode 100644 index 0000000..ca8e8b2 --- /dev/null +++ b/common/dconf-error.h @@ -0,0 +1,37 @@ +/* + * Copyright © 2013 Canonical Limited + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the licence, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * Author: Ryan Lortie <desrt@desrt.ca> + */ + +#ifndef __dconf_error_h__ +#define __dconf_error_h__ + +#include <glib.h> + +#define DCONF_ERROR (dconf_error_quark ()) +GQuark dconf_error_quark (void); + +typedef enum +{ + DCONF_ERROR_FAILED, + DCONF_ERROR_PATH, + DCONF_ERROR_NOT_WRITABLE +} DConfError; + +#endif /* __dconf_error_h__ */ diff --git a/common/dconf-paths.c b/common/dconf-paths.c index 834750a..467f525 100644 --- a/common/dconf-paths.c +++ b/common/dconf-paths.c @@ -24,6 +24,8 @@ #include "dconf-paths.h" +#include "dconf-error.h" + /** * SECTION:paths * @title: dconf Paths @@ -40,9 +42,6 @@ #define vars gchar c, l -#define DCONF_ERROR 0 -#define DCONF_ERROR_PATH 0 - #define nonnull \ if (string == NULL) { \ g_set_error (error, DCONF_ERROR, DCONF_ERROR_PATH, \ |