tracker r1860 - in branches/indexer-split: . src/libtracker-common src/trackerd
- From: mr svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r1860 - in branches/indexer-split: . src/libtracker-common src/trackerd
- Date: Fri, 4 Jul 2008 12:17:38 +0000 (UTC)
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]