tracker r1803 - in branches/indexer-split: . src/tracker-indexer
- From: carlosg svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r1803 - in branches/indexer-split: . src/tracker-indexer
- Date: Mon, 30 Jun 2008 12:13:03 +0000 (UTC)
Author: carlosg
Date: Mon Jun 30 12:13:03 2008
New Revision: 1803
URL: http://svn.gnome.org/viewvc/tracker?rev=1803&view=rev
Log:
2008-06-30 Carlos Garnacho <carlos imendio com>
Make tracker-indexer just process petitions through DBus by default,
add a --process-all parameter to allow standalone testing.
* src/tracker-indexer/tracker-indexer.c (tracker_indexer_process_all):
Added, queues all known modules in the modules list, so all data is
processed.
* src/tracker-indexer/tracker-main.c: Add a --process-all commandline
argument, which triggers all modules processing without need of
DBus petitions.
Modified:
branches/indexer-split/ChangeLog
branches/indexer-split/src/tracker-indexer/tracker-indexer.c
branches/indexer-split/src/tracker-indexer/tracker-main.c
Modified: branches/indexer-split/src/tracker-indexer/tracker-indexer.c
==============================================================================
--- branches/indexer-split/src/tracker-indexer/tracker-indexer.c (original)
+++ branches/indexer-split/src/tracker-indexer/tracker-indexer.c Mon Jun 30 12:13:03 2008
@@ -39,6 +39,9 @@
* Once all queues are empty, all elements have been inspected, and the
* indexer will emit the ::finished signal, this behavior can be observed
* in the indexing_func() function.
+ *
+ * NOTE: Normally all indexing petitions will be sent over DBus, being
+ * everything just pushed in the files queue.
*/
#include <stdlib.h>
@@ -75,9 +78,9 @@
struct TrackerIndexerPrivate {
GQueue *dir_queue;
GQueue *file_process_queue;
+ GQueue *modules_queue;
GSList *module_names;
- GSList *current_module;
GHashTable *indexer_modules;
gchar *db_dir;
@@ -209,6 +212,9 @@
g_queue_foreach (priv->file_process_queue, (GFunc) path_info_free, NULL);
g_queue_free (priv->file_process_queue);
+ /* The queue doesn't own the module names */
+ g_queue_free (priv->modules_queue);
+
g_hash_table_destroy (priv->indexer_modules);
g_object_unref (priv->config);
@@ -311,6 +317,7 @@
priv->dir_queue = g_queue_new ();
priv->file_process_queue = g_queue_new ();
+ priv->modules_queue = g_queue_new ();
priv->config = tracker_config_new ();
priv->language = tracker_language_new (priv->config);
@@ -606,6 +613,7 @@
TrackerIndexer *indexer;
TrackerIndexerPrivate *priv;
PathInfo *path;
+ gchar *module;
indexer = (TrackerIndexer *) data;
priv = TRACKER_INDEXER_GET_PRIVATE (indexer);
@@ -622,13 +630,9 @@
path_info_free (path);
} else {
/* Dirs/files queues are empty, process the next module */
- if (!priv->current_module) {
- priv->current_module = priv->module_names;
- } else {
- priv->current_module = priv->current_module->next;
- }
+ module = g_queue_pop_head (priv->modules_queue);
- if (!priv->current_module) {
+ if (!module) {
/* Flush remaining items */
schedule_flush (indexer, TRUE);
@@ -643,7 +647,7 @@
return FALSE;
}
- process_module (indexer, priv->current_module->data);
+ process_module (indexer, module);
g_signal_emit (indexer, signals[INDEX_UPDATED], 0);
}
@@ -719,6 +723,19 @@
return TRUE;
}
+void
+tracker_indexer_process_all (TrackerIndexer *indexer)
+{
+ TrackerIndexerPrivate *priv;
+ GSList *m;
+
+ priv = TRACKER_INDEXER_GET_PRIVATE (indexer);
+
+ for (m = priv->module_names; m; m = m->next) {
+ g_queue_push_tail (priv->modules_queue, m->data);
+ }
+}
+
gboolean
tracker_indexer_files_check (TrackerIndexer *indexer,
GStrv files,
Modified: branches/indexer-split/src/tracker-indexer/tracker-main.c
==============================================================================
--- branches/indexer-split/src/tracker-indexer/tracker-main.c (original)
+++ branches/indexer-split/src/tracker-indexer/tracker-main.c Mon Jun 30 12:13:03 2008
@@ -57,6 +57,7 @@
static GMainLoop *main_loop;
static gint verbosity = -1;
+static gboolean process_all = FALSE;
static GOptionEntry entries[] = {
{ "verbosity", 'v', 0,
@@ -64,6 +65,10 @@
N_("Logging, 0 = errors only, "
"1 = minimal, 2 = detailed and 3 = debug (default = 0)"),
NULL },
+ { "process-all", 'p', 0,
+ G_OPTION_ARG_NONE, &process_all,
+ N_("Whether to process data from all configured modules to be indexed"),
+ NULL },
{ NULL }
};
@@ -255,6 +260,11 @@
g_signal_connect (indexer, "finished",
G_CALLBACK (indexer_finished_cb), NULL);
+ if (process_all) {
+ /* Tell the indexer to process all configured modules */
+ tracker_indexer_process_all (indexer);
+ }
+
g_message ("Starting...");
main_loop = g_main_loop_new (NULL, FALSE);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]