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