summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2017-06-20 00:05:57 +0200
committerCarlos Garnacho <carlosg@gnome.org>2017-06-29 20:49:06 +0200
commitd53168d9efa83ef37ae7698e1027da087488ece6 (patch)
tree8df4fee81277863f7d73baa6771ac6791fa69669
parent9f18273c6c629ca6ba3a65cc24b0cd77c352a168 (diff)
downloadtracker-d53168d9efa83ef37ae7698e1027da087488ece6.tar.gz
libtracker-miner: Add TrackerMiner::connection property
So it is possible to use TrackerMiner facilities in-process using a dedicated TrackerSparqlConnection. Basically store and mining handled by the client app.
-rw-r--r--src/libtracker-miner/tracker-miner-object.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/libtracker-miner/tracker-miner-object.c b/src/libtracker-miner/tracker-miner-object.c
index 487a331d7..ec54de4e1 100644
--- a/src/libtracker-miner/tracker-miner-object.c
+++ b/src/libtracker-miner/tracker-miner-object.c
@@ -78,6 +78,7 @@ enum {
PROP_STATUS,
PROP_PROGRESS,
PROP_REMAINING_TIME,
+ PROP_CONNECTION
};
enum {
@@ -258,6 +259,14 @@ tracker_miner_class_init (TrackerMinerClass *klass)
G_MAXINT,
-1,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_CONNECTION,
+ g_param_spec_object ("connection",
+ "Connection",
+ "SPARQL Connection",
+ TRACKER_SPARQL_TYPE_CONNECTION,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY));
g_type_class_add_private (object_class, sizeof (TrackerMinerPrivate));
}
@@ -276,8 +285,11 @@ miner_initable_init (GInitable *initable,
TrackerMiner *miner = TRACKER_MINER (initable);
GError *inner_error = NULL;
- /* Try to get SPARQL connection... */
- miner->priv->connection = tracker_sparql_connection_get (NULL, &inner_error);
+ if (!miner->priv->connection) {
+ /* Try to get SPARQL connection... */
+ miner->priv->connection = tracker_sparql_connection_get (NULL, &inner_error);
+ }
+
if (!miner->priv->connection) {
g_propagate_error (error, inner_error);
return FALSE;
@@ -429,6 +441,10 @@ miner_set_property (GObject *object,
}
break;
}
+ case PROP_CONNECTION: {
+ miner->priv->connection = g_value_dup_object (value);
+ break;
+ }
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -453,6 +469,8 @@ miner_get_property (GObject *object,
case PROP_REMAINING_TIME:
g_value_set_int (value, miner->priv->remaining_time);
break;
+ case PROP_CONNECTION:
+ g_value_set_object (value, miner->priv->connection);
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;