summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorRyan Lortie <desrt@desrt.ca>2013-11-24 22:07:36 -0500
committerRyan Lortie <desrt@desrt.ca>2013-11-25 12:23:14 -0500
commit2fbcd57784e845dfee4425a67ae22e02af264498 (patch)
treeea50b0e3275e322bd617c48be3430c64db253e1d /common
parentc504631da4a13e621222564f6481b290c505c14d (diff)
downloaddconf-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.am2
-rw-r--r--common/dconf-error.c54
-rw-r--r--common/dconf-error.h37
-rw-r--r--common/dconf-paths.c5
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, \