Commit 943dced8 authored by Carlos Garnacho's avatar Carlos Garnacho

libtracker-miner: Add connection property to TrackerFileNotifier

So it can be specified from the miner.
parent 75884bac
......@@ -39,7 +39,8 @@ static gboolean force_check_updated = FALSE;
enum {
PROP_0,
PROP_INDEXING_TREE,
PROP_DATA_PROVIDER
PROP_DATA_PROVIDER,
PROP_CONNECTION
};
enum {
......@@ -130,6 +131,9 @@ tracker_file_notifier_set_property (GObject *object,
case PROP_DATA_PROVIDER:
priv->data_provider = g_value_dup_object (value);
break;
case PROP_CONNECTION:
priv->connection = g_value_dup_object (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
......@@ -153,6 +157,9 @@ tracker_file_notifier_get_property (GObject *object,
case PROP_DATA_PROVIDER:
g_value_set_object (value, priv->data_provider);
break;
case PROP_CONNECTION:
g_value_set_object (value, priv->connection);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
......@@ -1775,6 +1782,14 @@ tracker_file_notifier_class_init (TrackerFileNotifierClass *klass)
TRACKER_TYPE_DATA_PROVIDER,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (object_class,
PROP_CONNECTION,
g_param_spec_object ("connection",
"Connection",
"Connection to use for queries",
TRACKER_SPARQL_TYPE_CONNECTION,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY));
g_type_class_add_private (object_class,
sizeof (TrackerFileNotifierClass));
......@@ -1798,21 +1813,12 @@ static void
tracker_file_notifier_init (TrackerFileNotifier *notifier)
{
TrackerFileNotifierPrivate *priv;
GError *error = NULL;
priv = notifier->priv =
G_TYPE_INSTANCE_GET_PRIVATE (notifier,
TRACKER_TYPE_FILE_NOTIFIER,
TrackerFileNotifierPrivate);
priv->connection = tracker_sparql_connection_get (NULL, &error);
if (error) {
g_warning ("Could not get SPARQL connection: %s\n",
error->message);
g_error_free (error);
}
priv->timer = g_timer_new ();
priv->stopped = TRUE;
......@@ -1837,14 +1843,16 @@ tracker_file_notifier_init (TrackerFileNotifier *notifier)
}
TrackerFileNotifier *
tracker_file_notifier_new (TrackerIndexingTree *indexing_tree,
TrackerDataProvider *data_provider)
tracker_file_notifier_new (TrackerIndexingTree *indexing_tree,
TrackerDataProvider *data_provider,
TrackerSparqlConnection *connection)
{
g_return_val_if_fail (TRACKER_IS_INDEXING_TREE (indexing_tree), NULL);
return g_object_new (TRACKER_TYPE_FILE_NOTIFIER,
"indexing-tree", indexing_tree,
"data-provider", data_provider,
"connection", connection,
NULL);
}
......
......@@ -80,7 +80,8 @@ GType tracker_file_notifier_get_type (void) G_GNUC_CONST;
TrackerFileNotifier *
tracker_file_notifier_new (TrackerIndexingTree *indexing_tree,
TrackerDataProvider *data_provider);
TrackerDataProvider *data_provider,
TrackerSparqlConnection *connection);
gboolean tracker_file_notifier_start (TrackerFileNotifier *notifier);
void tracker_file_notifier_stop (TrackerFileNotifier *notifier);
......
......@@ -708,7 +708,8 @@ miner_fs_initable_init (GInitable *initable,
/* Create the file notifier */
priv->file_notifier = tracker_file_notifier_new (priv->indexing_tree,
priv->data_provider);
priv->data_provider,
tracker_miner_get_connection (TRACKER_MINER (initable)));
if (!priv->file_notifier) {
g_set_error (error,
......
......@@ -31,6 +31,7 @@ AM_CPPFLAGS = \
-DLIBEXEC_PATH=\""$(libexecdir)"\" \
-DTEST_DATA_DIR=\""$(abs_top_srcdir)/tests/libtracker-miner/data"\" \
-DTEST_MINERS_DIR=\""$(abs_top_srcdir)/tests/libtracker-miner/mock-miners"\" \
-DTEST_ONTOLOGIES_DIR=\""$(abs_top_srcdir)/src/ontologies/nepomuk"\" \
-I$(top_srcdir)/src \
-I$(top_builddir)/src \
-I$(top_srcdir)/tests/common \
......
......@@ -43,6 +43,7 @@ typedef struct {
GFile *test_file;
gchar *test_path;
TrackerSparqlConnection *connection;
TrackerIndexingTree *indexing_tree;
GMainLoop *main_loop;
......@@ -261,12 +262,20 @@ static void
test_common_context_setup (TestCommonContext *fixture,
gconstpointer data)
{
GFile *data_loc, *ontology;
GError *error = NULL;
fixture->test_path = g_build_filename (g_get_tmp_dir (),
"tracker-test-XXXXXX",
NULL);
fixture->test_path = g_mkdtemp (fixture->test_path);
fixture->test_file = g_file_new_for_path (fixture->test_path);
data_loc = g_file_get_child (fixture->test_file, ".data");
ontology = g_file_new_for_path (TEST_ONTOLOGIES_DIR);
fixture->connection = tracker_sparql_connection_local_new (0, data_loc, data_loc, ontology, NULL, &error);
g_assert_no_error (error);
fixture->ops = NULL;
/* Create basic folders within the test location */
......@@ -278,7 +287,8 @@ test_common_context_setup (TestCommonContext *fixture,
tracker_indexing_tree_set_filter_hidden (fixture->indexing_tree, TRUE);
fixture->main_loop = g_main_loop_new (NULL, FALSE);
fixture->notifier = tracker_file_notifier_new (fixture->indexing_tree, FALSE);
fixture->notifier = tracker_file_notifier_new (fixture->indexing_tree, FALSE,
fixture->connection);
g_signal_connect (fixture->notifier, "file-created",
G_CALLBACK (file_notifier_file_created_cb), fixture);
......@@ -317,6 +327,7 @@ test_common_context_teardown (TestCommonContext *fixture,
g_free (fixture->test_path);
}
g_clear_object (&fixture->connection);
}
static gboolean
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment