[tracker/tracker-0.6] Hook up tracker-status to profile setting in tracker-indexer/DB manager.
- From: Carlos Garnacho <carlosg src gnome org>
- To: svn-commits-list gnome org
- Subject: [tracker/tracker-0.6] Hook up tracker-status to profile setting in tracker-indexer/DB manager.
- Date: Wed, 3 Jun 2009 08:54:58 -0400 (EDT)
commit 94e21996ea97347a24f9b1021ea743434430c50a
Author: Carlos Garnacho <carlosg gnome org>
Date: Wed Jun 3 14:53:53 2009 +0200
Hook up tracker-status to profile setting in tracker-indexer/DB manager.
---
src/trackerd/tracker-status.c | 38 ++++++++++++++++++++++++++++++++++----
1 files changed, 34 insertions(+), 4 deletions(-)
diff --git a/src/trackerd/tracker-status.c b/src/trackerd/tracker-status.c
index 174d2c2..02dc2be 100644
--- a/src/trackerd/tracker-status.c
+++ b/src/trackerd/tracker-status.c
@@ -27,6 +27,8 @@
#include <errno.h>
#include <unistd.h>
+#include <libtracker-db/tracker-db-manager.h>
+
#include "tracker-status.h"
#include "tracker-dbus.h"
#include "tracker-daemon.h"
@@ -383,15 +385,17 @@ disk_space_check_stop (void)
static void
mode_check (void)
{
+ TrackerDBManagerFlags flags = 0;
TrackerStatusPrivate *private;
TrackerMode new_mode;
+ const gchar *new_mode_str;
+ GError *error = NULL;
private = g_static_private_get (&private_key);
g_return_if_fail (private != NULL);
new_mode = private->mode;
- /* FIXME: Need to add cover check here in MCE patch 08 */
if (private->is_paused_for_batt ||
private->is_paused_for_space) {
new_mode = TRACKER_MODE_SAFE;
@@ -403,17 +407,43 @@ mode_check (void)
return;
}
+ new_mode_str = tracker_mode_to_string (new_mode);
+
g_message ("Mode change from '%s' --> '%s'",
tracker_mode_to_string (private->mode),
- tracker_mode_to_string (new_mode));
+ new_mode_str);
private->mode = new_mode;
- /* FIXME: Tell the indexer */
+ /* Tell the indexer to switch profile */
+ org_freedesktop_Tracker_Indexer_set_profile (private->indexer_proxy,
+ new_mode_str,
+ &error);
+
+ if (G_UNLIKELY (error)) {
+ g_critical ("Could not change profile in the indexer: %s\n",
+ error->message);
+ g_error_free (error);
+
+ return;
+ }
+
+ if (tracker_config_get_low_memory_mode (private->config)) {
+ flags |= TRACKER_DB_MANAGER_LOW_MEMORY_MODE;
+ }
+
+ /* Now reinitialize DBs ourselves */
+ tracker_db_manager_shutdown ();
- /* FIXME: Do DB switch over */
+ if (!tracker_db_manager_init (flags, NULL, TRUE, new_mode_str)) {
+ g_critical ("Could not restart DB Manager, trying again with defaults");
+ if (!tracker_db_manager_init (flags, NULL, TRUE, NULL)) {
+ g_critical (" Not even defaults worked, bailing out.");
+ g_assert_not_reached ();
+ }
+ }
}
#ifdef HAVE_HAL
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]