tracker r2643 - in trunk: . src/libtracker-common src/tracker-indexer
- From: carlosg svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r2643 - in trunk: . src/libtracker-common src/tracker-indexer
- Date: Wed, 3 Dec 2008 14:45:22 +0000 (UTC)
Author: carlosg
Date: Wed Dec 3 14:45:22 2008
New Revision: 2643
URL: http://svn.gnome.org/viewvc/tracker?rev=2643&view=rev
Log:
2008-12-03 Carlos Garnacho <carlos imendio com>
* src/libtracker-common/tracker-type-utils.[ch]
(tracker_string_in_gslist): New function to know whether a string is
contained in a GSList of strings.
* src/tracker-indexer/tracker-indexer.c
(tracker_indexer_load_modules): Refactor out modules loading to this
function, also do not load ignored modules by tracker.cfg.
(tracker_indexer_finalize) (tracker_indexer_init): Misc changes.
Modified:
trunk/ChangeLog
trunk/src/libtracker-common/tracker-type-utils.c
trunk/src/libtracker-common/tracker-type-utils.h
trunk/src/tracker-indexer/tracker-indexer.c
Modified: trunk/src/libtracker-common/tracker-type-utils.c
==============================================================================
--- trunk/src/libtracker-common/tracker-type-utils.c (original)
+++ trunk/src/libtracker-common/tracker-type-utils.c Wed Dec 3 14:45:22 2008
@@ -644,6 +644,23 @@
return -1;
}
+gboolean
+tracker_string_in_gslist (const gchar *str,
+ GSList *list)
+{
+ GSList *l;
+
+ g_return_val_if_fail (str != NULL, FALSE);
+
+ for (l = list; l; l = l->next) {
+ if (g_strcmp0 (l->data, str) == 0) {
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
GSList *
tracker_string_list_to_gslist (gchar **strv,
gsize size)
Modified: trunk/src/libtracker-common/tracker-type-utils.h
==============================================================================
--- trunk/src/libtracker-common/tracker-type-utils.h (original)
+++ trunk/src/libtracker-common/tracker-type-utils.h Wed Dec 3 14:45:22 2008
@@ -45,6 +45,8 @@
guint *ret);
gint tracker_string_in_string_list (const gchar *str,
gchar **strv);
+gboolean tracker_string_in_gslist (const gchar *str,
+ GSList *list);
GSList * tracker_string_list_to_gslist (gchar **strv,
gsize length);
gchar * tracker_string_list_to_string (gchar **strv,
Modified: trunk/src/tracker-indexer/tracker-indexer.c
==============================================================================
--- trunk/src/tracker-indexer/tracker-indexer.c (original)
+++ trunk/src/tracker-indexer/tracker-indexer.c Wed Dec 3 14:45:22 2008
@@ -515,6 +515,8 @@
g_free (priv->db_dir);
g_hash_table_unref (priv->indexer_modules);
+
+ g_list_foreach (priv->module_names, (GFunc) g_free, NULL);
g_list_free (priv->module_names);
g_queue_foreach (priv->modules_queue, (GFunc) g_free, NULL);
@@ -819,6 +821,45 @@
}
static void
+tracker_indexer_load_modules (TrackerIndexer *indexer)
+{
+ TrackerIndexerPrivate *priv;
+ GSList *disabled_modules;
+ GList *modules, *l;
+
+ priv = indexer->private;
+ priv->indexer_modules = g_hash_table_new (g_str_hash, g_str_equal);
+
+ disabled_modules = tracker_config_get_disabled_modules (priv->config);
+ modules = tracker_module_config_get_modules ();
+
+ for (l = modules; l; l = l->next) {
+ TrackerIndexerModule *module;
+
+ if (!tracker_module_config_get_enabled (l->data)) {
+ continue;
+ }
+
+ if (tracker_string_in_gslist (l->data, disabled_modules)) {
+ continue;
+ }
+
+ module = tracker_indexer_module_get (l->data);
+
+ if (module) {
+ g_hash_table_insert (priv->indexer_modules,
+ l->data, module);
+
+ priv->module_names = g_list_prepend (priv->module_names,
+ g_strdup (l->data));
+ g_quark_from_string (l->data);
+ }
+ }
+
+ g_list_free (modules);
+}
+
+static void
tracker_indexer_init (TrackerIndexer *indexer)
{
TrackerIndexerPrivate *priv;
@@ -867,27 +908,7 @@
"tracker",
NULL);
- priv->module_names = tracker_module_config_get_modules ();
- for (l = priv->module_names; l; l = l->next) {
- g_quark_from_string (l->data);
- }
-
- priv->indexer_modules = g_hash_table_new (g_str_hash, g_str_equal);
-
- for (l = priv->module_names; l; l = l->next) {
- TrackerIndexerModule *module;
-
- if (!tracker_module_config_get_enabled (l->data)) {
- continue;
- }
-
- module = tracker_indexer_module_get (l->data);
-
- if (module) {
- g_hash_table_insert (priv->indexer_modules,
- l->data, module);
- }
- }
+ tracker_indexer_load_modules (indexer);
/* Set up indexer */
index = tracker_db_index_manager_get_index (TRACKER_DB_INDEX_FILE);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]