tracker r1917 - in branches/indexer-split: . src/tracker-indexer src/tracker-indexer/modules



Author: carlosg
Date: Wed Jul 23 15:07:49 2008
New Revision: 1917
URL: http://svn.gnome.org/viewvc/tracker?rev=1917&view=rev

Log:
2008-07-23  Carlos Garnacho  <carlos imendio com>

        * src/tracker-indexer/modules/applications.c:
        * src/tracker-indexer/modules/evolution.c:
        * src/tracker-indexer/modules/files.c:
        * src/tracker-indexer/tracker-indexer.c: Revert the "use TrackerField
        as metadata keys" patch, it's incomplete at the moment and adds extra
        lookup overhead. Probably a TrackerMetadata simple object to collect
        data and do some caching would be the best option.


Modified:
   branches/indexer-split/ChangeLog
   branches/indexer-split/src/tracker-indexer/modules/applications.c
   branches/indexer-split/src/tracker-indexer/modules/evolution.c
   branches/indexer-split/src/tracker-indexer/modules/files.c
   branches/indexer-split/src/tracker-indexer/tracker-indexer.c

Modified: branches/indexer-split/src/tracker-indexer/modules/applications.c
==============================================================================
--- branches/indexer-split/src/tracker-indexer/modules/applications.c	(original)
+++ branches/indexer-split/src/tracker-indexer/modules/applications.c	Wed Jul 23 15:07:49 2008
@@ -19,9 +19,7 @@
 
 #include <stdlib.h>
 #include <glib.h>
-#include <glib-object.h>
 #include <tracker-indexer/tracker-module.h>
-#include <libtracker-common/tracker-ontology.h>
 
 #define GROUP_DESKTOP_ENTRY "Desktop Entry"
 #define KEY_TYPE            "Type"
@@ -52,17 +50,14 @@
 }
 
 static void
-insert_data_from_desktop_file (GHashTable   *metadata,
-			       TrackerField *metadata_key,
-			       GKeyFile     *desktop_file,
-			       const gchar  *key,
-			       gboolean      use_locale)
+insert_data_from_desktop_file (GHashTable  *metadata,
+			       const gchar *metadata_key,
+			       GKeyFile    *desktop_file,
+			       const gchar *key,
+			       gboolean     use_locale)
 {
 	gchar *str;
 
-	if (!metadata_key)
-		return;
-
 	if (use_locale) {
 		str = g_key_file_get_locale_string (desktop_file, GROUP_DESKTOP_ENTRY, key, NULL, NULL);
 	} else {
@@ -70,7 +65,7 @@
 	}
 
 	if (str) {
-		g_hash_table_insert (metadata, g_object_ref (metadata_key), str);
+		g_hash_table_insert (metadata, (gpointer) metadata_key, str);
 	}
 }
 
@@ -80,7 +75,6 @@
 	GHashTable *metadata;
 	GKeyFile *key_file;
 	gchar *type, *filename;
-	TrackerField *field;
 
 	/* Check we're dealing with a desktop file */
 	if (!g_str_has_suffix (file->path, ".desktop")) {
@@ -108,57 +102,21 @@
 	}
 
 	/* Begin collecting data */
-	metadata = g_hash_table_new_full (g_direct_hash, g_direct_equal,
-					  (GDestroyNotify) g_object_unref,
+	metadata = g_hash_table_new_full (g_str_hash, g_str_equal,
+					  NULL,
 					  (GDestroyNotify) g_free);
 
-	insert_data_from_desktop_file (metadata, 
-				       tracker_ontology_get_field_def (METADATA_APP_NAME), 
-				       key_file, 
-				       KEY_NAME, 
-				       FALSE);
-
-	insert_data_from_desktop_file (metadata, 
-				       tracker_ontology_get_field_def (METADATA_APP_DISPLAY_NAME),
-				       key_file,
-				       KEY_NAME,
-				       TRUE);
-
-	insert_data_from_desktop_file (metadata, 
-				       tracker_ontology_get_field_def (METADATA_APP_GENERIC_NAME),
-				       key_file,
-				       KEY_GENERIC_NAME,
-				       TRUE);
-
-	insert_data_from_desktop_file (metadata, 
-				       tracker_ontology_get_field_def (METADATA_APP_COMMENT),
-				       key_file,
-				       KEY_COMMENT,
-				       TRUE);
-
-	insert_data_from_desktop_file (metadata, 
-				       tracker_ontology_get_field_def (METADATA_APP_EXECUTABLE),
-				       key_file,
-				       KEY_EXECUTABLE,
-				       FALSE);
-
-	insert_data_from_desktop_file (metadata, 
-				       tracker_ontology_get_field_def (METADATA_APP_ICON),
-				       key_file,
-				       KEY_ICON,
-				       FALSE);
+	insert_data_from_desktop_file (metadata, METADATA_APP_NAME, key_file, KEY_NAME, FALSE);
+	insert_data_from_desktop_file (metadata, METADATA_APP_DISPLAY_NAME, key_file, KEY_NAME, TRUE);
+	insert_data_from_desktop_file (metadata, METADATA_APP_GENERIC_NAME, key_file, KEY_GENERIC_NAME, TRUE);
+	insert_data_from_desktop_file (metadata, METADATA_APP_COMMENT, key_file, KEY_COMMENT, TRUE);
+	insert_data_from_desktop_file (metadata, METADATA_APP_EXECUTABLE, key_file, KEY_EXECUTABLE, FALSE);
+	insert_data_from_desktop_file (metadata, METADATA_APP_ICON, key_file, KEY_ICON, FALSE);
 
 	/* FIXME: mimetypes list and categories? */
 
 	filename = g_filename_display_basename (file->path);
-
-	field = tracker_ontology_get_field_def (METADATA_FILE_NAME);
-
-	if (field) {
-		g_hash_table_insert (metadata, 
-				     g_object_ref (field),
-				     filename);
-	}
+	g_hash_table_insert (metadata, METADATA_FILE_NAME, filename);
 
 	g_key_file_free (key_file);
 	g_free (type);

Modified: branches/indexer-split/src/tracker-indexer/modules/evolution.c
==============================================================================
--- branches/indexer-split/src/tracker-indexer/modules/evolution.c	(original)
+++ branches/indexer-split/src/tracker-indexer/modules/evolution.c	Wed Jul 23 15:07:49 2008
@@ -30,7 +30,6 @@
 #include <libtracker-common/tracker-utils.h>
 #include <libtracker-common/tracker-file-utils.h>
 #include <libtracker-common/tracker-type-utils.h>
-#include <libtracker-common/tracker-ontology.h>
 
 #define METADATA_FILE_PATH           "File:Path"
 #define METADATA_FILE_NAME           "File:Name"
@@ -563,19 +562,6 @@
         return id;
 }
 
-static void 
-insert_data_to_metadata (GHashTable *metadata, const gchar *name, gchar *value)
-{
-	TrackerField *field_def = tracker_ontology_get_field_def (name);
-	
-	if (field_def) {
-		g_hash_table_insert (metadata, 
-				     g_object_ref (field_def), 
-				     value);
-	}
-}
-
-
 GHashTable *
 get_metadata_for_mbox (TrackerFile *file)
 {
@@ -592,34 +578,24 @@
                 return NULL;
         }
 
-		metadata = g_hash_table_new_full (g_direct_hash, g_direct_equal,
-						  (GDestroyNotify) g_object_unref,
-						  (GDestroyNotify) g_free);
-
-		dir = tracker_string_replace (file->path, local_dir, NULL);
-		name = g_strdup_printf ("%s;uid=%d", dir, get_mbox_message_id (message));
-
-		insert_data_to_metadata (metadata, 
-					 tracker_ontology_get_field_def (METADATA_FILE_PATH),
-					 g_strdup ("email://local local"));
-
-		insert_data_to_metadata (metadata, 
-					 tracker_ontology_get_field_def (METADATA_FILE_NAME),
-					 name);
-
-		g_mime_message_get_date (message, &date, NULL);
-
-		insert_data_to_metadata (metadata, 
-					 tracker_ontology_get_field_def (METADATA_EMAIL_DATE),
-					 tracker_uint_to_string (date));
-
-		insert_data_to_metadata (metadata, 
-					 tracker_ontology_get_field_def (METADATA_EMAIL_SENDER),
-					 g_strdup (g_mime_message_get_sender (message)));
-
-		insert_data_to_metadata (metadata, 
-					 tracker_ontology_get_field_def (METADATA_EMAIL_SUBJECT),
-					 g_strdup (g_mime_message_get_subject (message)));
+	metadata = g_hash_table_new_full (g_str_hash, g_str_equal,
+					  NULL,
+					  (GDestroyNotify) g_free);
+
+        dir = tracker_string_replace (file->path, local_dir, NULL);
+        name = g_strdup_printf ("%s;uid=%d", dir, get_mbox_message_id (message));
+
+        g_hash_table_insert (metadata, METADATA_FILE_PATH, g_strdup ("email://local local"));
+        g_hash_table_insert (metadata, METADATA_FILE_NAME, name);
+
+        g_mime_message_get_date (message, &date, NULL);
+	g_hash_table_insert (metadata, METADATA_EMAIL_DATE,
+                             tracker_uint_to_string (date));
+
+        g_hash_table_insert (metadata, METADATA_EMAIL_SENDER,
+                             g_strdup (g_mime_message_get_sender (message)));
+        g_hash_table_insert (metadata, METADATA_EMAIL_SUBJECT,
+                             g_strdup (g_mime_message_get_subject (message)));
 
         /* Missing:
          *
@@ -740,33 +716,21 @@
                       SUMMARY_TYPE_STRING, NULL, /* mlist */
                       -1);
 
-		metadata = g_hash_table_new_full (g_direct_hash, g_direct_equal,
-						  (GDestroyNotify) g_object_unref,
-						  (GDestroyNotify) g_free);
+	metadata = g_hash_table_new_full (g_str_hash, g_str_equal,
+					  NULL,
+					  (GDestroyNotify) g_free);
 
-		get_imap_uri (file->path, &dirname, &basename);
+        get_imap_uri (file->path, &dirname, &basename);
 
-		insert_data_to_metadata (metadata, 
-					 tracker_ontology_get_field_def (METADATA_FILE_PATH),
-					 dirname);
-
-		insert_data_to_metadata (metadata, 
-					 tracker_ontology_get_field_def (METADATA_FILE_NAME),
-					 g_strdup_printf ("%s;uid=%s", basename, uid));
-
-		g_free (basename);
-
-		insert_data_to_metadata (metadata, 
-					 tracker_ontology_get_field_def (METADATA_EMAIL_DATE),
-					 tracker_uint_to_string (date));
+        g_hash_table_insert (metadata, METADATA_FILE_PATH, dirname);
+        g_hash_table_insert (metadata, METADATA_FILE_NAME, g_strdup_printf ("%s;uid=%s", basename, uid));
+        g_free (basename);
 
-		insert_data_to_metadata (metadata, 
-					 tracker_ontology_get_field_def (METADATA_EMAIL_SENDER), 
-					 from);
+	g_hash_table_insert (metadata, METADATA_EMAIL_DATE,
+                             tracker_uint_to_string (date));
 
-		insert_data_to_metadata (metadata, 
-					 tracker_ontology_get_field_def (METADATA_EMAIL_SUBJECT), 
-					 subject);
+        g_hash_table_insert (metadata, METADATA_EMAIL_SENDER, from);
+        g_hash_table_insert (metadata, METADATA_EMAIL_SUBJECT, subject);
 
         g_free (uid);
         g_free (to);

Modified: branches/indexer-split/src/tracker-indexer/modules/files.c
==============================================================================
--- branches/indexer-split/src/tracker-indexer/modules/files.c	(original)
+++ branches/indexer-split/src/tracker-indexer/modules/files.c	Wed Jul 23 15:07:49 2008
@@ -48,18 +48,6 @@
 	return "Files";
 }
 
-static void 
-insert_data_to_metadata (GHashTable *metadata, const gchar *name, gchar *value)
-{
-	TrackerField *field_def = tracker_ontology_get_field_def (name);
-	
-	if (field_def) {
-		g_hash_table_insert (metadata, 
-				     g_object_ref (field_def), 
-				     value);
-	}
-}
-
 static void
 tracker_metadata_get_embedded (const char *path,
 			       const char *mimetype,
@@ -137,9 +125,8 @@
 		if (!utf_value)
 			continue;
 
-		insert_data_to_metadata (table, 
-					 tracker_ontology_get_field_def (name), 
-					 utf_value);
+		/* FIXME: name should be const */
+		g_hash_table_insert (table, g_strdup (name), utf_value);
 	}
 
 	g_strfreev (values);
@@ -228,52 +215,39 @@
 	}
 
 	g_lstat (path, &st);
-	metadata = g_hash_table_new_full (g_direct_hash, g_direct_equal,
-					  (GDestroyNotify) g_object_unref,
+	metadata = g_hash_table_new_full (g_str_hash, g_str_equal,
+					  NULL,
 					  (GDestroyNotify) g_free);
 	ext = strrchr (path, '.');
 
 	if (ext) {
-		g_hash_table_insert (metadata, 
-				     g_object_ref (tracker_ontology_get_field_def (METADATA_FILE_EXT)), 
-				     g_strdup (ext + 1));
+		g_hash_table_insert (metadata, METADATA_FILE_EXT, g_strdup (ext + 1));
 	}
 
 	mimetype = tracker_file_get_mime_type (path);
 
-	insert_data_to_metadata (metadata, 
-				 tracker_ontology_get_field_def (METADATA_FILE_NAME), 
-				 g_filename_display_basename (path));
-	insert_data_to_metadata (metadata, 
-				 tracker_ontology_get_field_def (METADATA_FILE_PATH),
-				 g_path_get_dirname (path));
-	insert_data_to_metadata (metadata, 
-				 tracker_ontology_get_field_def (METADATA_FILE_NAME_DELIMITED),
-				 g_filename_to_utf8 (path, -1, NULL, NULL, NULL));
-	insert_data_to_metadata (metadata, 
-				 tracker_ontology_get_field_def (METADATA_FILE_MIMETYPE), 
-				 mimetype);
+	g_hash_table_insert (metadata, METADATA_FILE_NAME, g_filename_display_basename (path));
+	g_hash_table_insert (metadata, METADATA_FILE_PATH, g_path_get_dirname (path));
+	g_hash_table_insert (metadata, METADATA_FILE_NAME_DELIMITED,
+			     g_filename_to_utf8 (path, -1, NULL, NULL, NULL));
+	g_hash_table_insert (metadata, METADATA_FILE_MIMETYPE, mimetype);
 
 	if (S_ISLNK (st.st_mode)) {
 		gchar *link_path;
 
 		link_path = g_file_read_link (path, NULL);
-		insert_data_to_metadata (metadata, 
-					 tracker_ontology_get_field_def (METADATA_FILE_LINK),
-					 g_filename_to_utf8 (link_path, -1, NULL, NULL, NULL));
+		g_hash_table_insert (metadata, METADATA_FILE_LINK,
+				     g_filename_to_utf8 (link_path, -1, NULL, NULL, NULL));
 		g_free (link_path);
 	}
 
 	/* FIXME: These should be dealt directly as integer/times/whatever, not strings */
-	insert_data_to_metadata (metadata, 
-				 tracker_ontology_get_field_def (METADATA_FILE_SIZE),
-				 tracker_uint_to_string (st.st_size));
-	insert_data_to_metadata (metadata, 
-				 tracker_ontology_get_field_def (METADATA_FILE_MODIFIED),
-				 tracker_uint_to_string (st.st_mtime));
-	insert_data_to_metadata (metadata, 
-				 tracker_ontology_get_field_def (METADATA_FILE_ACCESSED),
-				 tracker_uint_to_string (st.st_atime));
+	g_hash_table_insert (metadata, METADATA_FILE_SIZE,
+			     tracker_uint_to_string (st.st_size));
+	g_hash_table_insert (metadata, METADATA_FILE_MODIFIED,
+			     tracker_uint_to_string (st.st_mtime));
+	g_hash_table_insert (metadata, METADATA_FILE_ACCESSED,
+			     tracker_uint_to_string (st.st_atime));
 
 	tracker_metadata_get_embedded (path, mimetype, metadata);
 

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	Wed Jul 23 15:07:49 2008
@@ -709,7 +709,7 @@
 		indexer_throttle (data->config, throttle * 100);
 	}
 
-	field = key;
+	field = tracker_ontology_get_field_def ((gchar *) key);
 
 	parsed_value = tracker_parser_text_to_string ((gchar *) value,
 						      data->language,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]