diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2022-07-14 11:42:50 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2022-07-17 15:01:57 +0200 |
commit | dad6b5f08640c1856651e24bb889a49ac49ff8c2 (patch) | |
tree | 93ee4bc424797daf04c622f357fc73d36bb6e724 /src/libtracker-sparql/direct/tracker-direct.c | |
parent | 25b55abcefa39076f6c794c46f4d6e5aad9aee95 (diff) | |
download | tracker-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.c | 47 |
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 * |