tracker r1860 - in branches/indexer-split: . src/libtracker-common src/trackerd



Author: mr
Date: Fri Jul  4 12:17:38 2008
New Revision: 1860
URL: http://svn.gnome.org/viewvc/tracker?rev=1860&view=rev

Log:
	* src/libtracker-common/tracker-hal.h: Define TrackerHal as a void
	pointer if it is disabled and just don't use it anywhere, this is
	so function signatures can include it but it will be NULL where it
	is called. Can't think of a better way to do this really.


Modified:
   branches/indexer-split/ChangeLog
   branches/indexer-split/src/libtracker-common/tracker-hal.h
   branches/indexer-split/src/trackerd/tracker-crawler.c
   branches/indexer-split/src/trackerd/tracker-crawler.h
   branches/indexer-split/src/trackerd/tracker-main.c
   branches/indexer-split/src/trackerd/tracker-main.h
   branches/indexer-split/src/trackerd/tracker-processor.c
   branches/indexer-split/src/trackerd/tracker-processor.h

Modified: branches/indexer-split/src/libtracker-common/tracker-hal.h
==============================================================================
--- branches/indexer-split/src/libtracker-common/tracker-hal.h	(original)
+++ branches/indexer-split/src/libtracker-common/tracker-hal.h	Fri Jul  4 12:17:38 2008
@@ -22,12 +22,12 @@
 #ifndef __LIBTRACKER_HAL_H__
 #define __LIBTRACKER_HAL_H__
 
-#ifdef HAVE_HAL 
-
 #include <glib-object.h>
 
 G_BEGIN_DECLS
 
+#ifdef HAVE_HAL 
+
 #define TRACKER_TYPE_HAL         (tracker_hal_get_type ())
 #define TRACKER_HAL(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), TRACKER_TYPE_HAL, TrackerHal))
 #define TRACKER_HAL_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST ((k), TRACKER_TYPE_HAL, TrackerHalClass))
@@ -54,8 +54,12 @@
 GSList *    tracker_hal_get_mounted_directory_roots (TrackerHal *hal);
 GSList *    tracker_hal_get_removable_device_roots  (TrackerHal *hal);
 
-G_END_DECLS
+#else  /* HAVE_HAL */
+
+typedef void TrackerHal;
 
 #endif /* HAVE_HAL */
 
+G_END_DECLS
+
 #endif /* __LIBTRACKER_HAL_H__ */

Modified: branches/indexer-split/src/trackerd/tracker-crawler.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-crawler.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-crawler.c	Fri Jul  4 12:17:38 2008
@@ -46,9 +46,7 @@
 
 struct _TrackerCrawlerPrivate {
 	TrackerConfig  *config;
-#ifdef HAVE_HAL
 	TrackerHal     *hal;
-#endif
 
 	GTimer         *timer;
 
@@ -80,14 +78,6 @@
 };
 
 enum {
-	PROP_0,
-	PROP_CONFIG,
-#ifdef HAVE_HAL
-	PROP_HAL
-#endif
-};
-
-enum {
 	FINISHED,
 	LAST_SIGNAL
 };
@@ -98,22 +88,7 @@
 } EnumeratorData;
 
 static void crawler_finalize          (GObject         *object);
-static void crawler_set_property      (GObject         *object,
-				       guint            param_id,
-				       const GValue    *value,
-				       GParamSpec      *pspec);
-
 static void queue_free                (gpointer         data);
-
-#ifdef HAVE_HAL
-static void mount_point_added_cb      (TrackerHal      *hal,
-				       const gchar     *mount_point,
-				       gpointer         user_data);
-static void mount_point_removed_cb    (TrackerHal      *hal,
-				       const gchar     *mount_point,
-				       gpointer         user_data);
-#endif /* HAVE_HAL */
-
 static void file_enumerate_next       (GFileEnumerator *enumerator,
 				       EnumeratorData  *ed);
 static void file_enumerate_children   (TrackerCrawler  *crawler,
@@ -131,25 +106,6 @@
 	object_class = G_OBJECT_CLASS (klass);
 
 	object_class->finalize = crawler_finalize;
-	object_class->set_property = crawler_set_property;
-
-	g_object_class_install_property (object_class,
-					 PROP_CONFIG,
-					 g_param_spec_object ("config",
-							      "Config",
-							      "TrackerConfig object",
-							      tracker_config_get_type (),
-							      G_PARAM_WRITABLE));
-
-#ifdef HAVE_HAL
-	g_object_class_install_property (object_class,
-					 PROP_HAL,
-					 g_param_spec_object ("hal",
-							      "HAL",
-							      "HAL",
-							      tracker_hal_get_type (),
-							      G_PARAM_WRITABLE));
-#endif /* HAVE_HAL */
 
 	signals[FINISHED] = 
 		g_signal_new ("finished",
@@ -230,19 +186,6 @@
 	g_hash_table_unref (priv->file_queues);
 	g_hash_table_unref (priv->directory_queues);
 
-#ifdef HAVE_HAL
-	if (priv->hal) {
-		g_signal_handlers_disconnect_by_func (priv->hal,
-						      mount_point_added_cb,
-						      object);
-		g_signal_handlers_disconnect_by_func (priv->hal,
-						      mount_point_removed_cb,
-						      object);
-
-		g_object_unref (priv->hal);
-	}
-#endif /* HAVE_HAL */
-
 	if (priv->config) {
 		g_object_unref (priv->config);
 	}
@@ -250,109 +193,29 @@
 	G_OBJECT_CLASS (tracker_crawler_parent_class)->finalize (object);
 }
 
-static void
-crawler_set_property (GObject      *object,
-		      guint         param_id,
-		      const GValue *value,
-		      GParamSpec   *pspec)
+TrackerCrawler *
+tracker_crawler_new (TrackerConfig *config, 
+		     TrackerHal    *hal)
 {
-	TrackerCrawlerPrivate *priv;
-
-	priv = TRACKER_CRAWLER_GET_PRIVATE (object);
+	TrackerCrawler *crawler;
 
-	switch (param_id) {
-	case PROP_CONFIG:
-		tracker_crawler_set_config (TRACKER_CRAWLER (object),
-					    g_value_get_object (value));
-		break;
+	g_return_val_if_fail (TRACKER_IS_CONFIG (config), NULL);
 
 #ifdef HAVE_HAL
-	case PROP_HAL:
-		tracker_crawler_set_hal (TRACKER_CRAWLER (object),
-					 g_value_get_object (value));
-		break;
+	g_return_val_if_fail (TRACKER_IS_HAL (hal), NULL);
 #endif /* HAVE_HAL */
 
-	default:
-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
-		break;
-	};
-}
-
-TrackerCrawler *
-tracker_crawler_new (TrackerConfig *config)
-{
-	g_return_val_if_fail (TRACKER_IS_CONFIG (config), NULL);
-
-	return g_object_new (TRACKER_TYPE_CRAWLER,
-			     "config", config,
-			     NULL);
-}
-
-void
-tracker_crawler_set_config (TrackerCrawler *object,
-			    TrackerConfig  *config)
-{
-	TrackerCrawlerPrivate *priv;
+	crawler = g_object_new (TRACKER_TYPE_CRAWLER, NULL);
 
-	g_return_if_fail (TRACKER_IS_CRAWLER (object));
-	g_return_if_fail (TRACKER_IS_CONFIG (config));
-
-	priv = TRACKER_CRAWLER_GET_PRIVATE (object);
-
-	if (config) {
-		g_object_ref (config);
-	}
-
-	if (priv->config) {
-		g_object_unref (priv->config);
-	}
-
-	priv->config = config;
-
-	g_object_notify (G_OBJECT (object), "config");
-}
+	crawler->private->config = g_object_ref (config);
 
 #ifdef HAVE_HAL
+	crawler->private->hal = g_object_ref (config);
+#endif /* HAVE_HAL */
 
-void
-tracker_crawler_set_hal (TrackerCrawler *object,
-			 TrackerHal     *hal)
-{
-	TrackerCrawlerPrivate *priv;
-
-	g_return_if_fail (TRACKER_IS_CRAWLER (object));
-	g_return_if_fail (TRACKER_IS_HAL (hal));
-
-	priv = TRACKER_CRAWLER_GET_PRIVATE (object);
-
-	if (hal) {
-		g_signal_connect (hal, "mount-point-added",
-				  G_CALLBACK (mount_point_added_cb),
-				  object);
-		g_signal_connect (hal, "mount-point-removed",
-				  G_CALLBACK (mount_point_removed_cb),
-				  object);
-		g_object_ref (hal);
-	}
-
-	if (priv->hal) {
-		g_signal_handlers_disconnect_by_func (hal,
-						      mount_point_added_cb,
-						      object);
-		g_signal_handlers_disconnect_by_func (hal,
-						      mount_point_removed_cb,
-						      object);
-		g_object_unref (priv->hal);
-	}
-
-	priv->hal = hal;
-
-	g_object_notify (G_OBJECT (object), "hal");
+	return crawler;
 }
 
-#endif /* HAVE_HAL */
-
 /*
  * Functions
  */
@@ -420,32 +283,6 @@
 	return NULL;
 }
 
-#ifdef HAVE_HAL
-
-static void
-mount_point_added_cb (TrackerHal  *hal,
-		      const gchar *mount_point,
-		      gpointer     user_data)
-{
-        g_message ("** TRAWLING THROUGH NEW MOUNT POINT:'%s'", mount_point);
-
-        /* list = g_slist_prepend (NULL, (gchar*) mount_point); */
-        /* process_directory_list (list, TRUE, iface); */
-        /* g_slist_free (list); */
-}
-
-static void
-mount_point_removed_cb (TrackerHal  *hal,
-			const gchar *mount_point,
-			gpointer     user_data)
-{
-        g_message ("** CLEANING UP OLD MOUNT POINT:'%s'", mount_point);
-
-        /* process_index_delete_directory_check (mount_point, iface);  */
-}
-
-#endif /* HAVE_HAL */
-
 static void
 get_remote_roots (TrackerCrawler  *crawler,
 		  GSList         **mounted_directory_roots,

Modified: branches/indexer-split/src/trackerd/tracker-crawler.h
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-crawler.h	(original)
+++ branches/indexer-split/src/trackerd/tracker-crawler.h	Fri Jul  4 12:17:38 2008
@@ -24,10 +24,7 @@
 #include <glib-object.h>
 
 #include <libtracker-common/tracker-config.h>
-
-#ifdef HAVE_HAL 
 #include <libtracker-common/tracker-hal.h>
-#endif /* HAVE_HAL */
 
 G_BEGIN_DECLS
 
@@ -52,15 +49,8 @@
 };
 
 GType           tracker_crawler_get_type     (void);
-TrackerCrawler *tracker_crawler_new          (TrackerConfig  *config);
-void            tracker_crawler_set_config   (TrackerCrawler *object,
-					      TrackerConfig  *config);
-
-#ifdef HAVE_HAL
-void            tracker_crawler_set_hal      (TrackerCrawler *object,
+TrackerCrawler *tracker_crawler_new          (TrackerConfig  *config,
 					      TrackerHal     *hal);
-#endif /* HAVE_HAL */
-
 gboolean        tracker_crawler_start        (TrackerCrawler *crawler,
 					      const gchar    *module_name);
 void            tracker_crawler_stop         (TrackerCrawler *crawler);

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	Fri Jul  4 12:17:38 2008
@@ -212,7 +212,9 @@
 }
 
 static TrackerRunningLevel
-check_runtime_level (TrackerConfig *config)
+check_runtime_level (TrackerConfig *config,
+		     TrackerHal    *hal,
+		     gboolean       first_time_index)
 {
 	TrackerRunningLevel  runlevel;
 	gchar               *lock_file;
@@ -231,34 +233,58 @@
 	lock_file = get_lock_file ();
 	fd = g_open (lock_file, O_RDWR | O_CREAT, 0640);
 
-	if (fd > -1) {
-		if (lockf (fd, F_TLOCK, 0) < 0) {		
-			if (use_nfs) {
-				g_message ("Already running, running in "
-					   "read-only mode (with NFS)");
-				runlevel = TRACKER_RUNNING_READ_ONLY;
-			} else {
-				g_message ("Already running, not allowed "
-					   "multiple instances (without NFS)");
-				runlevel = TRACKER_RUNNING_NON_ALLOWED;
-			}
-		} else {
-			g_message ("This is the first/main instance");
-			runlevel = TRACKER_RUNNING_MAIN_INSTANCE;
-		}
-	} else {
+	if (fd == -1) {
 		const gchar *error_string;
 
 		error_string = g_strerror (errno);
-                g_critical ("Can not open or create lockfile:'%s', %s", 
+                g_critical ("Can not open or create lock file:'%s', %s", 
 			    lock_file,
 			    error_string);
+		g_free (lock_file);
 
-		runlevel = TRACKER_RUNNING_NON_ALLOWED;
+		return TRACKER_RUNNING_NON_ALLOWED;
 	}
 
 	g_free (lock_file);
 
+	if (lockf (fd, F_TLOCK, 0) < 0) {		
+		if (use_nfs) {
+			g_message ("Already running, running in "
+				   "read-only mode (with NFS)");
+			runlevel = TRACKER_RUNNING_READ_ONLY;
+		} else {
+			g_message ("Already running, not allowed "
+				   "multiple instances (without NFS)");
+			runlevel = TRACKER_RUNNING_NON_ALLOWED;
+		}
+	} else {
+		g_message ("This is the first/main instance");
+		
+#ifdef HAVE_HAL 
+		if (tracker_hal_get_battery_exists (hal) && 
+		    tracker_hal_get_battery_in_use (hal)) {
+			if (tracker_config_get_disable_indexing_on_battery (config)) {
+				g_message ("Battery in use");
+				g_message ("Config is set to not index on battery");
+				g_message ("Running in read only mode");
+				runlevel = TRACKER_RUNNING_READ_ONLY;
+			} else if (tracker_config_get_disable_indexing_on_battery_init (config) &&
+				   first_time_index) {
+				g_message ("Battery in use & reindex is needed");
+				g_message ("Config is set to not index on battery for initial index");
+				g_message ("Running in read only mode");
+				runlevel = TRACKER_RUNNING_READ_ONLY;
+			} else {
+				runlevel = TRACKER_RUNNING_MAIN_INSTANCE;
+			}
+		} else {
+			runlevel = TRACKER_RUNNING_MAIN_INSTANCE;
+		}
+#else  /* HAVE_HAL */
+		runlevel = TRACKER_RUNNING_MAIN_INSTANCE; 
+#endif /* HAVE_HAL */
+	}
+
 	return runlevel;
 }
 
@@ -625,6 +651,7 @@
 	GOptionContext        *context = NULL;
 	GOptionGroup          *group;
 	GError                *error = NULL;
+	TrackerRunningLevel    runtime_level;
 	TrackerDBManagerFlags  flags;
 	TrackerProcessor      *processor;
 
@@ -700,6 +727,10 @@
         tracker->config = tracker_config_new ();
         tracker->language = tracker_language_new (tracker->config);
 
+#ifdef HAVE_HAL
+        tracker->hal = tracker_hal_new ();
+#endif /* HAVE_HAL */
+
 	/* Daemon command line arguments */
 	if (verbosity > -1) {
 		tracker_config_set_verbosity (tracker->config, verbosity);
@@ -742,22 +773,6 @@
 	tracker_log_init (log_filename, tracker_config_get_verbosity (tracker->config));
 	g_print ("Starting log:\n  File:'%s'\n", log_filename);
 
-	/*
-	 * Check instances running
-	 */
-	switch (check_runtime_level (tracker->config)) {
-	case TRACKER_RUNNING_NON_ALLOWED: 
-		return EXIT_FAILURE;
-
-	case TRACKER_RUNNING_READ_ONLY:     
-		tracker->readonly = TRUE;
-		break;
-
-	case TRACKER_RUNNING_MAIN_INSTANCE: 
-		tracker->readonly = FALSE;
-		break;
-	}
-	
 	sanity_check_option_values (tracker->config);
 
 	tracker_nfs_lock_init (tracker_config_get_nfs_locking (tracker->config));
@@ -781,11 +796,33 @@
 	}
 
 	tracker_db_manager_init (flags, &tracker->first_time_index);
+
+	/*
+	 * Check instances running
+	 */
+	runtime_level = check_runtime_level (tracker->config, 
+					     tracker->hal, 
+					     tracker->first_time_index);
+
+	switch (runtime_level) {
+	case TRACKER_RUNNING_NON_ALLOWED: 
+		return EXIT_FAILURE;
+
+	case TRACKER_RUNNING_READ_ONLY:     
+		tracker->readonly = TRUE;
+		break;
+
+	case TRACKER_RUNNING_MAIN_INSTANCE: 
+		tracker->readonly = FALSE;
+		break;
+	}
+
 	tracker_db_init ();
 	tracker_xesam_manager_init ();
         tracker_module_config_init ();
 
-	processor = tracker_processor_new (tracker->config);
+	processor = tracker_processor_new (tracker->config, 
+					   tracker->hal);
 
 	umask (077);
 
@@ -860,6 +897,12 @@
 	tracker_nfs_lock_shutdown ();
 	tracker_log_shutdown ();
 
+#ifdef HAVE_HAL
+	if (tracker->hal) {
+		g_object_unref (tracker->hal);
+	}
+#endif /* HAVE_HAL */
+
 	if (tracker->language) {
 		g_object_unref (tracker->language);
 	}

Modified: branches/indexer-split/src/trackerd/tracker-main.h
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-main.h	(original)
+++ branches/indexer-split/src/trackerd/tracker-main.h	Fri Jul  4 12:17:38 2008
@@ -44,6 +44,7 @@
 typedef struct {
         TrackerConfig    *config;
         TrackerLanguage  *language;
+        TrackerHal       *hal;
 
         TrackerIndexer   *file_index;
         TrackerIndexer   *file_update_index;

Modified: branches/indexer-split/src/trackerd/tracker-processor.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-processor.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-processor.c	Fri Jul  4 12:17:38 2008
@@ -38,9 +38,8 @@
 
 struct TrackerProcessorPrivate {
 	TrackerConfig  *config;
-#ifdef HAVE_HAL
 	TrackerHal     *hal;
-#endif  /* HAVE_HAL */
+
 	TrackerCrawler *crawler;
 
 	GList          *modules;
@@ -70,6 +69,14 @@
 					guint             files_found,
 					guint             files_ignored,
 					gpointer          user_data);
+#ifdef HAVE_HAL
+static void mount_point_added_cb       (TrackerHal       *hal,
+					const gchar      *mount_point,
+					gpointer          user_data);
+static void mount_point_removed_cb     (TrackerHal       *hal,
+					const gchar      *mount_point,
+					gpointer          user_data);
+#endif /* HAVE_HAL */
 
 static guint signals[LAST_SIGNAL] = { 0, };
 
@@ -123,7 +130,16 @@
 	g_object_unref (priv->crawler);
 
 #ifdef HAVE_HAL
-	g_object_unref (priv->hal);
+	if (priv->hal) {
+		g_signal_handlers_disconnect_by_func (priv->hal,
+						      mount_point_added_cb,
+						      object);
+		g_signal_handlers_disconnect_by_func (priv->hal,
+						      mount_point_removed_cb,
+						      object);
+		
+		g_object_unref (priv->hal);
+	}
 #endif /* HAVE_HAL */
 
 	g_object_unref (priv->config);
@@ -263,26 +279,64 @@
 	process_next_module (processor);
 }
 
+#ifdef HAVE_HAL
+
+static void
+mount_point_added_cb (TrackerHal  *hal,
+		      const gchar *mount_point,
+		      gpointer     user_data)
+{
+        g_message ("** TRAWLING THROUGH NEW MOUNT POINT:'%s'", mount_point);
+
+        /* list = g_slist_prepend (NULL, (gchar*) mount_point); */
+        /* process_directory_list (list, TRUE, iface); */
+        /* g_slist_free (list); */
+}
+
+static void
+mount_point_removed_cb (TrackerHal  *hal,
+			const gchar *mount_point,
+			gpointer     user_data)
+{
+        g_message ("** CLEANING UP OLD MOUNT POINT:'%s'", mount_point);
+
+        /* process_index_delete_directory_check (mount_point, iface);  */
+}
+
+#endif /* HAVE_HAL */
+
 TrackerProcessor *
-tracker_processor_new (TrackerConfig *config)
+tracker_processor_new (TrackerConfig *config,
+		       TrackerHal    *hal)
 {
 	TrackerProcessor        *processor;
 	TrackerProcessorPrivate *priv;
 
 	g_return_val_if_fail (TRACKER_IS_CONFIG (config), NULL);
 
+#ifdef HAVE_HAL 
+	g_return_val_if_fail (TRACKER_IS_HAL (hal), NULL);
+#endif /* HAVE_HAL */
+
 	processor = g_object_new (TRACKER_TYPE_PROCESSOR, NULL);
 
 	priv = TRACKER_PROCESSOR_GET_PRIVATE (processor);
 
 	priv->config = g_object_ref (config);
-	priv->crawler = tracker_crawler_new (config);
 
 #ifdef HAVE_HAL
- 	priv->hal = tracker_hal_new ();
-	tracker_crawler_set_hal (priv->crawler, priv->hal);
+ 	priv->hal = g_object_ref (hal);
+
+	g_signal_connect (priv->hal, "mount-point-added",
+			  G_CALLBACK (mount_point_added_cb),
+			  processor);
+	g_signal_connect (priv->hal, "mount-point-removed",
+			  G_CALLBACK (mount_point_removed_cb),
+			  processor);
 #endif /* HAVE_HAL */
 
+	priv->crawler = tracker_crawler_new (config, hal);
+
 	g_signal_connect (priv->crawler, "finished",
 			  G_CALLBACK (crawler_finished_cb),
 			  processor);

Modified: branches/indexer-split/src/trackerd/tracker-processor.h
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-processor.h	(original)
+++ branches/indexer-split/src/trackerd/tracker-processor.h	Fri Jul  4 12:17:38 2008
@@ -48,7 +48,8 @@
 };
 
 GType             tracker_processor_get_type (void) G_GNUC_CONST;
-TrackerProcessor *tracker_processor_new      (TrackerConfig    *config);
+TrackerProcessor *tracker_processor_new      (TrackerConfig    *config,
+					      TrackerHal       *hal);
 void              tracker_processor_start    (TrackerProcessor *processor);
 void              tracker_processor_stop     (TrackerProcessor *processor);
 



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