static void dir_enum_async_ready (GObject *source, GAsyncResult *res, gpointer user_data) { BgPicturesSourcePrivate *priv; GFileEnumerator *enumerator; GError *err = NULL; enumerator = g_file_enumerate_children_finish (G_FILE (source), res, &err); if (err) { if (!g_error_matches (err, G_IO_ERROR, G_IO_ERROR_CANCELLED)) g_warning ("Could not fill pictures source: %s", err->message); g_error_free (err); return; } priv = BG_PICTURES_SOURCE (user_data)->priv; /* get the files */ g_file_enumerator_next_files_async (enumerator, G_MAXINT, G_PRIORITY_LOW, priv->cancellable, file_info_async_ready, user_data); g_object_unref (enumerator); }
static void _push_dir_cb (GFile *file, GAsyncResult *res, MpdStorageDevice *self) { MpdStorageDevicePrivate *priv = GET_PRIVATE (self); GFileEnumerator *enumerator; GError *error = NULL; g_return_if_fail (G_IS_FILE (file)); /* Debug */ char *indent = g_strnfill (g_slist_length (priv->dir_stack), ' '); char *path = g_file_get_path (file); g_debug ("%s%s", indent, path); g_free (path); g_free (indent); enumerator = g_file_enumerate_children_finish (file, res, &error); if (error) { g_critical ("%s : %s", G_STRLOC, error->message); g_clear_error (&error); return; } /* g_file_enumerator_get_container () fails on us. */ g_object_set_data_full (G_OBJECT (enumerator), "path", g_file_get_path (file), g_free); priv->dir_stack = g_slist_prepend (priv->dir_stack, g_object_ref (enumerator)); enumerate_dir (self); g_object_unref (enumerator); }
static void enumerate_children_ready_cb (GObject *source, GAsyncResult *res, gpointer user_data) { GFile *location = G_FILE (source); GFileEnumerator *enumerator; GError *error = NULL; BijiNoteBook *self; enumerator = g_file_enumerate_children_finish (location, res, &error); if (error != NULL) { load_location_error (location, error); return; } self = user_data; // enumerate all files g_file_enumerator_next_files_async (enumerator, G_MAXINT, G_PRIORITY_DEFAULT, self->priv->load_cancellable, enumerate_next_files_ready_cb, self); }
static void enum_child_cb (GObject *obj, GAsyncResult *result, gpointer data) { RBAndroidSource *source = RB_ANDROID_SOURCE (data); RBAndroidSourcePrivate *priv = GET_PRIVATE(source); GFileEnumerator *e; GError *error = NULL; e = g_file_enumerate_children_finish (G_FILE (obj), result, &error); if (e == NULL) { rb_debug ("enum error: %s", error->message); g_clear_error (&error); music_dirs_done (source); return; } g_file_enumerator_next_files_async (e, 64, G_PRIORITY_DEFAULT, priv->cancel, enum_files_cb, source); }
static void enumerate_children_async_cb (GObject *source, GAsyncResult *res, gpointer user_data) { EnumerateJob *job = user_data; GFileEnumerator *enumerator; enumerator = g_file_enumerate_children_finish (G_FILE (source), res, NULL); if (!enumerator) { enumerate_job_finish (job); return; } g_file_enumerator_next_files_async (enumerator, G_MAXINT, G_PRIORITY_DEFAULT, NULL, enumerate_next_files_async_cb, job); }
static void got_enum (GObject *source_object, GAsyncResult *res, gpointer user_data) { LoadBasenamesData *data = user_data; if (data->completer == NULL) { /* Was cancelled */ load_basenames_data_free (data); return; } data->enumerator = g_file_enumerate_children_finish (G_FILE (source_object), res, NULL); if (data->enumerator == NULL) { data->completer->basename_loader = NULL; if (data->completer->basenames_dir) g_object_unref (data->completer->basenames_dir); g_list_foreach (data->completer->basenames, (GFunc)g_free, NULL); g_list_free (data->completer->basenames); /* Mark uptodate with no basenames */ data->completer->basenames_dir = g_object_ref (data->dir); data->completer->basenames = NULL; data->completer->basenames_are_escaped = data->should_escape; load_basenames_data_free (data); return; } g_file_enumerator_next_files_async (data->enumerator, 100, 0, data->cancellable, got_more_files, data); }
static void on_enumerator_ready (GObject *source_object, GAsyncResult *res, gpointer user_data) { GError *error = NULL; GFileEnumerator *enumerator; JsonObject *options; const gchar *problem; enumerator = g_file_enumerate_children_finish (G_FILE (source_object), res, &error); if (enumerator == NULL) { if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { CockpitFslist *self = COCKPIT_FSLIST (user_data); problem = error_to_problem (error); if (problem) g_debug ("%s: couldn't list directory: %s", self->path, error->message); else g_warning ("%s: couldn't list directory: %s", self->path, error->message); options = cockpit_channel_close_options (COCKPIT_CHANNEL (self)); json_object_set_string_member (options, "message", error->message); cockpit_channel_close (COCKPIT_CHANNEL (self), problem ? problem : "internal-error"); } g_clear_error (&error); return; } CockpitFslist *self = COCKPIT_FSLIST (user_data); g_file_enumerator_next_files_async (enumerator, 10, G_PRIORITY_DEFAULT, self->cancellable, on_files_listed, self); }
static void delete_subdir (GObject *source, GAsyncResult *res, gpointer user_data) { GFile *file = G_FILE (source); DeleteData *data = user_data; GFileEnumerator *enumerator; GError *error = NULL; g_debug ("GsdHousekeeping: purging %s in %s\n", data->trash ? "trash" : "temporary files", data->name); enumerator = g_file_enumerate_children_finish (file, res, &error); if (error) { if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_DIRECTORY)) g_warning ("Failed to enumerate children of %s: %s\n", data->name, error->message); } if (enumerator) { g_file_enumerator_next_files_async (enumerator, 20, 0, data->cancellable, delete_batch, delete_data_ref (data)); } else if (data->depth > 0 && g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_DIRECTORY)) { if ((data->trash && data->depth > 1) || should_purge_file (data->file, data->cancellable, data->old)) { g_debug ("Purging %s leaf node", data->name); if (!data->dry_run) { g_file_delete (data->file, data->cancellable, NULL); } } } if (error) g_error_free (error); delete_data_unref (data); }
static void enumerated_children_callback (GObject *source_object, GAsyncResult *res, gpointer user_data) { GFileEnumerator *enumerator; InsensitiveFileSearchData *data = (InsensitiveFileSearchData *) (user_data); enumerator = g_file_enumerate_children_finish (G_FILE (source_object), res, NULL); if (enumerator == NULL) { GSimpleAsyncResult *simple; GFile *file; simple = g_simple_async_result_new (G_OBJECT (data->root), data->callback, data->user_data, _g_find_file_insensitive_async); file = g_file_get_child (data->root, data->original_path); g_simple_async_result_set_op_res_gpointer (simple, g_object_ref (file), g_object_unref); g_simple_async_result_complete_in_idle (simple); g_object_unref (simple); clear_find_file_insensitive_state (data); return; } data->enumerator = enumerator; g_file_enumerator_next_files_async (enumerator, INSENSITIVE_SEARCH_ITEMS_PER_CALLBACK, G_PRIORITY_DEFAULT, data->cancellable, more_files_callback, data); }
static void plugin_manager_children_ready (GObject *object, GAsyncResult *result, gpointer user_data) { GigglePluginManagerPriv *priv = GET_PRIV (user_data); GError *error = NULL; GFileEnumerator *children; children = g_file_enumerate_children_finish (G_FILE (object), result, &error); if (error) { g_warning ("%s: %s", G_STRFUNC, error->message); g_clear_error (&error); } if (children) { g_file_enumerator_next_files_async (children, 16, G_PRIORITY_DEFAULT, priv->cancellable, plugin_manager_next_files_ready, user_data); g_object_unref (children); } }