summaryrefslogtreecommitdiff
path: root/src/libtracker-sparql/tracker-serializer.c
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2020-12-12 15:57:10 +0100
committerCarlos Garnacho <carlosg@gnome.org>2020-12-13 20:51:54 +0100
commit9b884eef2d5544caeb417f5ba1a440e082025791 (patch)
tree9b3929a109abf025d022beb8ae1c07f8ccec123b /src/libtracker-sparql/tracker-serializer.c
parentc454bb8af370fa7a629547a79c1a7440452de872 (diff)
downloadtracker-9b884eef2d5544caeb417f5ba1a440e082025791.tar.gz
libtracker-sparql: Hook XML/JSON serializers to constructor
So they can be used just giving the expected TrackerSerializerFormat.
Diffstat (limited to 'src/libtracker-sparql/tracker-serializer.c')
-rw-r--r--src/libtracker-sparql/tracker-serializer.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/libtracker-sparql/tracker-serializer.c b/src/libtracker-sparql/tracker-serializer.c
index f96b439ab..4109bfafe 100644
--- a/src/libtracker-sparql/tracker-serializer.c
+++ b/src/libtracker-sparql/tracker-serializer.c
@@ -22,6 +22,8 @@
#include "config.h"
#include "tracker-serializer.h"
+#include "tracker-serializer-json.h"
+#include "tracker-serializer-xml.h"
#include "tracker-private.h"
@@ -125,7 +127,23 @@ GInputStream *
tracker_serializer_new (TrackerSparqlCursor *cursor,
TrackerSerializerFormat format)
{
- return NULL;
+ GType type;
+
+ g_return_val_if_fail (TRACKER_IS_SPARQL_CURSOR (cursor), NULL);
+
+ switch (format) {
+ case TRACKER_SERIALIZER_FORMAT_JSON:
+ type = TRACKER_TYPE_SERIALIZER_JSON;
+ break;
+ case TRACKER_SERIALIZER_FORMAT_XML:
+ type = TRACKER_TYPE_SERIALIZER_XML;
+ break;
+ default:
+ g_warn_if_reached ();
+ return NULL;
+ }
+
+ return g_object_new (type, "cursor", cursor, NULL);
}
TrackerSparqlCursor *