tracker r1585 - in branches/indexer-split: . src/trackerd



Author: ifrade
Date: Thu Jun  5 09:36:35 2008
New Revision: 1585
URL: http://svn.gnome.org/viewvc/tracker?rev=1585&view=rev

Log:
Email plugins with a common interface

Added:
   branches/indexer-split/src/trackerd/tracker-email-plugin.h
Modified:
   branches/indexer-split/ChangeLog
   branches/indexer-split/src/trackerd/tracker-email-evolution.c
   branches/indexer-split/src/trackerd/tracker-email-kmail.c
   branches/indexer-split/src/trackerd/tracker-email-modest.c
   branches/indexer-split/src/trackerd/tracker-email-thunderbird.c
   branches/indexer-split/src/trackerd/tracker-email-utils.c
   branches/indexer-split/src/trackerd/tracker-email-utils.h
   branches/indexer-split/src/trackerd/tracker-email.c
   branches/indexer-split/src/trackerd/tracker-email.h
   branches/indexer-split/src/trackerd/tracker-main.c

Modified: branches/indexer-split/src/trackerd/tracker-email-evolution.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-email-evolution.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-email-evolution.c	Thu Jun  5 09:36:35 2008
@@ -31,8 +31,7 @@
 
 #include <glib/gstdio.h>
 
-#include <libtracker-common/tracker-log.h>
-#include <libtracker-common/tracker-config.h>
+
 #include <libtracker-common/tracker-file-utils.h>
 #include <libtracker-common/tracker-type-utils.h>
 #include <libtracker-common/tracker-utils.h>
@@ -41,6 +40,7 @@
 
 #include "tracker-email-utils.h"
 #include "tracker-db-email.h"
+#include "tracker-email-plugin.h"
 #include "tracker-dbus.h"
 #include "tracker-daemon.h"
 #include "tracker-watcher.h"
@@ -236,12 +236,10 @@
 *********************************************************************************************/
 
 gboolean
-tracker_email_init (TrackerConfig *config)
+tracker_email_plugin_init (void)
 {
 	EvolutionConfig *conf;
 
-	g_return_val_if_fail (TRACKER_IS_CONFIG (config), FALSE);
-
 	if (evolution_config) {
 		return TRUE;
 	}
@@ -257,7 +255,7 @@
 
 
 gboolean
-tracker_email_finalize (void)
+tracker_email_plugin_finalize (void)
 {
 	if (!evolution_config) {
 		return TRUE;
@@ -271,7 +269,7 @@
 
 
 void
-tracker_email_watch_emails (DBConnection *db_con)
+tracker_email_plugin_watch_emails (DBConnection *db_con)
 {
 	TrackerDBResultSet *result_set;
 
@@ -318,8 +316,8 @@
 }
 
 
-static gboolean
-evolution_file_is_interesting (TrackerDBFileInfo *info)
+gboolean
+tracker_email_plugin_file_is_interesting (TrackerDBFileInfo *info)
 {
 	GSList *dir;
 
@@ -375,14 +373,14 @@
 
 
 gboolean
-tracker_email_index_file (DBConnection *db_con, TrackerDBFileInfo *info)
+tracker_email_plugin_index_file (DBConnection *db_con, TrackerDBFileInfo *info)
 {
 	gchar *file_name;
 
 	g_return_val_if_fail (db_con, FALSE);
 	g_return_val_if_fail (info, FALSE);
 
-	if (!evolution_file_is_interesting (info))
+	if (!tracker_email_plugin_file_is_interesting (info))
 		return FALSE;
 
 	file_name = g_path_get_basename (info->uri);
@@ -543,7 +541,7 @@
 }
 
 const gchar *
-tracker_email_get_name (void)
+tracker_email_plugin_get_name (void)
 {
 	return "EvolutionEmails";
 }

Modified: branches/indexer-split/src/trackerd/tracker-email-kmail.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-email-kmail.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-email-kmail.c	Thu Jun  5 09:36:35 2008
@@ -25,11 +25,11 @@
 
 #include <glib/gstdio.h>
 
-#include <libtracker-common/tracker-log.h>
 #include <libtracker-common/tracker-utils.h>
 #include <libtracker-common/tracker-file-utils.h>
 #include <libtracker-common/tracker-type-utils.h>
-#include <libtracker-common/tracker-utils.h>
+
+#include "tracker-email-plugin.h"
 
 #include "tracker-email-utils.h"
 #include "tracker-db-email.h"
@@ -106,7 +106,7 @@
 *********************************************************************************************/
 
 gboolean
-kmail_init_module (void)
+tracker_email_plugin_init (void)
 {
         KMailConfig *conf;
 
@@ -125,7 +125,7 @@
 
 
 gboolean
-tracker_email_finalize (void)
+tracker_email_plugin_finalize (void)
 {
         if (!kmail_config) {
                 return TRUE;
@@ -139,7 +139,7 @@
 
 
 void
-tracker_email_watch_emails (DBConnection *db_con)
+tracker_email_plugin_watch_emails (DBConnection *db_con)
 {
         g_return_if_fail (kmail_config);
 
@@ -159,8 +159,8 @@
 }
 
 
-static gboolean
-kmail_file_is_interesting (TrackerDBFileInfo *info)
+gboolean
+tracker_email_plugin_file_is_interesting (TrackerDBFileInfo *info)
 {
         const GSList *account;
 
@@ -186,14 +186,14 @@
 
 
 gboolean
-tracker_email_index_file (DBConnection *db_con, TrackerDBFileInfo *info)
+tracker_email_plugin_index_file (DBConnection *db_con, TrackerDBFileInfo *info)
 {
         KMailMailProtocol mail_protocol;
 
         g_return_val_if_fail (db_con, FALSE);
         g_return_val_if_fail (info, FALSE);
 
-	if (!kmail_file_is_interesting (info))
+	if (!tracker_email_plugin_file_is_interesting (info))
 		return FALSE;
 
         mail_protocol = find_mail_protocol (info->uri);
@@ -270,7 +270,7 @@
 }
 
 const gchar *
-tracker_email_get_name (void)
+tracker_email_plugin_get_name (void)
 {
 	return "KMailEmails";
 }

Modified: branches/indexer-split/src/trackerd/tracker-email-modest.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-email-modest.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-email-modest.c	Thu Jun  5 09:36:35 2008
@@ -31,8 +31,6 @@
 #include <glib/gstdio.h>
 #include <dirent.h>
 
-#include <libtracker-common/tracker-log.h>
-#include <libtracker-common/tracker-config.h>
 #include <libtracker-common/tracker-file-utils.h>
 #include <libtracker-common/tracker-utils.h>
 
@@ -219,12 +217,10 @@
 *********************************************************************************************/
 
 gboolean
-tracker_email_init (TrackerConfig *config)
+tracker_email_plugin_init (void)
 {
 	ModestConfig *conf;
 
-        g_return_val_if_fail (TRACKER_IS_CONFIG (config), FALSE);
-
 	if (modest_config) {
 		return TRUE;
 	}
@@ -241,7 +237,7 @@
 
 
 gboolean
-tracker_email_finalize (void)
+tracker_email_plugin_finalize (void)
 {
 	if (!modest_config) {
 		return TRUE;
@@ -276,7 +272,7 @@
 }
 
 void
-tracker_email_watch_emails (DBConnection *db_con)
+tracker_email_plugin_watch_emails (DBConnection *db_con)
 {
 	TrackerDBResultSet *result_set;
 
@@ -319,8 +315,8 @@
 	load_current_dynamic_folders (modest_config);
 }
 
-static gboolean
-modest_file_is_interesting (TrackerDBFileInfo *info)
+gboolean
+tracker_email_plugin_file_is_interesting (TrackerDBFileInfo *info)
 {
 	g_return_val_if_fail (info, FALSE);
 	g_return_val_if_fail (info->uri, FALSE);
@@ -339,14 +335,14 @@
 
 
 gboolean
-tracker_email_index_file (DBConnection *db_con, TrackerDBFileInfo *info)
+tracker_email_plugin_index_file (DBConnection *db_con, TrackerDBFileInfo *info)
 {
 	gchar *file_name;
 
 	g_return_val_if_fail (db_con, FALSE);
 	g_return_val_if_fail (info, FALSE);
 
-	if (!modest_file_is_interesting (info))
+	if (!tracker_email_plugin_file_is_interesting (info))
 		return FALSE;
 
 	file_name = g_path_get_basename (info->uri);
@@ -389,7 +385,7 @@
 }
 
 const gchar *
-tracker_email_get_name (void)
+tracker_email_plugin_get_name (void)
 {
 	return "ModestEmails";
 }

Added: branches/indexer-split/src/trackerd/tracker-email-plugin.h
==============================================================================
--- (empty file)
+++ branches/indexer-split/src/trackerd/tracker-email-plugin.h	Thu Jun  5 09:36:35 2008
@@ -0,0 +1,18 @@
+#ifndef __TRACKER_EMAIL_PLUGIN_H__
+#define __TRACKER_EMAIL_PLUGIN_H__
+
+#include "tracker-db-sqlite.h"
+
+G_BEGIN_DECLS
+
+gboolean     tracker_email_plugin_init                (void);
+gboolean     tracker_email_plugin_finalize            (void);
+const gchar *tracker_email_plugin_get_name            (void);
+void         tracker_email_plugin_watch_emails        (DBConnection      *db_con);
+gboolean     tracker_email_plugin_index_file          (DBConnection      *db_con,
+                                                       TrackerDBFileInfo *info);
+gboolean     tracker_email_plugin_file_is_interesting (TrackerDBFileInfo *info);
+
+G_END_DECLS
+
+#endif

Modified: branches/indexer-split/src/trackerd/tracker-email-thunderbird.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-email-thunderbird.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-email-thunderbird.c	Thu Jun  5 09:36:35 2008
@@ -24,8 +24,7 @@
 
 #include <glib/gstdio.h>
 
-#include <libtracker-common/tracker-log.h>
-#include <libtracker-common/tracker-config.h>
+#include "tracker-email-plugin.h"
 
 #include "tracker-db-email.h"
 #include "tracker-watcher.h"
@@ -91,8 +90,8 @@
 	return thunderbird_mail_dir != NULL;
 }
 
-static gboolean
-thunderbird_file_is_interesting (TrackerDBFileInfo *info)
+gboolean
+tracker_email_plugin_file_is_interesting (TrackerDBFileInfo *info)
 {
         //Filename should be objectX.tms (Thunderbird Message Summary)
         return g_str_has_suffix (info->uri, ".tms") ;
@@ -103,10 +102,8 @@
 *********************************************************************************************/
 
 gboolean
-tracker_email_init (TrackerConfig *config)
+tracker_email_plugin_init (void)
 {
-        g_return_val_if_fail (TRACKER_IS_CONFIG (config), FALSE);
-
 	if (!thunderbird_mail_dir) {
 		thunderbird_mail_dir = g_build_filename (g_get_home_dir (), THUNDERBIRD_MAIL_DIR_S, NULL);
 	}
@@ -116,7 +113,7 @@
 
 
 gboolean
-tracker_email_finalize (void)
+tracker_email_plugin_finalize (void)
 {
 	if (thunderbird_mail_dir) {
 		g_free (thunderbird_mail_dir);
@@ -128,7 +125,7 @@
 
 
 void
-tracker_email_watch_emails (DBConnection *db_con)
+tracker_email_plugin_watch_emails (DBConnection *db_con)
 {
         if( thunderbird_mail_dir != NULL ) {
             g_message ("Thunderbird directory lookup: \"%s\"", thunderbird_mail_dir);
@@ -138,12 +135,12 @@
 
 
 gboolean
-tracker_email_index_file (DBConnection *db_con, TrackerDBFileInfo *info)
+tracker_email_plugin_index_file (DBConnection *db_con, TrackerDBFileInfo *info)
 {
 	g_return_val_if_fail (db_con, FALSE);
 	g_return_val_if_fail (info, FALSE);
 
-	if (!thunderbird_file_is_interesting (info))
+	if (!tracker_email_plugin_file_is_interesting (info))
 		return FALSE;
 
         g_message ("Thunderbird file being index:'%s'",info->uri);
@@ -155,7 +152,7 @@
 }
 
 const gchar *
-tracker_email_get_name (void)
+tracker_email_plugin_get_name (void)
 {
 	return "ThunderbirdEmails";
 }

Modified: branches/indexer-split/src/trackerd/tracker-email-utils.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-email-utils.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-email-utils.c	Thu Jun  5 09:36:35 2008
@@ -30,8 +30,6 @@
 
 #include <glib/gstdio.h>
 
-#include <libtracker-common/tracker-log.h>
-#include <libtracker-common/tracker-config.h>
 #include <libtracker-common/tracker-type-utils.h>
 #include <libtracker-common/tracker-utils.h>
 
@@ -39,7 +37,6 @@
 #include "tracker-dbus.h"
 #include "tracker-daemon.h"
 #include "tracker-email-utils.h"
-#include "tracker-watcher.h"
 
 extern Tracker *tracker;
 

Modified: branches/indexer-split/src/trackerd/tracker-email-utils.h
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-email-utils.h	(original)
+++ branches/indexer-split/src/trackerd/tracker-email-utils.h	Thu Jun  5 09:36:35 2008
@@ -23,7 +23,7 @@
 
 #include <gmime/gmime.h>
 
-#include "tracker-email.h"
+#include "tracker-db-sqlite.h"
 
 G_BEGIN_DECLS
 

Modified: branches/indexer-split/src/trackerd/tracker-email.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-email.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-email.c	Thu Jun  5 09:36:35 2008
@@ -19,79 +19,33 @@
  */
 
 #include <glib.h>
-#include <glib/gstdio.h>
 #include <gmodule.h>
 
-#include <libtracker-common/tracker-config.h>
+#include <gmime/gmime.h>
 
 #include "tracker-email.h"
-#include "tracker-email-utils.h"
-#include "tracker-main.h"
 
-static GModule *module = NULL;
-
-/* Must be called before any work on files containing mails */
-void
-tracker_email_add_service_directories (DBConnection *db_con)
-{
-	TrackerMailWatchEmails func;
-
-	if (!module)
-		return;
-
-	if (g_module_symbol (module, "tracker_email_watch_emails", (gpointer *) &func)) {
-		(func) (db_con);
-        }
-}
-
-void
-tracker_email_end_email_watching (void)
-{
-	TrackerMailFinalize func;
-
-	if (!module)
-		return;
-
-	if (g_module_symbol (module, "tracker_email_finalize", (gpointer *) &func)) {
-		(func) ();
-	}
+typedef gboolean      (* TrackerMailInit)          (void);
+typedef void          (* TrackerMailFinalize)      (void);
+typedef void          (* TrackerMailWatchEmails)   (DBConnection      *db_con);
+typedef gboolean      (* TrackerMailIndexFile)     (DBConnection      *db_con,
+						    TrackerDBFileInfo *info);
+typedef gboolean      (* TrackerMailFileIsInteresting) (TrackerDBFileInfo *info);
+typedef const gchar * (* TrackerMailGetName)       (void);
 
-	g_mime_shutdown ();
-}
-
-
-gboolean
-tracker_email_index_file (DBConnection *db_con, TrackerDBFileInfo *info)
-{
-	TrackerMailIndexFile func;
-
-	g_return_val_if_fail (db_con, FALSE);
-	g_return_val_if_fail (info, FALSE);
-
-	if (!module)
-		return FALSE;
-
-	if (!g_module_symbol (module, "tracker_email_index_file", (gpointer *) &func))
-		return FALSE;
+static GModule *module = NULL;
 
-	return (func) (db_con, info);
-}
 
 gboolean
-tracker_email_init (TrackerConfig *config)
+tracker_email_start_email_watching (const gchar *email_client)
 {
 	TrackerMailInit func;
-	const gchar *email_client;
 	gchar *module_name, *module_path;
 	gboolean result = FALSE;
 
-	g_return_val_if_fail (TRACKER_IS_CONFIG (config), FALSE);
-
 	if (module)
 		return result;
 
-	email_client = tracker_config_get_email_client (config);
-
 	if (!email_client)
 		return result;
 
@@ -114,10 +68,10 @@
 
 	g_module_make_resident (module);
 
-	if (g_module_symbol (module, "tracker_email_init", (gpointer *) &func)) {
+	if (g_module_symbol (module, "tracker_email_plugin_init", (gpointer *) &func)) {
 		g_mime_init (0);
 
-		result = (func) (config);
+		result = (func) ();
 	}
 
 	g_free (module_name);
@@ -127,13 +81,72 @@
 }
 
 void
-tracker_email_shutdown (void)
+tracker_email_end_email_watching (void)
 {
-	/* Nothing to do here it seems, this function is here for
-	 * completeness.
-	 */
+	TrackerMailFinalize func;
+
+	if (!module)
+		return;
+
+	if (g_module_symbol (module, "tracker_email_plugin_finalize", (gpointer *) &func)) {
+		(func) ();
+	}
+
+	g_mime_shutdown ();
+}
+
+
+/* Must be called before any work on files containing mails */
+void
+tracker_email_add_service_directories (DBConnection *db_con)
+{
+	TrackerMailWatchEmails func;
+
+	if (!module)
+		return;
+
+	if (g_module_symbol (module, "tracker_email_plugin_watch_emails", (gpointer *) &func)) {
+		(func) (db_con);
+        }
+}
+
+gboolean
+tracker_email_file_is_interesting (TrackerDBFileInfo *info)
+{
+	TrackerMailFileIsInteresting func;
+
+	if (!module)
+		return FALSE;
+
+	
+	if (g_module_symbol (module, "tracker_email_plugin_file_is_interesting", (gpointer *) &func)) {
+		(func) (info);
+        } else {
+		g_warning ("%s module doesnt implement _file_is_interesting function", 
+			   tracker_email_get_name ());
+	}
+
+	return TRUE;
+}
+
+gboolean
+tracker_email_index_file (DBConnection *db_con, TrackerDBFileInfo *info)
+{
+	TrackerMailIndexFile func;
+
+	g_return_val_if_fail (db_con, FALSE);
+	g_return_val_if_fail (info, FALSE);
+
+	if (!module)
+		return FALSE;
+
+	if (!g_module_symbol (module, "tracker_email_plugin_index_file", (gpointer *) &func))
+		return FALSE;
+
+	return (func) (db_con, info);
 }
 
+
 const gchar *
 tracker_email_get_name (void)
 {
@@ -142,7 +155,7 @@
 	if (!module)
 		return NULL;
 
-	if (!g_module_symbol (module, "tracker_email_get_name", (gpointer *) &func))
+	if (!g_module_symbol (module, "tracker_email_plugin_get_name", (gpointer *) &func))
 		return NULL;
 
 	return (func) ();

Modified: branches/indexer-split/src/trackerd/tracker-email.h
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-email.h	(original)
+++ branches/indexer-split/src/trackerd/tracker-email.h	Thu Jun  5 09:36:35 2008
@@ -23,25 +23,16 @@
 
 #include "config.h"
 
-#include <libtracker-common/tracker-config.h>
 #include <libtracker-db/tracker-db-file-info.h>
 
-#include "tracker-utils.h"
 #include "tracker-db-sqlite.h"
 
 G_BEGIN_DECLS
 
-typedef gboolean      (* TrackerMailInit)          (TrackerConfig     *config);
-typedef void          (* TrackerMailFinalize)      (void);
-typedef void          (* TrackerMailWatchEmails)   (DBConnection      *db_con);
-typedef gboolean      (* TrackerMailIndexFile)     (DBConnection      *db_con,
-						    TrackerDBFileInfo *info);
-typedef const gchar * (* TrackerMailGetName)       (void);
+gboolean     tracker_email_start_email_watching    (const gchar *email_client);
+void         tracker_email_end_email_watching      (void);
 
-gboolean     tracker_email_init                    (TrackerConfig     *config);
-void         tracker_email_shutdown                (void);
 void         tracker_email_add_service_directories (DBConnection      *db_con);
-void         tracker_email_end_email_watching      (void);
 gboolean     tracker_email_file_is_interesting     (TrackerDBFileInfo *info);
 gboolean     tracker_email_index_file              (DBConnection      *db_con,
 						    TrackerDBFileInfo *info);

Modified: branches/indexer-split/src/trackerd/tracker-main.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-main.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-main.c	Thu Jun  5 09:36:35 2008
@@ -941,7 +941,7 @@
 	tracker_db_manager_init (data_dir, user_data_dir, sys_tmp_dir);
 	tracker_xesam_manager_init ();
 	tracker_ontology_init ();
-	tracker_email_init (tracker->config);
+	tracker_email_start_email_watching (tracker_config_get_email_client (tracker->config));
 
 #ifdef HAVE_HAL
  	tracker->hal = tracker_hal_new ();
@@ -1041,7 +1041,7 @@
 
 	/* Shutdown major subsystems */
 	tracker_process_files_shutdown ();
-	tracker_email_shutdown ();
+	tracker_email_end_email_watching ();
 	tracker_dbus_shutdown ();
 	tracker_ontology_shutdown ();
 	tracker_xesam_manager_shutdown ();



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