[tracker-miners/wip/carlosg/writeback-refactor: 4/12] tracker-writeback: Move TrackerWritebackFile to write_metadata()



commit 21b2b700f31ae1709340ab669492fdc3aa18ef74
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed May 20 12:42:12 2020 +0200

    tracker-writeback: Move TrackerWritebackFile to write_metadata()
    
    Move away from the old API, no longer implemented by any module.

 src/tracker-writeback/tracker-writeback-file.c | 59 +++++++++++++-------------
 src/tracker-writeback/tracker-writeback-file.h |  6 ---
 2 files changed, 30 insertions(+), 35 deletions(-)
---
diff --git a/src/tracker-writeback/tracker-writeback-file.c b/src/tracker-writeback/tracker-writeback-file.c
index dbfc85f6c..59a97f7e4 100644
--- a/src/tracker-writeback/tracker-writeback-file.c
+++ b/src/tracker-writeback/tracker-writeback-file.c
@@ -29,11 +29,10 @@
 
 #include "tracker-writeback-file.h"
 
-static gboolean tracker_writeback_file_update_metadata (TrackerWriteback         *writeback,
-                                                        GPtrArray                *values,
-                                                        TrackerSparqlConnection  *connection,
-                                                        GCancellable             *cancellable,
-                                                        GError                  **error);
+static gboolean tracker_writeback_file_write_metadata (TrackerWriteback         *writeback,
+                                                       TrackerResource          *resource,
+                                                       GCancellable             *cancellable,
+                                                       GError                  **error);
 
 G_DEFINE_ABSTRACT_TYPE (TrackerWritebackFile, tracker_writeback_file, TRACKER_TYPE_WRITEBACK)
 
@@ -42,7 +41,7 @@ tracker_writeback_file_class_init (TrackerWritebackFileClass *klass)
 {
        TrackerWritebackClass *writeback_class = TRACKER_WRITEBACK_CLASS (klass);
 
-       writeback_class->update_metadata = tracker_writeback_file_update_metadata;
+       writeback_class->write_metadata = tracker_writeback_file_write_metadata;
 }
 
 static void
@@ -131,32 +130,27 @@ create_temporary_file (GFile      *file,
 }
 
 static gboolean
-tracker_writeback_file_update_metadata (TrackerWriteback         *writeback,
-                                        GPtrArray                *values,
-                                        TrackerSparqlConnection  *connection,
-                                        GCancellable             *cancellable,
-                                        GError                  **error)
+tracker_writeback_file_write_metadata (TrackerWriteback  *writeback,
+                                       TrackerResource   *resource,
+                                       GCancellable      *cancellable,
+                                       GError           **error)
 {
        TrackerWritebackFileClass *writeback_file_class;
        gboolean retval;
        GFile *file, *tmp_file;
        GFileInfo *file_info;
-       GStrv row;
        const gchar * const *content_types;
-       const gchar *mime_type;
+       const gchar *mime_type, *url;
        guint n;
        GError *n_error = NULL;
 
        writeback_file_class = TRACKER_WRITEBACK_FILE_GET_CLASS (writeback);
 
-       if (!writeback_file_class->update_file_metadata) {
-               g_critical ("%s doesn't implement update_file_metadata()",
-                           G_OBJECT_TYPE_NAME (writeback));
-
+       if (!writeback_file_class->write_file_metadata) {
                g_set_error (error,
                             G_IO_ERROR,
                             G_IO_ERROR_FAILED,
-                            "%s doesn't implement update_file_metadata()",
+                            "%s doesn't implement write_file_metadata()",
                             G_OBJECT_TYPE_NAME (writeback));
 
                return FALSE;
@@ -175,9 +169,17 @@ tracker_writeback_file_update_metadata (TrackerWriteback         *writeback,
                return FALSE;
        }
 
-       /* Get the file from the row */
-       row = g_ptr_array_index (values, 0);
-       file = g_file_new_for_uri (row[0]);
+       /* Get the file from the resource */
+       url = tracker_resource_get_first_string (resource, "nie:isStoredAs");
+       if (!url) {
+               g_set_error (error,
+                            G_IO_ERROR,
+                            G_IO_ERROR_INVALID_DATA,
+                            "RDF does not contain nie:isStoredAs");
+               return FALSE;
+       }
+
+       file = g_file_new_for_uri (url);
 
        file_info = g_file_query_info (file,
                                       G_FILE_ATTRIBUTE_UNIX_MODE ","
@@ -193,7 +195,7 @@ tracker_writeback_file_update_metadata (TrackerWriteback         *writeback,
                             G_IO_ERROR,
                             G_IO_ERROR_FAILED,
                             "%s doesn't exist",
-                            row[0]);
+                            url);
 
                return FALSE;
        }
@@ -206,7 +208,7 @@ tracker_writeback_file_update_metadata (TrackerWriteback         *writeback,
                             G_IO_ERROR,
                             G_IO_ERROR_FAILED,
                             "%s not writable",
-                            row[0]);
+                            url);
 
                return FALSE;
        }
@@ -247,12 +249,11 @@ tracker_writeback_file_update_metadata (TrackerWriteback         *writeback,
                return FALSE;
        }
 
-       retval = (writeback_file_class->update_file_metadata) (TRACKER_WRITEBACK_FILE (writeback),
-                                                              tmp_file,
-                                                              values,
-                                                              connection,
-                                                              cancellable,
-                                                              &n_error);
+       retval = (writeback_file_class->write_file_metadata) (TRACKER_WRITEBACK_FILE (writeback),
+                                                             tmp_file,
+                                                             resource,
+                                                             cancellable,
+                                                             &n_error);
 
        if (!retval) {
                /* Delete the temporary file and preserve original */
diff --git a/src/tracker-writeback/tracker-writeback-file.h b/src/tracker-writeback/tracker-writeback-file.h
index 9204b1be8..22dac5341 100644
--- a/src/tracker-writeback/tracker-writeback-file.h
+++ b/src/tracker-writeback/tracker-writeback-file.h
@@ -43,12 +43,6 @@ struct TrackerWritebackFile {
 struct TrackerWritebackFileClass {
        TrackerWritebackClass parent_class;
 
-       gboolean              (* update_file_metadata) (TrackerWritebackFile     *writeback_file,
-                                                       GFile                    *file,
-                                                       GPtrArray                *values,
-                                                       TrackerSparqlConnection  *connection,
-                                                       GCancellable             *cancellable,
-                                                       GError                  **error);
        const gchar * const * (* content_types)        (TrackerWritebackFile     *writeback_file);
 
        gboolean (* write_file_metadata) (TrackerWritebackFile  *writeback_file,


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