summaryrefslogtreecommitdiff
path: root/src/libtracker-sparql/direct/tracker-direct.c
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2022-07-14 11:42:50 +0200
committerCarlos Garnacho <carlosg@gnome.org>2022-07-17 15:01:57 +0200
commitdad6b5f08640c1856651e24bb889a49ac49ff8c2 (patch)
tree93ee4bc424797daf04c622f357fc73d36bb6e724 /src/libtracker-sparql/direct/tracker-direct.c
parent25b55abcefa39076f6c794c46f4d6e5aad9aee95 (diff)
downloadtracker-dad6b5f08640c1856651e24bb889a49ac49ff8c2.tar.gz
libtracker-sparql: Declare direct connection constructors in C code
We currently have a series of vapi files, just so that the TrackerSparqlConnection constructors are defined in tracker-backend.vala. Shuffle this so that we declare the direct connection right at tracker-connection.c, and avoid/drop all those vapi files.
Diffstat (limited to 'src/libtracker-sparql/direct/tracker-direct.c')
-rw-r--r--src/libtracker-sparql/direct/tracker-direct.c47
1 files changed, 38 insertions, 9 deletions
diff --git a/src/libtracker-sparql/direct/tracker-direct.c b/src/libtracker-sparql/direct/tracker-direct.c
index 0cef224e0..a8c965520 100644
--- a/src/libtracker-sparql/direct/tracker-direct.c
+++ b/src/libtracker-sparql/direct/tracker-direct.c
@@ -1544,21 +1544,50 @@ tracker_direct_connection_class_init (TrackerDirectConnectionClass *klass)
g_object_class_install_properties (object_class, N_PROPS, props);
}
-TrackerDirectConnection *
+TrackerSparqlConnection *
tracker_direct_connection_new (TrackerSparqlConnectionFlags flags,
GFile *store,
GFile *ontology,
GError **error)
{
- g_return_val_if_fail (!store || G_IS_FILE (store), NULL);
- g_return_val_if_fail (!ontology || G_IS_FILE (ontology), NULL);
- g_return_val_if_fail (!error || !*error, NULL);
+ return g_initable_new (TRACKER_TYPE_DIRECT_CONNECTION,
+ NULL, error,
+ "flags", flags,
+ "store-location", store,
+ "ontology-location", ontology,
+ NULL);
+}
- return g_object_new (TRACKER_TYPE_DIRECT_CONNECTION,
- "flags", flags,
- "store-location", store,
- "ontology-location", ontology,
- NULL);
+void
+tracker_direct_connection_new_async (TrackerSparqlConnectionFlags flags,
+ GFile *store,
+ GFile *ontology,
+ GCancellable *cancellable,
+ GAsyncReadyCallback cb,
+ gpointer user_data)
+{
+ g_async_initable_new_async (TRACKER_TYPE_DIRECT_CONNECTION,
+ G_PRIORITY_DEFAULT,
+ cancellable,
+ cb,
+ user_data,
+ "flags", flags,
+ "store-location", store,
+ "ontology-location", ontology,
+ NULL);
+}
+
+TrackerSparqlConnection *
+tracker_direct_connection_new_finish (GAsyncResult *res,
+ GError **error)
+{
+ GAsyncInitable *initable;
+
+ initable = g_task_get_source_object (G_TASK (res));
+
+ return TRACKER_SPARQL_CONNECTION (g_async_initable_new_finish (initable,
+ res,
+ error));
}
TrackerDataManager *