tracker r1895 - in branches/indexer-split: . src/libtracker-common src/tracker-indexer src/tracker-indexer/modules
- From: pvanhoof svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r1895 - in branches/indexer-split: . src/libtracker-common src/tracker-indexer src/tracker-indexer/modules
- Date: Mon, 21 Jul 2008 13:17:40 +0000 (UTC)
Author: pvanhoof
Date: Mon Jul 21 13:17:39 2008
New Revision: 1895
URL: http://svn.gnome.org/viewvc/tracker?rev=1895&view=rev
Log:
2008-07-17 Philip Van Hoof <pvanhoof gnome org>
* src/tracker-indexer/modules/files.c:
* src/tracker-indexer/modules/evolution.c:
* src/tracker-indexer/modules/applications.c:
* src/tracker-indexer/tracker-indexer.c:
tracker-indexer modules returned a GHashTable with field name/value
pairs, we now use TrackerField pointers for the hashtable keys, so we
could deal with values in their native format (instead of having to
convert everything to strings)
Modified:
branches/indexer-split/ChangeLog
branches/indexer-split/src/libtracker-common/tracker-ontology.c
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/libtracker-common/tracker-ontology.c
==============================================================================
--- branches/indexer-split/src/libtracker-common/tracker-ontology.c (original)
+++ branches/indexer-split/src/libtracker-common/tracker-ontology.c Mon Jul 21 13:17:39 2008
@@ -146,19 +146,19 @@
return;
}
- g_hash_table_destroy (service_directory_table);
+ g_hash_table_unref (service_directory_table);
service_directory_table = NULL;
- g_hash_table_destroy (service_id_table);
+ g_hash_table_unref (service_id_table);
service_id_table = NULL;
- g_hash_table_destroy (service_table);
+ g_hash_table_unref (service_table);
service_table = NULL;
- g_hash_table_destroy (mime_service);
+ g_hash_table_unref (mime_service);
mime_service = NULL;
- g_hash_table_destroy (metadata_table);
+ g_hash_table_unref (metadata_table);
metadata_table = NULL;
if (mime_prefix_service) {
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 Mon Jul 21 13:17:39 2008
@@ -19,7 +19,9 @@
#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"
@@ -102,21 +104,53 @@
}
/* Begin collecting data */
- metadata = g_hash_table_new_full (g_str_hash, g_str_equal,
- NULL,
+ metadata = g_hash_table_new_full (g_direct_hash, g_direct_equal,
+ (GDestroyNotify) g_object_unref,
(GDestroyNotify) g_free);
- 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);
+ insert_data_from_desktop_file (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_APP_NAME)),
+ key_file,
+ KEY_NAME,
+ FALSE);
+
+ insert_data_from_desktop_file (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_APP_DISPLAY_NAME)),
+ key_file,
+ KEY_NAME,
+ TRUE);
+
+ insert_data_from_desktop_file (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_APP_GENERIC_NAME)),
+ key_file,
+ KEY_GENERIC_NAME,
+ TRUE);
+
+ insert_data_from_desktop_file (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_APP_COMMENT)),
+ key_file,
+ KEY_COMMENT,
+ TRUE);
+
+ insert_data_from_desktop_file (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_APP_EXECUTABLE)),
+ key_file,
+ KEY_EXECUTABLE,
+ FALSE);
+
+ insert_data_from_desktop_file (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_APP_ICON)),
+ key_file,
+ KEY_ICON,
+ FALSE);
/* FIXME: mimetypes list and categories? */
filename = g_filename_display_basename (file->path);
- g_hash_table_insert (metadata, METADATA_FILE_NAME, filename);
+
+ g_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (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 Mon Jul 21 13:17:39 2008
@@ -30,6 +30,7 @@
#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"
@@ -578,24 +579,34 @@
return NULL;
}
- 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)));
+ 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));
+
+ g_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_FILE_PATH)),
+ g_strdup ("email://local local"));
+
+ g_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_FILE_NAME)),
+ name);
+
+ g_mime_message_get_date (message, &date, NULL);
+
+ g_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_EMAIL_DATE)),
+ tracker_uint_to_string (date));
+
+ g_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_EMAIL_SENDER)),
+ g_strdup (g_mime_message_get_sender (message)));
+
+ g_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_EMAIL_SUBJECT)),
+ g_strdup (g_mime_message_get_subject (message)));
/* Missing:
*
@@ -716,21 +727,33 @@
SUMMARY_TYPE_STRING, NULL, /* mlist */
-1);
- metadata = g_hash_table_new_full (g_str_hash, g_str_equal,
- NULL,
- (GDestroyNotify) g_free);
+ metadata = g_hash_table_new_full (g_direct_hash, g_direct_equal,
+ (GDestroyNotify) g_object_unref,
+ (GDestroyNotify) g_free);
- get_imap_uri (file->path, &dirname, &basename);
+ get_imap_uri (file->path, &dirname, &basename);
- 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);
+ g_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_FILE_PATH)),
+ dirname);
+
+ g_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_FILE_NAME)),
+ g_strdup_printf ("%s;uid=%s", basename, uid));
+
+ g_free (basename);
+
+ g_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_EMAIL_DATE)),
+ tracker_uint_to_string (date));
- g_hash_table_insert (metadata, METADATA_EMAIL_DATE,
- tracker_uint_to_string (date));
+ g_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_EMAIL_SENDER)),
+ from);
- g_hash_table_insert (metadata, METADATA_EMAIL_SENDER, from);
- g_hash_table_insert (metadata, METADATA_EMAIL_SUBJECT, subject);
+ g_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (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 Mon Jul 21 13:17:39 2008
@@ -125,8 +125,9 @@
if (!utf_value)
continue;
- /* FIXME: name should be const */
- g_hash_table_insert (table, g_strdup (name), utf_value);
+ g_hash_table_insert (table,
+ g_object_ref (tracker_ontology_get_field_def (name)),
+ utf_value);
}
g_strfreev (values);
@@ -215,38 +216,51 @@
}
g_lstat (path, &st);
- metadata = g_hash_table_new_full (g_str_hash, g_str_equal,
- NULL,
+ metadata = g_hash_table_new_full (g_direct_hash, g_direct_equal,
+ (GDestroyNotify) g_object_unref,
(GDestroyNotify) g_free);
ext = strrchr (path, '.');
if (ext) {
- g_hash_table_insert (metadata, METADATA_FILE_EXT, g_strdup (ext + 1));
+ g_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_FILE_EXT)),
+ g_strdup (ext + 1));
}
mimetype = tracker_file_get_mime_type (path);
- 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_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_FILE_NAME)),
+ g_filename_display_basename (path));
+ g_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_FILE_PATH)),
+ g_path_get_dirname (path));
+ g_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_FILE_NAME_DELIMITED)),
g_filename_to_utf8 (path, -1, NULL, NULL, NULL));
- g_hash_table_insert (metadata, METADATA_FILE_MIMETYPE, mimetype);
+ g_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_FILE_MIMETYPE)),
+ mimetype);
if (S_ISLNK (st.st_mode)) {
gchar *link_path;
link_path = g_file_read_link (path, NULL);
- g_hash_table_insert (metadata, METADATA_FILE_LINK,
+ g_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (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 */
- g_hash_table_insert (metadata, METADATA_FILE_SIZE,
+ g_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_FILE_SIZE)),
tracker_uint_to_string (st.st_size));
- g_hash_table_insert (metadata, METADATA_FILE_MODIFIED,
+ g_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (METADATA_FILE_MODIFIED)),
tracker_uint_to_string (st.st_mtime));
- g_hash_table_insert (metadata, METADATA_FILE_ACCESSED,
+ g_hash_table_insert (metadata,
+ g_object_ref (tracker_ontology_get_field_def (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 Mon Jul 21 13:17:39 2008
@@ -725,8 +725,7 @@
indexer_throttle (data->config, throttle * 100);
}
- /* Parse */
- field = tracker_ontology_get_field_def ((gchar *) key);
+ field = 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]