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



Author: carlosg
Date: Wed Jul 30 15:44:03 2008
New Revision: 1966
URL: http://svn.gnome.org/viewvc/tracker?rev=1966&view=rev

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

        * src/tracker-indexer/tracker-metadata.[ch]: Make it accept just
        strings and lists of strings at the moment, strings are anyways needed
        to insert values through stored DB procedures, and there are some
        metadata types that will be difficult to store in a generic way.
        Since this API will be used from third party code, any failure in
        there will be quite hard to debug if we use a generic API, (it will
        probably crash inside tracker-indexer code, making things harder).
        By using strings we guarantee that at least sloppy third party module
        developers will get compiler warnings, which is safer.
        * src/tracker-indexer/tracker-indexer.c (index_metadata_item): Adapt
        to API change.
        * src/tracker-indexer/modules/files.c (tracker_metadata_get_embedded):
        Remove unnecessary check.


Modified:
   branches/indexer-split/ChangeLog
   branches/indexer-split/src/tracker-indexer/modules/files.c
   branches/indexer-split/src/tracker-indexer/tracker-indexer.c
   branches/indexer-split/src/tracker-indexer/tracker-metadata.c
   branches/indexer-split/src/tracker-indexer/tracker-metadata.h

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 30 15:44:03 2008
@@ -113,9 +113,6 @@
 		if (!name || !value)
 			continue;
 
-		if (tracker_metadata_lookup (metadata, name))
-			continue;
-
 		if (!g_utf8_validate (value, -1, NULL)) {
 			utf_value = g_locale_to_utf8 (value, -1, NULL, NULL, NULL);
 		} else {

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 30 15:44:03 2008
@@ -696,14 +696,14 @@
 
 static void
 index_metadata_item (TrackerField        *field,
-		     gpointer             value,
+		     const gchar         *value,
 		     MetadataForeachData *data)
 {
 	gchar *parsed_value;
 	gchar **arr;
 	gint i;
 
-	parsed_value = tracker_parser_text_to_string ((gchar *) value,
+	parsed_value = tracker_parser_text_to_string (value,
 						      data->language,
 						      tracker_config_get_max_word_length (data->config),
 						      tracker_config_get_min_word_length (data->config),

Modified: branches/indexer-split/src/tracker-indexer/tracker-metadata.c
==============================================================================
--- branches/indexer-split/src/tracker-indexer/tracker-metadata.c	(original)
+++ branches/indexer-split/src/tracker-indexer/tracker-metadata.c	Wed Jul 30 15:44:03 2008
@@ -36,7 +36,7 @@
         metadata->table = g_hash_table_new_full (g_direct_hash,
                                                  g_direct_equal,
                                                  (GDestroyNotify) g_object_unref,
-                                                 NULL);
+						 NULL);
         return metadata;
 }
 
@@ -45,81 +45,49 @@
                          gpointer value,
                          gpointer user_data)
 {
-        TrackerField *field;
+	TrackerField *field;
 
-        field = (TrackerField *) key;
+	field = (TrackerField *) key;
 
-        if (tracker_field_get_multiple_values (field)) {
-                GList *list = (GList *) value;
+	if (tracker_field_get_multiple_values (field)) {
+		GList *list;
 
-                switch (tracker_field_get_data_type (field)) {
-                case TRACKER_FIELD_TYPE_KEYWORD:
-                case TRACKER_FIELD_TYPE_INDEX:
-                case TRACKER_FIELD_TYPE_FULLTEXT:
-                case TRACKER_FIELD_TYPE_STRING:
-                        g_list_foreach (list, (GFunc) g_free, NULL);
-                        /* pass through */
-                case TRACKER_FIELD_TYPE_INTEGER:
-                case TRACKER_FIELD_TYPE_DOUBLE:
-                case TRACKER_FIELD_TYPE_DATE:
-                        g_list_free (list);
-                        break;
-                case TRACKER_FIELD_TYPE_BLOB:
-                case TRACKER_FIELD_TYPE_STRUCT:
-                case TRACKER_FIELD_TYPE_LINK:
-                default:
-                        /* Unhandled for now */
-                        break;
-                }
-        } else {
-                switch (tracker_field_get_data_type (field)) {
-                case TRACKER_FIELD_TYPE_KEYWORD:
-                case TRACKER_FIELD_TYPE_INDEX:
-                case TRACKER_FIELD_TYPE_FULLTEXT:
-                case TRACKER_FIELD_TYPE_STRING:
-                        g_free (value);
-                        break;
-                case TRACKER_FIELD_TYPE_INTEGER:
-                case TRACKER_FIELD_TYPE_DOUBLE:
-                case TRACKER_FIELD_TYPE_DATE:
-                        /* Nothing to free here */
-                        break;
-                case TRACKER_FIELD_TYPE_BLOB:
-                case TRACKER_FIELD_TYPE_STRUCT:
-                case TRACKER_FIELD_TYPE_LINK:
-                default:
-                        /* Unhandled for now */
-                        break;
-                }
-        }
+		list = (GList *) value;
+		g_list_foreach (list, (GFunc) g_free, NULL);
+		g_list_free (list);
+	} else {
+		g_free (value);
+	}
 
-        return TRUE;
+	return TRUE;
 }
 
 void
 tracker_metadata_free (TrackerMetadata *metadata)
 {
-        g_hash_table_foreach_remove (metadata->table,
+	g_hash_table_foreach_remove (metadata->table,
                                      remove_metadata_foreach,
                                      NULL);
-        g_hash_table_destroy (metadata->table);
+
+	g_hash_table_destroy (metadata->table);
         g_slice_free (TrackerMetadata, metadata);
 }
 
 void
 tracker_metadata_insert (TrackerMetadata *metadata,
                          const gchar     *field_name,
-                         gpointer         value)
+			 gchar           *value)
 {
         TrackerField *field;
 
         field = tracker_ontology_get_field_def (field_name);
 
+	g_return_if_fail (TRACKER_IS_FIELD (field));
         g_return_if_fail (tracker_field_get_multiple_values (field) == FALSE);
 
         g_hash_table_insert (metadata->table,
                              g_object_ref (field),
-                             value);
+			     value);
 }
 
 void
@@ -131,6 +99,7 @@
 
         field = tracker_ontology_get_field_def (field_name);
 
+	g_return_if_fail (TRACKER_IS_FIELD (field));
         g_return_if_fail (tracker_field_get_multiple_values (field) == TRUE);
 
         g_hash_table_insert (metadata->table,
@@ -138,7 +107,7 @@
                              list);
 }
 
-gpointer
+G_CONST_RETURN gchar *
 tracker_metadata_lookup (TrackerMetadata *metadata,
                          const gchar     *field_name)
 {
@@ -146,6 +115,7 @@
 
         field = tracker_ontology_get_field_def (field_name);
 
+	g_return_val_if_fail (TRACKER_IS_FIELD (field), NULL);
         g_return_val_if_fail (tracker_field_get_multiple_values (field) == FALSE, NULL);
 
         return g_hash_table_lookup (metadata->table, field);
@@ -159,6 +129,7 @@
 
         field = tracker_ontology_get_field_def (field_name);
 
+	g_return_val_if_fail (TRACKER_IS_FIELD (field), NULL);
         g_return_val_if_fail (tracker_field_get_multiple_values (field) == TRUE, NULL);
 
         return g_hash_table_lookup (metadata->table, field);

Modified: branches/indexer-split/src/tracker-indexer/tracker-metadata.h
==============================================================================
--- branches/indexer-split/src/tracker-indexer/tracker-metadata.h	(original)
+++ branches/indexer-split/src/tracker-indexer/tracker-metadata.h	Wed Jul 30 15:44:03 2008
@@ -36,12 +36,12 @@
 
 void                   tracker_metadata_insert                 (TrackerMetadata *metadata,
 								const gchar     *field_name,
-								gpointer         value);
+								gchar           *value);
 void                   tracker_metadata_insert_multiple_values (TrackerMetadata *metadata,
 								const gchar     *field_name,
 								GList           *list);
 
-gpointer               tracker_metadata_lookup                 (TrackerMetadata *metadata,
+G_CONST_RETURN gchar * tracker_metadata_lookup                 (TrackerMetadata *metadata,
 								const gchar     *field_name);
 G_CONST_RETURN GList * tracker_metadata_lookup_multiple_values (TrackerMetadata *metadata,
 								const gchar     *field_name);



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