[tracker] libtracker-miner: Remove Tracker[File]Enumerator



commit 7365fd11dbd4fb0281cc126918637e71d66b3483
Author: Carlos Garnacho <carlosg gnome org>
Date:   Fri Jul 7 22:40:03 2017 +0200

    libtracker-miner: Remove Tracker[File]Enumerator
    
    This is a pretty pointless shallow wrapper to GFileEnumerator. Just make
    TrackerDataProvider offer GFileEnumerators. If anyone ever was in need for
    implementing a TrackerEnumerator, they can do the very same by implementing
    GFileEnumerator, and handing those from their TrackerDataProvider impl.
    
    This also cuts a level of indirection in directory crawling (i.e. no
    wrapping of GTasks in GTasks), and allows us to fully use GFileEnumerator
    API (eg. g_file_enumerator_next_files will be handy).

 .../libtracker-miner/libtracker-miner-sections.txt |   35 ----
 src/libtracker-miner/Makefile.am                   |    7 +-
 src/libtracker-miner/meson.build                   |    3 -
 src/libtracker-miner/tracker-crawler.c             |   41 ++--
 src/libtracker-miner/tracker-data-provider.c       |  159 +---------------
 src/libtracker-miner/tracker-data-provider.h       |   47 +----
 src/libtracker-miner/tracker-enumerator.c          |  207 --------------------
 src/libtracker-miner/tracker-enumerator.h          |  104 ----------
 src/libtracker-miner/tracker-file-data-provider.c  |   85 +--------
 src/libtracker-miner/tracker-file-enumerator.c     |  200 -------------------
 src/libtracker-miner/tracker-file-enumerator.h     |   60 ------
 src/libtracker-miner/tracker-file-notifier.h       |    1 -
 src/libtracker-miner/tracker-miner.h               |    1 -
 .../tracker-file-enumerator-test.c                 |    4 +-
 14 files changed, 40 insertions(+), 914 deletions(-)
---
diff --git a/docs/reference/libtracker-miner/libtracker-miner-sections.txt 
b/docs/reference/libtracker-miner/libtracker-miner-sections.txt
index 5f65a7c..42ddb73 100644
--- a/docs/reference/libtracker-miner/libtracker-miner-sections.txt
+++ b/docs/reference/libtracker-miner/libtracker-miner-sections.txt
@@ -5,9 +5,6 @@ TrackerDataProviderIface
 tracker_data_provider_begin
 tracker_data_provider_begin_async
 tracker_data_provider_begin_finish
-tracker_data_provider_end
-tracker_data_provider_end_async
-tracker_data_provider_end_finish
 TrackerDataProvider
 <SUBSECTION Standard>
 TRACKER_DATA_PROVIDER
@@ -68,22 +65,6 @@ tracker_decorator_fs_get_type
 </SECTION>
 
 <SECTION>
-<FILE>tracker-enumerator</FILE>
-<TITLE>TrackerEnumerator</TITLE>
-TrackerEnumeratorIface
-tracker_enumerator_next
-tracker_enumerator_next_async
-tracker_enumerator_next_finish
-TrackerEnumerator
-<SUBSECTION Standard>
-TRACKER_ENUMERATOR
-TRACKER_ENUMERATOR_GET_IFACE
-TRACKER_IS_ENUMERATOR
-TRACKER_TYPE_ENUMERATOR
-tracker_enumerator_get_type
-</SECTION>
-
-<SECTION>
 <FILE>tracker-file-data-provider</FILE>
 <TITLE>TrackerFileDataProvider</TITLE>
 TrackerFileDataProviderClass
@@ -101,22 +82,6 @@ tracker_file_data_provider_get_type
 </SECTION>
 
 <SECTION>
-<FILE>tracker-file-enumerator</FILE>
-<TITLE>TrackerFileEnumerator</TITLE>
-TrackerFileEnumeratorClass
-tracker_file_enumerator_new
-TrackerFileEnumerator
-<SUBSECTION Standard>
-TRACKER_FILE_ENUMERATOR
-TRACKER_FILE_ENUMERATOR_CLASS
-TRACKER_FILE_ENUMERATOR_GET_CLASS
-TRACKER_IS_FILE_ENUMERATOR
-TRACKER_IS_FILE_ENUMERATOR_CLASS
-TRACKER_TYPE_FILE_ENUMERATOR
-tracker_file_enumerator_get_type
-</SECTION>
-
-<SECTION>
 <FILE>tracker-indexing-tree</FILE>
 <TITLE>TrackerIndexingTree</TITLE>
 TrackerIndexingTree
diff --git a/src/libtracker-miner/Makefile.am b/src/libtracker-miner/Makefile.am
index 6737d88..9f6ddfd 100644
--- a/src/libtracker-miner/Makefile.am
+++ b/src/libtracker-miner/Makefile.am
@@ -36,8 +36,6 @@ private_sources =                                    \
        tracker-decorator-private.h                    \
        tracker-file-data-provider.c                   \
        tracker-file-data-provider.h                   \
-       tracker-file-enumerator.c                      \
-       tracker-file-enumerator.h                      \
        tracker-file-notifier.h                        \
        tracker-file-notifier.c                        \
        tracker-file-system.h                          \
@@ -60,8 +58,6 @@ miner_sources =                                      \
        tracker-decorator.h                            \
        tracker-decorator-fs.c                         \
        tracker-decorator-fs.h                         \
-       tracker-enumerator.c                           \
-       tracker-enumerator.h                           \
        tracker-indexing-tree.c                        \
        tracker-indexing-tree.h                        \
        tracker-miner-enum-types.c                     \
@@ -85,7 +81,6 @@ libtracker_minerinclude_HEADERS =                      \
        tracker-data-provider.h                        \
        tracker-decorator.h                            \
        tracker-decorator-fs.h                         \
-       tracker-enumerator.h                           \
        tracker-indexing-tree.h                        \
        tracker-miner.h                                \
        tracker-miner-enums.h                          \
@@ -102,7 +97,7 @@ if !ENABLE_GCOV
 # Using enable_gcov instead of have_unit_test because when doing a release
 #  we disable gcov but NOT the unit tests
 libtracker_miner_@TRACKER_API_VERSION@_la_LDFLAGS +=    \
-       -export-symbols-regex 
'^tracker_(data_provider|enumerator|miner|indexing_tree|directory_flags|filter_type|filter_policy|network_type|decorator)_.*'
+       -export-symbols-regex 
'^tracker_(data_provider|miner|indexing_tree|directory_flags|filter_type|filter_policy|network_type|decorator)_.*'
 endif
 
 libtracker_miner_@TRACKER_API_VERSION@_la_LIBADD =     \
diff --git a/src/libtracker-miner/meson.build b/src/libtracker-miner/meson.build
index d178f74..fcd2a45 100644
--- a/src/libtracker-miner/meson.build
+++ b/src/libtracker-miner/meson.build
@@ -11,7 +11,6 @@ miner_enums = gnome.mkenums('tracker-miner-enum-types',
 private_sources = [
     'tracker-crawler.c',
     'tracker-file-data-provider.c',
-    'tracker-file-enumerator.c',
     'tracker-file-notifier.c',
     'tracker-file-system.c',
     'tracker-priority-queue.c',
@@ -20,7 +19,6 @@ private_sources = [
     'tracker-utils.c']
 
 miner_headers = [
-    'tracker-enumerator.h',
     'tracker-miner-online.h',
     'tracker-data-provider.h',
     'tracker-indexing-tree.h',
@@ -40,7 +38,6 @@ miner_sources = (
     ['tracker-data-provider.c',
     'tracker-decorator.c',
     'tracker-decorator-fs.c',
-    'tracker-enumerator.c',
     'tracker-indexing-tree.c',
     'tracker-miner-object.c',
     'tracker-miner-online.c',
diff --git a/src/libtracker-miner/tracker-crawler.c b/src/libtracker-miner/tracker-crawler.c
index cdcee82..61373bc 100644
--- a/src/libtracker-miner/tracker-crawler.c
+++ b/src/libtracker-miner/tracker-crawler.c
@@ -47,7 +47,7 @@ typedef struct DirectoryRootInfo DirectoryRootInfo;
 
 typedef struct {
        TrackerCrawler *crawler;
-       TrackerEnumerator *enumerator;
+       GFileEnumerator *enumerator;
        DirectoryRootInfo  *root_info;
        DirectoryProcessingData *dir_info;
        GFile *dir_file;
@@ -856,7 +856,7 @@ data_provider_end_cb (GObject      *object,
        DataProviderData *dpd;
        GError *error = NULL;
 
-       tracker_data_provider_end_finish (TRACKER_DATA_PROVIDER (object), result, &error);
+       g_file_enumerator_close_finish (G_FILE_ENUMERATOR (object), result, &error);
        dpd = user_data;
 
        if (error) {
@@ -894,11 +894,10 @@ data_provider_end (TrackerCrawler    *crawler,
        info->dpd = NULL;
 
        if (dpd->enumerator) {
-               tracker_data_provider_end_async (crawler->priv->data_provider,
-                                                dpd->enumerator,
-                                                G_PRIORITY_LOW, NULL,
-                                                data_provider_end_cb,
-                                                dpd);
+               g_file_enumerator_close_async (dpd->enumerator,
+                                              G_PRIORITY_LOW, NULL,
+                                              data_provider_end_cb,
+                                              dpd);
        } else {
                data_provider_data_free (dpd);
        }
@@ -910,10 +909,10 @@ enumerate_next_cb (GObject      *object,
                    gpointer      user_data)
 {
        DataProviderData *dpd;
-       GFileInfo *info;
+       GList *info;
        GError *error = NULL;
 
-       info = tracker_enumerator_next_finish (TRACKER_ENUMERATOR (object), result, &error);
+       info = g_file_enumerator_next_files_finish (G_FILE_ENUMERATOR (object), result, &error);
        dpd = user_data;
 
        if (!info) {
@@ -942,12 +941,12 @@ enumerate_next_cb (GObject      *object,
                process_func_start (dpd->crawler);
        } else {
                /* More work to do, we keep reference given to us */
-               dpd->files = g_slist_prepend (dpd->files, info);
-               tracker_enumerator_next_async (TRACKER_ENUMERATOR (object),
-                                              G_PRIORITY_LOW,
-                                              dpd->crawler->priv->cancellable,
-                                              enumerate_next_cb,
-                                              dpd);
+               dpd->files = g_slist_prepend (dpd->files, info->data);
+               g_file_enumerator_next_files_async (G_FILE_ENUMERATOR (object),
+                                                   1, G_PRIORITY_LOW,
+                                                   dpd->crawler->priv->cancellable,
+                                                   enumerate_next_cb,
+                                                   dpd);
        }
 }
 
@@ -956,7 +955,7 @@ data_provider_begin_cb (GObject      *object,
                         GAsyncResult *result,
                         gpointer      user_data)
 {
-       TrackerEnumerator *enumerator;
+       GFileEnumerator *enumerator;
        DirectoryRootInfo *info;
        DataProviderData *dpd;
        GError *error = NULL;
@@ -982,11 +981,11 @@ data_provider_begin_cb (GObject      *object,
                return;
        }
 
-       tracker_enumerator_next_async (dpd->enumerator,
-                                      G_PRIORITY_LOW,
-                                      dpd->crawler->priv->cancellable,
-                                      enumerate_next_cb,
-                                      dpd);
+       g_file_enumerator_next_files_async (dpd->enumerator,
+                                           1, G_PRIORITY_LOW,
+                                           dpd->crawler->priv->cancellable,
+                                           enumerate_next_cb,
+                                           dpd);
 }
 
 static void
diff --git a/src/libtracker-miner/tracker-data-provider.c b/src/libtracker-miner/tracker-data-provider.c
index f101f1b..0c6f8ce 100644
--- a/src/libtracker-miner/tracker-data-provider.c
+++ b/src/libtracker-miner/tracker-data-provider.c
@@ -32,7 +32,7 @@
  *
  * #TrackerDataProvider allows you to operate on a set of #GFiles,
  * returning a #GFileInfo structure for each file enumerated (e.g.
- * tracker_data_provider_begin() will return a #TrackerEnumerator
+ * tracker_data_provider_begin() will return a #GFileEnumerator
  * which can be used to enumerate resources provided by the
  * #TrackerDataProvider.
  *
@@ -44,8 +44,6 @@
  * TrackerCrawler created upon instantiation. This property is
  * #TrackerMinerFS:data-provider.
  *
- * See the #TrackerEnumerator documentation for more details.
- *
  * Since: 1.2
  **/
 
@@ -66,7 +64,7 @@ tracker_data_provider_default_init (TrackerDataProviderInterface *iface)
  * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
  * @error: location to store the error occurring, or %NULL to ignore
  *
- * Creates a #TrackerEnumerator to enumerate children at the URI
+ * Creates a #GFileEnumerator to enumerate children at the URI
  * provided by @url.
  *
  * The attributes value is a string that specifies the file attributes
@@ -80,12 +78,12 @@ tracker_data_provider_default_init (TrackerDataProviderInterface *iface)
  * G_FILE_ATTRIBUTE_STANDARD_NAME. See g_file_enumerate_children() for
  * more details.
  *
- * Returns: (transfer full): a #TrackerEnumerator or %NULL on failure.
+ * Returns: (transfer full): a #GFileEnumerator or %NULL on failure.
  * This must be freed with g_object_unref().
  *
  * Since: 1.2
  **/
-TrackerEnumerator *
+GFileEnumerator *
 tracker_data_provider_begin (TrackerDataProvider    *data_provider,
                              GFile                  *url,
                              const gchar            *attributes,
@@ -184,12 +182,12 @@ tracker_data_provider_begin_async (TrackerDataProvider   *data_provider,
  * Finishes the asynchronous operation started with
  * tracker_data_provider_begin_async().
  *
- * Returns: (transfer full): a #TrackerEnumerator or %NULL on failure.
+ * Returns: (transfer full): a #GFileEnumerator or %NULL on failure.
  * This must be freed with g_object_unref().
  *
  * Since: 1.2
  **/
-TrackerEnumerator *
+GFileEnumerator *
 tracker_data_provider_begin_finish (TrackerDataProvider  *data_provider,
                                     GAsyncResult         *result,
                                     GError              **error)
@@ -207,148 +205,3 @@ tracker_data_provider_begin_finish (TrackerDataProvider  *data_provider,
 
        return (* iface->begin_finish) (data_provider, result, error);
 }
-
-/**
- * tracker_data_provider_end:
- * @data_provider: a #TrackerDataProvider
- * @enumerator: a #TrackerEnumerator originally created by
- * tracker_data_provider_begin().
- * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
- * @error: location to store the error occurring, or %NULL to ignore
- *
- * Closes any caches or operations related to creating the
- * #TrackerEnumerator to enumerate data at @url.
- *
- * The attributes value is a string that specifies the file attributes
- * that should be gathered. It is not an error if it's not possible to
- * read a particular requested attribute from a file - it just won't
- * be set. attributes should be a comma-separated list of attributes
- * or attribute wildcards. The wildcard "*" means all attributes, and
- * a wildcard like "standard::*" means all attributes in the standard
- * namespace. An example attribute query be "standard::*,owner::user".
- * The standard attributes are available as defines, like
- * G_FILE_ATTRIBUTE_STANDARD_NAME. See g_file_enumerate_children() for
- * more details.
- *
- * Returns: %TRUE on success, otherwise %FALSE and @error is set.
- *
- * Since: 1.2
- **/
-gboolean
-tracker_data_provider_end (TrackerDataProvider  *data_provider,
-                           TrackerEnumerator    *enumerator,
-                           GCancellable         *cancellable,
-                           GError              **error)
-{
-       TrackerDataProviderIface *iface;
-
-       g_return_val_if_fail (TRACKER_IS_DATA_PROVIDER (data_provider), FALSE);
-       g_return_val_if_fail (TRACKER_IS_ENUMERATOR (enumerator), FALSE);
-
-       if (g_cancellable_set_error_if_cancelled (cancellable, error)) {
-               return FALSE;
-       }
-
-       iface = TRACKER_DATA_PROVIDER_GET_IFACE (data_provider);
-
-       if (iface->end == NULL) {
-               g_set_error_literal (error,
-                                    G_IO_ERROR,
-                                    G_IO_ERROR_NOT_SUPPORTED,
-                                    _("Operation not supported"));
-               return FALSE;
-       }
-
-       return (* iface->end) (data_provider, enumerator, cancellable, error);
-}
-
-/**
- * tracker_data_provider_end_async:
- * @data_provider: a #TrackerDataProvider.
- * @enumerator: a #TrackerEnumerator originally created by
- * tracker_data_provider_begin().
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (allow-none): optional #GCancellable object, %NULL to
- * ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call when the
- * request is satisfied
- * @user_data: (closure): the data to pass to callback function
- *
- * Precisely the same operation as tracker_data_provider_end()
- * is performing, but asynchronously.
- *
- * When all i/o for the operation is finished the @callback will be
- * called with the requested information.
-
- * See the documentation of #TrackerDataProvider for information about the
- * order of returned files.
- *
- * In case of a partial error the callback will be called with any
- * succeeding items and no error, and on the next request the error
- * will be reported. If a request is cancelled the callback will be
- * called with %G_IO_ERROR_CANCELLED.
- *
- * During an async request no other sync and async calls are allowed,
- * and will result in %G_IO_ERROR_PENDING errors.
- *
- * Any outstanding i/o request with higher priority (lower numerical
- * value) will be executed before an outstanding request with lower
- * priority. Default priority is %G_PRIORITY_DEFAULT.
- *
- * Since: 1.2
- **/
-void
-tracker_data_provider_end_async (TrackerDataProvider  *data_provider,
-                                 TrackerEnumerator    *enumerator,
-                                 int                   io_priority,
-                                 GCancellable         *cancellable,
-                                 GAsyncReadyCallback   callback,
-                                 gpointer              user_data)
-{
-       TrackerDataProviderIface *iface;
-
-       g_return_if_fail (TRACKER_IS_DATA_PROVIDER (data_provider));
-       g_return_if_fail (TRACKER_IS_ENUMERATOR (enumerator));
-
-       iface = TRACKER_DATA_PROVIDER_GET_IFACE (data_provider);
-
-       if (iface->end_async == NULL) {
-               g_critical (_("Operation not supported"));
-               return;
-       }
-
-       (* iface->end_async) (data_provider, enumerator, io_priority, cancellable, callback, user_data);
-}
-
-/**
- * tracker_data_provider_end_finish:
- * @data_provider: a #TrackerDataProvider.
- * @result: a #GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL
- * to ignore.
- *
- * Finishes the asynchronous operation started with
- * tracker_data_provider_end_async().
- *
- * Returns: %TRUE on success, otherwise %FALSE and @error is set.
- *
- * Since: 1.2
- **/
-gboolean
-tracker_data_provider_end_finish (TrackerDataProvider  *data_provider,
-                                  GAsyncResult         *result,
-                                  GError              **error)
-{
-       TrackerDataProviderIface *iface;
-
-       g_return_val_if_fail (TRACKER_IS_DATA_PROVIDER (data_provider), FALSE);
-       g_return_val_if_fail (G_IS_ASYNC_RESULT (result), FALSE);
-
-       iface = TRACKER_DATA_PROVIDER_GET_IFACE (data_provider);
-
-       if (g_async_result_legacy_propagate_error (result, error)) {
-               return FALSE;
-       }
-
-       return (* iface->end_finish) (data_provider, result, error);
-}
diff --git a/src/libtracker-miner/tracker-data-provider.h b/src/libtracker-miner/tracker-data-provider.h
index 4b7a308..e780f7f 100644
--- a/src/libtracker-miner/tracker-data-provider.h
+++ b/src/libtracker-miner/tracker-data-provider.h
@@ -28,7 +28,6 @@
 
 #include <gio/gio.h>
 
-#include "tracker-enumerator.h"
 #include "tracker-miner-enums.h"
 
 G_BEGIN_DECLS
@@ -72,7 +71,7 @@ struct _TrackerDataProviderIface {
        /* Virtual Table */
 
        /* Start the data_provider for a given location, attributes and flags */
-       TrackerEnumerator *   (* begin)              (TrackerDataProvider    *data_provider,
+       GFileEnumerator *     (* begin)              (TrackerDataProvider    *data_provider,
                                                      GFile                  *url,
                                                      const gchar            *attributes,
                                                      TrackerDirectoryFlags   flags,
@@ -86,39 +85,16 @@ struct _TrackerDataProviderIface {
                                                      GCancellable           *cancellable,
                                                      GAsyncReadyCallback     callback,
                                                      gpointer                user_data);
-       TrackerEnumerator *   (* begin_finish)       (TrackerDataProvider    *data_provider,
-                                                     GAsyncResult           *result,
-                                                     GError                **error);
-
-       /* Close the given location */
-       gboolean              (* end)                (TrackerDataProvider    *data_provider,
-                                                     TrackerEnumerator      *enumerator,
-                                                     GCancellable           *cancellable,
-                                                     GError                **error);
-       void                  (* end_async)          (TrackerDataProvider    *data_provider,
-                                                     TrackerEnumerator      *enumerator,
-                                                     gint                    io_priority,
-                                                     GCancellable           *cancellable,
-                                                     GAsyncReadyCallback     callback,
-                                                     gpointer                user_data);
-       gboolean              (* end_finish)         (TrackerDataProvider    *data_provider,
+       GFileEnumerator *    (* begin_finish)       (TrackerDataProvider    *data_provider,
                                                      GAsyncResult           *result,
                                                      GError                **error);
 
        /*< private >*/
-       /* Padding for future expansion */
-       void (*_tracker_reserved1) (void);
-       void (*_tracker_reserved2) (void);
-       void (*_tracker_reserved3) (void);
-       void (*_tracker_reserved4) (void);
-       void (*_tracker_reserved5) (void);
-       void (*_tracker_reserved6) (void);
-       void (*_tracker_reserved7) (void);
-       void (*_tracker_reserved8) (void);
+       gpointer padding[10];
 };
 
 GType              tracker_data_provider_get_type        (void) G_GNUC_CONST;
-TrackerEnumerator *tracker_data_provider_begin           (TrackerDataProvider   *data_provider,
+GFileEnumerator   *tracker_data_provider_begin           (TrackerDataProvider   *data_provider,
                                                           GFile                 *url,
                                                           const gchar           *attributes,
                                                           TrackerDirectoryFlags  flags,
@@ -132,20 +108,7 @@ void               tracker_data_provider_begin_async     (TrackerDataProvider
                                                           GCancellable          *cancellable,
                                                           GAsyncReadyCallback    callback,
                                                           gpointer               user_data);
-TrackerEnumerator *tracker_data_provider_begin_finish    (TrackerDataProvider   *data_provider,
-                                                          GAsyncResult          *result,
-                                                          GError               **error);
-gboolean           tracker_data_provider_end             (TrackerDataProvider   *data_provider,
-                                                          TrackerEnumerator     *enumerator,
-                                                          GCancellable          *cancellable,
-                                                          GError               **error);
-void               tracker_data_provider_end_async       (TrackerDataProvider   *data_provider,
-                                                          TrackerEnumerator     *enumerator,
-                                                          gint                   io_priority,
-                                                          GCancellable          *cancellable,
-                                                          GAsyncReadyCallback    callback,
-                                                          gpointer               user_data);
-gboolean           tracker_data_provider_end_finish      (TrackerDataProvider   *data_provider,
+GFileEnumerator   *tracker_data_provider_begin_finish    (TrackerDataProvider   *data_provider,
                                                           GAsyncResult          *result,
                                                           GError               **error);
 
diff --git a/src/libtracker-miner/tracker-file-data-provider.c 
b/src/libtracker-miner/tracker-file-data-provider.c
index b4c7e94..45b02c0 100644
--- a/src/libtracker-miner/tracker-file-data-provider.c
+++ b/src/libtracker-miner/tracker-file-data-provider.c
@@ -21,7 +21,6 @@
 
 #include "config.h"
 
-#include "tracker-file-enumerator.h"
 #include "tracker-file-data-provider.h"
 
 static void tracker_file_data_provider_file_iface_init (TrackerDataProviderIface *iface);
@@ -44,8 +43,8 @@ typedef struct {
  * #TrackerFileDataProvider is a local file implementation of the
  * #TrackerDataProvider interface, charged with handling all file:// type URIs.
  *
- * Underneath it all, this implementation makes use of the
- * #GFileEnumerator APIs.
+ * Underneath it all, this implementation makes use of GIO-based
+ * #GFileEnumerator<!-- -->s.
  *
  * Since: 1.2
  **/
@@ -101,7 +100,7 @@ begin_data_free (BeginData *data)
        g_slice_free (BeginData, data);
 }
 
-static TrackerEnumerator *
+static GFileEnumerator *
 file_data_provider_begin (TrackerDataProvider    *data_provider,
                           GFile                  *url,
                           const gchar            *attributes,
@@ -109,7 +108,6 @@ file_data_provider_begin (TrackerDataProvider    *data_provider,
                           GCancellable           *cancellable,
                           GError                **error)
 {
-       TrackerEnumerator *enumerator;
        GFileQueryInfoFlags file_flags;
        GFileEnumerator *fe;
        GError *local_error = NULL;
@@ -150,10 +148,7 @@ file_data_provider_begin (TrackerDataProvider    *data_provider,
                return NULL;
        }
 
-       enumerator = tracker_file_enumerator_new (fe);
-       g_object_unref (fe);
-
-       return TRACKER_ENUMERATOR (enumerator);
+       return fe;
 }
 
 static void
@@ -163,7 +158,7 @@ file_data_provider_begin_thread (GTask        *task,
                                  GCancellable *cancellable)
 {
        TrackerDataProvider *data_provider = source_object;
-       TrackerEnumerator *enumerator = NULL;
+       GFileEnumerator *enumerator = NULL;
        BeginData *data = task_data;
        GError *error = NULL;
 
@@ -204,7 +199,7 @@ file_data_provider_begin_async (TrackerDataProvider   *data_provider,
        g_object_unref (task);
 }
 
-static TrackerEnumerator *
+static GFileEnumerator *
 file_data_provider_begin_finish (TrackerDataProvider  *data_provider,
                                  GAsyncResult         *result,
                                  GError              **error)
@@ -214,80 +209,12 @@ file_data_provider_begin_finish (TrackerDataProvider  *data_provider,
        return g_task_propagate_pointer (G_TASK (result), error);
 }
 
-static gboolean
-file_data_provider_end (TrackerDataProvider  *data_provider,
-                        TrackerEnumerator    *enumerator,
-                        GCancellable         *cancellable,
-                        GError              **error)
-{
-       if (g_cancellable_set_error_if_cancelled (cancellable, error)) {
-               return FALSE;
-       }
-
-       return TRUE;
-}
-
-static void
-file_data_provider_end_thread (GTask        *task,
-                               gpointer      source_object,
-                               gpointer      task_data,
-                               GCancellable *cancellable)
-{
-       TrackerDataProvider *data_provider = source_object;
-       TrackerEnumerator *enumerator = task_data;
-       GError *error = NULL;
-       gboolean success = FALSE;
-
-       if (!g_cancellable_set_error_if_cancelled (cancellable, &error)) {
-               success = file_data_provider_end (data_provider,
-                                                 enumerator,
-                                                 cancellable,
-                                                 &error);
-       }
-
-       if (error) {
-               g_task_return_error (task, error);
-       } else {
-               g_task_return_boolean (task, success);
-       }
-}
-
-static void
-file_data_provider_end_async (TrackerDataProvider  *data_provider,
-                              TrackerEnumerator    *enumerator,
-                              int                   io_priority,
-                              GCancellable         *cancellable,
-                              GAsyncReadyCallback   callback,
-                              gpointer              user_data)
-{
-       GTask *task;
-
-       task = g_task_new (data_provider, cancellable, callback, user_data);
-       g_task_set_task_data (task, g_object_ref (enumerator), (GDestroyNotify) g_object_unref);
-       g_task_set_priority (task, io_priority);
-       g_task_run_in_thread (task, file_data_provider_end_thread);
-       g_object_unref (task);
-}
-
-static gboolean
-file_data_provider_end_finish (TrackerDataProvider  *data_provider,
-                               GAsyncResult         *result,
-                               GError              **error)
-{
-       g_return_val_if_fail (g_task_is_valid (result, data_provider), FALSE);
-
-       return g_task_propagate_boolean (G_TASK (result), error);
-}
-
 static void
 tracker_file_data_provider_file_iface_init (TrackerDataProviderIface *iface)
 {
        iface->begin = file_data_provider_begin;
        iface->begin_async = file_data_provider_begin_async;
        iface->begin_finish = file_data_provider_begin_finish;
-       iface->end = file_data_provider_end;
-       iface->end_async = file_data_provider_end_async;
-       iface->end_finish = file_data_provider_end_finish;
 }
 
 /**
diff --git a/src/libtracker-miner/tracker-file-notifier.h b/src/libtracker-miner/tracker-file-notifier.h
index f267f5f..921c2a6 100644
--- a/src/libtracker-miner/tracker-file-notifier.h
+++ b/src/libtracker-miner/tracker-file-notifier.h
@@ -28,7 +28,6 @@
 
 #include <gio/gio.h>
 #include "tracker-indexing-tree.h"
-#include "tracker-enumerator.h"
 #include "tracker-miner-fs.h"
 
 G_BEGIN_DECLS
diff --git a/src/libtracker-miner/tracker-miner.h b/src/libtracker-miner/tracker-miner.h
index 3665e33..9d6d20e 100644
--- a/src/libtracker-miner/tracker-miner.h
+++ b/src/libtracker-miner/tracker-miner.h
@@ -25,7 +25,6 @@
 #include <libtracker-miner/tracker-data-provider.h>
 #include <libtracker-miner/tracker-decorator.h>
 #include <libtracker-miner/tracker-decorator-fs.h>
-#include <libtracker-miner/tracker-enumerator.h>
 #include <libtracker-miner/tracker-miner-object.h>
 #include <libtracker-miner/tracker-miner-online.h>
 #include <libtracker-miner/tracker-miner-fs.h>
diff --git a/tests/libtracker-miner/tracker-file-enumerator-test.c 
b/tests/libtracker-miner/tracker-file-enumerator-test.c
index a0a35ef..2709367 100644
--- a/tests/libtracker-miner/tracker-file-enumerator-test.c
+++ b/tests/libtracker-miner/tracker-file-enumerator-test.c
@@ -30,7 +30,7 @@ test_enumerator_and_provider (void)
 {
        GFileEnumerator *fe;
        TrackerDataProvider *data_provider;
-       TrackerEnumerator *enumerator;
+       GFileEnumerator *enumerator;
        GFileInfo *info;
        GFile *url;
        GSList *files, *l;
@@ -66,7 +66,7 @@ test_enumerator_and_provider (void)
        g_assert_no_error (error);
        g_assert_nonnull (enumerator);
 
-       while ((info = tracker_enumerator_next (enumerator, NULL, &error)) != NULL) {
+       while ((info = g_file_enumerator_next_file (enumerator, NULL, &error)) != NULL) {
                g_assert_no_error (error);
                count++;
        }


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