tracker r1917 - in branches/indexer-split: . src/tracker-indexer src/tracker-indexer/modules
- From: carlosg svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r1917 - in branches/indexer-split: . src/tracker-indexer src/tracker-indexer/modules
- Date: Wed, 23 Jul 2008 15:07:50 +0000 (UTC)
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]