[tracker/libtracker-common-cleanup: 11/11] libtracker-common: Moved TrackerStorage to tracker-miner-fs, not needed by others



commit b78ae1d600f227bd4b77744648d5cde4e09d4640
Author: Martyn Russell <martyn lanedo com>
Date:   Mon Oct 27 17:29:38 2014 +0000

    libtracker-common: Moved TrackerStorage to tracker-miner-fs, not needed by others

 src/libtracker-common/Makefile.am                  |    2 -
 src/libtracker-common/tracker-common.h             |    1 -
 src/libtracker-miner/tracker-decorator-fs.c        |   59 ++++++++++++++------
 src/miners/fs/Makefile.am                          |    2 +
 src/miners/fs/tracker-miner-files.c                |    1 +
 .../fs}/tracker-storage.c                          |    1 -
 .../fs}/tracker-storage.h                          |    0
 src/tracker-writeback/tracker-writeback.c          |   19 +++---
 8 files changed, 54 insertions(+), 31 deletions(-)
---
diff --git a/src/libtracker-common/Makefile.am b/src/libtracker-common/Makefile.am
index 88513be..adbcf78 100644
--- a/src/libtracker-common/Makefile.am
+++ b/src/libtracker-common/Makefile.am
@@ -17,7 +17,6 @@ libtracker_common_la_SOURCES = \
        tracker-ioprio.c \
        tracker-log.c \
        tracker-sched.c \
-       tracker-storage.c \
        tracker-type-utils.c \
        tracker-utils.c \
        tracker-locale.c
@@ -31,7 +30,6 @@ noinst_HEADERS = \
        tracker-date-time.h \
        tracker-file-utils.h \
        tracker-sched.h \
-       tracker-storage.h \
        tracker-type-utils.h \
        tracker-utils.h \
        tracker-locale.h
diff --git a/src/libtracker-common/tracker-common.h b/src/libtracker-common/tracker-common.h
index ebceba4..60c556b 100644
--- a/src/libtracker-common/tracker-common.h
+++ b/src/libtracker-common/tracker-common.h
@@ -35,7 +35,6 @@
 #include "tracker-language.h"
 #include "tracker-log.h"
 #include "tracker-sched.h"
-#include "tracker-storage.h"
 #include "tracker-type-utils.h"
 #include "tracker-utils.h"
 #include "tracker-locale.h"
diff --git a/src/libtracker-miner/tracker-decorator-fs.c b/src/libtracker-miner/tracker-decorator-fs.c
index 3e18822..d2e4470 100644
--- a/src/libtracker-miner/tracker-decorator-fs.c
+++ b/src/libtracker-miner/tracker-decorator-fs.c
@@ -42,7 +42,7 @@
 typedef struct _TrackerDecoratorFSPrivate TrackerDecoratorFSPrivate;
 
 struct _TrackerDecoratorFSPrivate {
-       TrackerStorage *storage;
+       GVolumeMonitor *volume_monitor;
 };
 
 static GInitableIface *parent_initable_iface;
@@ -60,8 +60,8 @@ tracker_decorator_fs_finalize (GObject *object)
 
        priv = TRACKER_DECORATOR_FS (object)->priv;
 
-       if (priv->storage)
-               g_object_unref (priv->storage);
+       if (priv->volume_monitor)
+               g_object_unref (priv->volume_monitor);
 
        G_OBJECT_CLASS (tracker_decorator_fs_parent_class)->finalize (object);
 }
@@ -167,33 +167,57 @@ check_files (TrackerDecorator    *decorator,
        g_string_free (query, TRUE);
 }
 
+static inline gchar *
+mount_point_get_uuid (GMount *mount)
+{
+       GVolume *volume;
+       gchar *uuid = NULL;
+
+       volume = g_mount_get_volume (mount);
+       if (volume) {
+               uuid = g_volume_get_identifier (volume, G_VOLUME_IDENTIFIER_KIND_UUID);
+               if (!uuid) {
+                       gchar *mount_name;
+
+                       mount_name = g_mount_get_name (mount);
+                       uuid = g_compute_checksum_for_string (G_CHECKSUM_MD5, mount_name, -1);
+                       g_free (mount_name);
+               }
+
+               g_object_unref (volume);
+       }
+
+       return uuid;
+}
+
 static void
-mount_point_added_cb (TrackerStorage *storage,
-                      const gchar    *uuid,
-                      const gchar    *mount_point,
-                      const gchar    *mount_name,
-                      gboolean        removable,
-                      gboolean        optical,
+mount_point_added_cb (GVolumeMonitor *monitor,
+                      GMount         *mount,
                       gpointer        user_data)
 {
+       gchar *uuid;
        gchar *urn;
 
+       uuid = mount_point_get_uuid (mount);
        urn = g_strdup_printf (TRACKER_PREFIX_DATASOURCE_URN "%s", uuid);
        check_files (user_data, urn, TRUE, process_files_cb);
        g_free (urn);
+       g_free (uuid);
 }
 
 static void
-mount_point_removed_cb (TrackerStorage *storage,
-                        const gchar    *uuid,
-                        const gchar    *mount_point,
+mount_point_removed_cb (GVolumeMonitor *monitor,
+                        GMount         *mount,
                         gpointer        user_data)
 {
+       gchar *uuid;
        gchar *urn;
 
+       uuid = mount_point_get_uuid (mount);
        urn = g_strdup_printf (TRACKER_PREFIX_DATASOURCE_URN "%s", uuid);
        check_files (user_data, urn, FALSE, remove_files_cb);
        g_free (urn);
+       g_free (uuid);
 }
 
 static gboolean
@@ -204,13 +228,12 @@ tracker_decorator_fs_iface_init (GInitable     *initable,
        TrackerDecoratorFSPrivate *priv;
 
        priv = TRACKER_DECORATOR_FS (initable)->priv;
-       priv->storage = tracker_storage_new ();
-
-       g_signal_connect (priv->storage, "mount-point-added",
-                         G_CALLBACK (mount_point_added_cb), initable);
 
-       g_signal_connect (priv->storage, "mount-point-removed",
-                         G_CALLBACK (mount_point_removed_cb), initable);
+       priv->volume_monitor = g_volume_monitor_get ();
+       g_signal_connect_object (priv->volume_monitor, "mount-added",
+                                G_CALLBACK (mount_point_added_cb), initable, 0);
+       g_signal_connect_object (priv->volume_monitor, "mount-removed",
+                                G_CALLBACK (mount_point_removed_cb), initable, 0);
 
        return parent_initable_iface->init (initable, cancellable, error);
 }
diff --git a/src/miners/fs/Makefile.am b/src/miners/fs/Makefile.am
index 3d00786..904f6fb 100644
--- a/src/miners/fs/Makefile.am
+++ b/src/miners/fs/Makefile.am
@@ -36,6 +36,8 @@ tracker_miner_fs_SOURCES =                             \
        tracker-miner-files.h                          \
        tracker-miner-files-index.c                    \
        tracker-miner-files-index.h                    \
+       tracker-storage.c                              \
+       tracker-storage.h                              \
        tracker-writeback-listener.c                   \
        tracker-writeback-listener.h                   \
        tracker-writeback-dispatcher.c                 \
diff --git a/src/miners/fs/tracker-miner-files.c b/src/miners/fs/tracker-miner-files.c
index 726ca3f..246e7db 100644
--- a/src/miners/fs/tracker-miner-files.c
+++ b/src/miners/fs/tracker-miner-files.c
@@ -43,6 +43,7 @@
 #include "tracker-power.h"
 #include "tracker-miner-files.h"
 #include "tracker-config.h"
+#include "tracker-storage.h"
 
 #define DISK_SPACE_CHECK_FREQUENCY 10
 #define SECONDS_PER_DAY 86400
diff --git a/src/libtracker-common/tracker-storage.c b/src/miners/fs/tracker-storage.c
similarity index 99%
rename from src/libtracker-common/tracker-storage.c
rename to src/miners/fs/tracker-storage.c
index 557d002..9ec59db 100644
--- a/src/libtracker-common/tracker-storage.c
+++ b/src/miners/fs/tracker-storage.c
@@ -27,7 +27,6 @@
 #include <libtracker-common/tracker-log.h>
 
 #include "tracker-storage.h"
-#include "tracker-utils.h"
 
 /**
  * SECTION:tracker-storage
diff --git a/src/libtracker-common/tracker-storage.h b/src/miners/fs/tracker-storage.h
similarity index 100%
rename from src/libtracker-common/tracker-storage.h
rename to src/miners/fs/tracker-storage.h
diff --git a/src/tracker-writeback/tracker-writeback.c b/src/tracker-writeback/tracker-writeback.c
index faf057b..c80f240 100644
--- a/src/tracker-writeback/tracker-writeback.c
+++ b/src/tracker-writeback/tracker-writeback.c
@@ -17,6 +17,8 @@
  * Boston, MA  02110-1301, USA.
  */
 
+#include "config.h"
+
 #include "tracker-writeback.h"
 #include "tracker-writeback-module.h"
 
@@ -51,7 +53,7 @@ typedef struct {
        GMainContext *context;
        GMainLoop *main_loop;
 
-       TrackerStorage *storage;
+       GVolumeMonitor *volume_monitor;
 
        GDBusConnection *d_connection;
        GDBusNodeInfo *introspection_data;
@@ -141,7 +143,7 @@ tracker_controller_finalize (GObject *object)
 
        tracker_controller_dbus_stop (controller);
 
-       g_object_unref (priv->storage);
+       g_object_unref (priv->volume_monitor);
        g_hash_table_unref (priv->modules);
 
        g_main_loop_unref (priv->main_loop);
@@ -315,14 +317,13 @@ cancel_tasks (TrackerController *controller,
 }
 
 static void
-mount_point_removed_cb (TrackerStorage *storage,
-                        const gchar    *uuid,
-                        const gchar    *mount_point,
+mount_point_removed_cb (GVolumeMonitor *monitor,
+                        GMount         *mount,
                         gpointer        user_data)
 {
        GFile *mount_file;
 
-       mount_file = g_file_new_for_path (mount_point);
+       mount_file = g_mount_get_root (mount);
        cancel_tasks (TRACKER_CONTROLLER (user_data), NULL, mount_file);
        g_object_unref (mount_file);
 }
@@ -386,9 +387,9 @@ tracker_controller_init (TrackerController *controller)
        priv->context = g_main_context_new ();
        priv->main_loop = g_main_loop_new (priv->context, FALSE);
 
-       priv->storage = tracker_storage_new ();
-       g_signal_connect (priv->storage, "mount-point-removed",
-                         G_CALLBACK (mount_point_removed_cb), controller);
+       priv->volume_monitor = g_volume_monitor_get ();
+       g_signal_connect_object (priv->volume_monitor, "mount-removed",
+                                G_CALLBACK (mount_point_removed_cb), controller, 0);
 
        g_cond_init (&priv->initialization_cond);
        g_mutex_init (&priv->initialization_mutex);


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