[tracker/sam/errors] libtracker-sparql: Map GError codes to DBus error codes
- From: Sam Thursfield <sthursfield src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/sam/errors] libtracker-sparql: Map GError codes to DBus error codes
- Date: Fri, 1 May 2020 20:08:46 +0000 (UTC)
commit 077ced743d0a72797c2fdcf4f9823d4fd268228a
Author: Sam Thursfield <sam afuera me uk>
Date: Fri May 1 17:36:15 2020 +0200
libtracker-sparql: Map GError codes to DBus error codes
DBus errors before:
gi.repository.GLib.GError: tracker-sparql-error-quark:
GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._tracker_2dsparql_2derror_2dquark.Code0: Parser error at byte
0: Expected Query (0)
DBus errors now:
gi.repository.GLib.GError: tracker-sparql-error-quark:
GDBus.Error:org.freedesktop.Tracker.Error.Parse: Parser error at byte 0: Expected Query (0)
src/libtracker-sparql/tracker-connection.c | 13 ++++++++++++-
src/libtracker-sparql/tracker-connection.h | 17 +++++++++++++++++
2 files changed, 29 insertions(+), 1 deletion(-)
---
diff --git a/src/libtracker-sparql/tracker-connection.c b/src/libtracker-sparql/tracker-connection.c
index a528b5dcb..04e284e5b 100644
--- a/src/libtracker-sparql/tracker-connection.c
+++ b/src/libtracker-sparql/tracker-connection.c
@@ -24,7 +24,18 @@
G_DEFINE_ABSTRACT_TYPE (TrackerSparqlConnection, tracker_sparql_connection,
G_TYPE_OBJECT)
-G_DEFINE_QUARK (tracker-sparql-error-quark, tracker_sparql_error)
+G_STATIC_ASSERT (G_N_ELEMENTS (tracker_sparql_error_entries) == TRACKER_SPARQL_N_ERRORS);
+
+GQuark
+tracker_sparql_error_quark (void)
+{
+ static volatile gsize quark_volatile = 0;
+ g_dbus_error_register_error_domain ("tracker-sparql-error-quark",
+ &quark_volatile,
+ tracker_sparql_error_entries,
+ G_N_ELEMENTS (tracker_sparql_error_entries));
+ return (GQuark) quark_volatile;
+}
static void
tracker_sparql_connection_init (TrackerSparqlConnection *connection)
diff --git a/src/libtracker-sparql/tracker-connection.h b/src/libtracker-sparql/tracker-connection.h
index 9d14b1697..425c38604 100644
--- a/src/libtracker-sparql/tracker-connection.h
+++ b/src/libtracker-sparql/tracker-connection.h
@@ -79,6 +79,8 @@ G_DECLARE_DERIVABLE_TYPE (TrackerSparqlConnection,
* @TRACKER_SPARQL_ERROR_INTERNAL: Internal error.
* @TRACKER_SPARQL_ERROR_UNSUPPORTED: Unsupported feature or method.
* @TRACKER_SPARQL_ERROR_UNKNOWN_GRAPH: Unknown graph.
+ * @TRACKER_SPARQL_ERROR_ONTOLOGY_NOT_FOUND: The specified ontology wasn't found.
+ * @TRACKER_SPARQL_N_ERRORS: The total number of error codes.
*
* Error domain for Tracker Sparql. Errors in this domain will be from the
* #TrackerSparqlError enumeration. See #GError for more information on error
@@ -95,8 +97,23 @@ typedef enum {
TRACKER_SPARQL_ERROR_UNSUPPORTED,
TRACKER_SPARQL_ERROR_UNKNOWN_GRAPH,
TRACKER_SPARQL_ERROR_ONTOLOGY_NOT_FOUND,
+ TRACKER_SPARQL_N_ERRORS,
} TrackerSparqlError;
+static const GDBusErrorEntry tracker_sparql_error_entries[] =
+{
+ {TRACKER_SPARQL_ERROR_PARSE, "org.freedesktop.Tracker.Error.Parse"},
+ {TRACKER_SPARQL_ERROR_UNKNOWN_CLASS, "org.freedesktop.Tracker.Error.UnknownClass"},
+ {TRACKER_SPARQL_ERROR_UNKNOWN_PROPERTY, "org.freedesktop.Tracker.Error.UnknownProperty"},
+ {TRACKER_SPARQL_ERROR_TYPE, "org.freedesktop.Tracker.Error.Type"},
+ {TRACKER_SPARQL_ERROR_CONSTRAINT, "org.freedesktop.Tracker.Error.Constraint"},
+ {TRACKER_SPARQL_ERROR_NO_SPACE, "org.freedesktop.Tracker.Error.NoSpace"},
+ {TRACKER_SPARQL_ERROR_INTERNAL, "org.freedesktop.Tracker.Error.Internal"},
+ {TRACKER_SPARQL_ERROR_UNSUPPORTED, "org.freedesktop.Tracker.Error.Unsupported"},
+ {TRACKER_SPARQL_ERROR_UNKNOWN_GRAPH, "org.freedesktop.Tracker.Error.UnknownGraph"},
+ {TRACKER_SPARQL_ERROR_ONTOLOGY_NOT_FOUND, "org.freedesktop.Tracker.Error.OntologyNotFound"},
+};
+
#define TRACKER_SPARQL_ERROR tracker_sparql_error_quark ()
TRACKER_AVAILABLE_IN_ALL
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]