tracker r2772 - in trunk: . src/tracker-indexer src/tracker-indexer/modules
- From: carlosg svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r2772 - in trunk: . src/tracker-indexer src/tracker-indexer/modules
- Date: Thu, 8 Jan 2009 11:30:49 +0000 (UTC)
Author: carlosg
Date: Thu Jan 8 11:30:49 2009
New Revision: 2772
URL: http://svn.gnome.org/viewvc/tracker?rev=2772&view=rev
Log:
2009-01-08 Carlos Garnacho <carlos imendio com>
* src/tracker-indexer/tracker-module-file.[ch]: Add get_flags()
method. TrackerModuleFlags at the moment contains
TRACKER_FILE_CONTENTS_STATIC, used for contents that are not prone to
change.
* src/tracker-indexer/tracker-indexer.c: Do not try to update static
items in the database, since all the metadata comparison is going to
be expensive and useless if the data isn't changing.
* src/tracker-indexer/modules/evolution-pop.c:
* src/tracker-indexer/modules/evolution-imap.c:
* src/tracker-indexer/modules/evolution-imap-db.c: Implement
get_flags().
Modified:
trunk/ChangeLog
trunk/src/tracker-indexer/modules/evolution-imap-db.c
trunk/src/tracker-indexer/modules/evolution-imap.c
trunk/src/tracker-indexer/modules/evolution-pop.c
trunk/src/tracker-indexer/tracker-indexer.c
trunk/src/tracker-indexer/tracker-module-file.c
trunk/src/tracker-indexer/tracker-module-file.h
Modified: trunk/src/tracker-indexer/modules/evolution-imap-db.c
==============================================================================
--- trunk/src/tracker-indexer/modules/evolution-imap-db.c (original)
+++ trunk/src/tracker-indexer/modules/evolution-imap-db.c Thu Jan 8 11:30:49 2009
@@ -75,6 +75,8 @@
static gchar * tracker_evolution_imap_db_file_get_text (TrackerModuleFile *file);
static TrackerModuleMetadata *
tracker_evolution_imap_db_file_get_metadata (TrackerModuleFile *file);
+static TrackerModuleFlags
+ tracker_evolution_imap_db_file_get_flags (TrackerModuleFile *file);
static void tracker_evolution_imap_db_file_iteratable_init (TrackerModuleIteratableIface *iface);
static gboolean tracker_evolution_imap_db_file_iter_contents (TrackerModuleIteratable *iteratable);
@@ -99,6 +101,7 @@
file_class->get_uri = tracker_evolution_imap_db_file_get_uri;
file_class->get_text = tracker_evolution_imap_db_file_get_text;
file_class->get_metadata = tracker_evolution_imap_db_file_get_metadata;
+ file_class->get_flags = tracker_evolution_imap_db_file_get_flags;
}
static void
@@ -840,6 +843,12 @@
}
}
+static TrackerModuleFlags
+tracker_evolution_imap_db_file_get_flags (TrackerModuleFile *file)
+{
+ return TRACKER_FILE_CONTENTS_STATIC;
+}
+
static GList *
extract_mime_parts (TrackerEvolutionImapDbFile *self)
{
Modified: trunk/src/tracker-indexer/modules/evolution-imap.c
==============================================================================
--- trunk/src/tracker-indexer/modules/evolution-imap.c (original)
+++ trunk/src/tracker-indexer/modules/evolution-imap.c Thu Jan 8 11:30:49 2009
@@ -75,6 +75,8 @@
static gchar * tracker_evolution_imap_file_get_text (TrackerModuleFile *file);
static TrackerModuleMetadata *
tracker_evolution_imap_file_get_metadata (TrackerModuleFile *file);
+static TrackerModuleFlags
+ tracker_evolution_imap_file_get_flags (TrackerModuleFile *file);
static void tracker_evolution_imap_file_iteratable_init (TrackerModuleIteratableIface *iface);
static gboolean tracker_evolution_imap_file_iter_contents (TrackerModuleIteratable *iteratable);
@@ -99,6 +101,7 @@
file_class->get_uri = tracker_evolution_imap_file_get_uri;
file_class->get_text = tracker_evolution_imap_file_get_text;
file_class->get_metadata = tracker_evolution_imap_file_get_metadata;
+ file_class->get_flags = tracker_evolution_imap_file_get_flags;
}
static void
@@ -1072,6 +1075,12 @@
}
}
+static TrackerModuleFlags
+tracker_evolution_imap_file_get_flags (TrackerModuleFile *file)
+{
+ return TRACKER_FILE_CONTENTS_STATIC;
+}
+
static GList *
extract_mime_parts (TrackerEvolutionImapFile *self)
{
Modified: trunk/src/tracker-indexer/modules/evolution-pop.c
==============================================================================
--- trunk/src/tracker-indexer/modules/evolution-pop.c (original)
+++ trunk/src/tracker-indexer/modules/evolution-pop.c Thu Jan 8 11:30:49 2009
@@ -50,6 +50,8 @@
static gchar * tracker_evolution_pop_file_get_text (TrackerModuleFile *file);
static TrackerModuleMetadata *
tracker_evolution_pop_file_get_metadata (TrackerModuleFile *file);
+static TrackerModuleFlags
+ tracker_evolution_pop_file_get_flags (TrackerModuleFile *file);
static void tracker_evolution_pop_file_iteratable_init (TrackerModuleIteratableIface *iface);
static gboolean tracker_evolution_pop_file_iter_contents (TrackerModuleIteratable *iteratable);
@@ -73,6 +75,7 @@
file_class->get_uri = tracker_evolution_pop_file_get_uri;
file_class->get_text = tracker_evolution_pop_file_get_text;
file_class->get_metadata = tracker_evolution_pop_file_get_metadata;
+ file_class->get_flags = tracker_evolution_pop_file_get_flags;
}
static void
@@ -412,6 +415,12 @@
return metadata;
}
+static TrackerModuleFlags
+tracker_evolution_pop_file_get_flags (TrackerModuleFile *file)
+{
+ return TRACKER_FILE_CONTENTS_STATIC;
+}
+
static void
extract_mime_parts (GMimeObject *object,
gpointer user_data)
Modified: trunk/src/tracker-indexer/tracker-indexer.c
==============================================================================
--- trunk/src/tracker-indexer/tracker-indexer.c (original)
+++ trunk/src/tracker-indexer/tracker-indexer.c Thu Jan 8 11:30:49 2009
@@ -1412,6 +1412,14 @@
gchar *old_text;
gchar *new_text;
+ if (tracker_module_file_get_flags (info->module_file) & TRACKER_FILE_CONTENTS_STATIC) {
+ /* According to the module, the metadata can't change for this item */
+ g_debug ("Not updating static item '%s/%s'",
+ dirname,
+ basename);
+ return;
+ }
+
/* Update case */
g_debug ("Updating item '%s/%s'",
dirname,
Modified: trunk/src/tracker-indexer/tracker-module-file.c
==============================================================================
--- trunk/src/tracker-indexer/tracker-module-file.c (original)
+++ trunk/src/tracker-indexer/tracker-module-file.c Thu Jan 8 11:30:49 2009
@@ -53,6 +53,23 @@
G_DEFINE_ABSTRACT_TYPE (TrackerModuleFile, tracker_module_file, G_TYPE_OBJECT)
+GType
+tracker_module_flags_get_type (void)
+{
+ static GType etype = 0;
+
+ if (!etype) {
+ static const GEnumValue values[] = {
+ { TRACKER_FILE_CONTENTS_STATIC, "TRACKER_FILE_CONTENTS_STATIC", "contents-static" },
+ { 0, NULL, NULL }
+ };
+
+ etype = g_enum_register_static ("TrackerModuleFlags", values);
+ }
+
+ return etype;
+}
+
static void
tracker_module_file_class_init (TrackerModuleFileClass *klass)
{
@@ -271,3 +288,21 @@
return metadata;
}
+
+/**
+ * tracker_module_file_get_flags:
+ * @file: A #TrackerModuleFile
+ *
+ * Returns the flags correspoinding to @file in the current state (see #TrackerModuleIteratable)
+ *
+ * Returns: Flags for @file
+ **/
+TrackerModuleFlags
+tracker_module_file_get_flags (TrackerModuleFile *file)
+{
+ if (TRACKER_MODULE_FILE_GET_CLASS (file)->get_flags != NULL) {
+ return TRACKER_MODULE_FILE_GET_CLASS (file)->get_flags (file);
+ }
+
+ return 0;
+}
Modified: trunk/src/tracker-indexer/tracker-module-file.h
==============================================================================
--- trunk/src/tracker-indexer/tracker-module-file.h (original)
+++ trunk/src/tracker-indexer/tracker-module-file.h Thu Jan 8 11:30:49 2009
@@ -41,6 +41,11 @@
typedef struct TrackerModuleFile TrackerModuleFile;
typedef struct TrackerModuleFileClass TrackerModuleFileClass;
+typedef enum TrackerModuleFlags TrackerModuleFlags;
+
+enum TrackerModuleFlags {
+ TRACKER_FILE_CONTENTS_STATIC = 1 << 0
+};
struct TrackerModuleFile {
GObject parent_instance;
@@ -54,9 +59,10 @@
gchar * (* get_uri) (TrackerModuleFile *file);
gchar * (* get_text) (TrackerModuleFile *file);
TrackerModuleMetadata * (* get_metadata) (TrackerModuleFile *file);
+ TrackerModuleFlags (* get_flags) (TrackerModuleFile *file);
};
-
+GType tracker_module_flags_get_type (void) G_GNUC_CONST;
GType tracker_module_file_get_type (void) G_GNUC_CONST;
GFile * tracker_module_file_get_file (TrackerModuleFile *file);
@@ -64,6 +70,7 @@
gchar * tracker_module_file_get_uri (TrackerModuleFile *file);
gchar * tracker_module_file_get_text (TrackerModuleFile *file);
TrackerModuleMetadata * tracker_module_file_get_metadata (TrackerModuleFile *file);
+TrackerModuleFlags tracker_module_file_get_flags (TrackerModuleFile *file);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]