[tracker/rss-enclosures] tracker-store: Shutdown the events and reinit them during restore
- From: Roberto Guido <rguido src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/rss-enclosures] tracker-store: Shutdown the events and reinit them during restore
- Date: Wed, 24 Nov 2010 02:23:37 +0000 (UTC)
commit 52020ff1dd1064de137dd30e64c3e6f2cda5d5ee
Author: Philip Van Hoof <philip codeminded be>
Date: Thu Nov 4 15:46:18 2010 +0200
tracker-store: Shutdown the events and reinit them during restore
src/tracker-store/tracker-backup.c | 5 +++++
src/tracker-store/tracker-events.c | 9 +++++++++
src/tracker-store/tracker-events.h | 2 ++
3 files changed, 16 insertions(+), 0 deletions(-)
---
diff --git a/src/tracker-store/tracker-backup.c b/src/tracker-store/tracker-backup.c
index 6ce51e4..aeb21eb 100644
--- a/src/tracker-store/tracker-backup.c
+++ b/src/tracker-store/tracker-backup.c
@@ -31,12 +31,14 @@
#include "tracker-backup.h"
#include "tracker-store.h"
#include "tracker-resources.h"
+#include "tracker-events.h"
typedef struct {
DBusGMethodInvocation *context;
guint request_id;
gchar *journal_uri;
TrackerResources *resources;
+ TrackerNotifyClassGetter getter;
} TrackerDBusMethodInfo;
G_DEFINE_TYPE (TrackerBackup, tracker_backup, G_TYPE_OBJECT)
@@ -99,6 +101,7 @@ restore_callback (GError *error, gpointer user_data)
tracker_store_set_active (TRUE, NULL, NULL);
if (info->resources) {
+ tracker_events_init (info->getter);
tracker_resources_enable_signals (info->resources);
g_object_unref (info->resources);
}
@@ -191,6 +194,8 @@ tracker_backup_restore (TrackerBackup *object,
if (resources) {
info->resources = g_object_ref (resources);
tracker_resources_disable_signals (info->resources);
+ info->getter = tracker_events_get_class_getter ();
+ tracker_events_shutdown ();
}
tracker_store_set_active (FALSE, backup_idle_set_active_false_cb, info);
diff --git a/src/tracker-store/tracker-events.c b/src/tracker-store/tracker-events.c
index 001edb3..eafeff6 100644
--- a/src/tracker-store/tracker-events.c
+++ b/src/tracker-store/tracker-events.c
@@ -31,6 +31,7 @@ typedef struct {
GHashTable *allowances;
gboolean frozen;
guint total;
+ TrackerNotifyClassGetter getter;
} EventsPrivate;
static EventsPrivate *private;
@@ -176,6 +177,13 @@ free_private (EventsPrivate *private)
g_free (private);
}
+TrackerNotifyClassGetter
+tracker_events_get_class_getter (void)
+{
+ g_return_val_if_fail (private != NULL, NULL);
+ return private->getter;
+}
+
void
tracker_events_init (TrackerNotifyClassGetter callback)
{
@@ -190,6 +198,7 @@ tracker_events_init (TrackerNotifyClassGetter callback)
private->allowances = g_hash_table_new (g_direct_hash, g_direct_equal);
private->allowances_id = g_hash_table_new (g_direct_hash, g_direct_equal);
+ private->getter = callback;
classes_to_signal = (*callback)();
diff --git a/src/tracker-store/tracker-events.h b/src/tracker-store/tracker-events.h
index 74cbd39..cfb4fa7 100644
--- a/src/tracker-store/tracker-events.h
+++ b/src/tracker-store/tracker-events.h
@@ -31,6 +31,8 @@ G_BEGIN_DECLS
typedef GStrv (*TrackerNotifyClassGetter) (void);
void tracker_events_init (TrackerNotifyClassGetter callback);
+TrackerNotifyClassGetter
+ tracker_events_get_class_getter (void);
void tracker_events_shutdown (void);
void tracker_events_add_insert (gint graph_id,
gint subject_id,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]