| Top |
functions asynchronously in an ExoJob wrapper object. It is easier to use than the GThread system and provides basic signals to follow the progress of an operation.
gboolean (*ExoSimpleJobFunc) (ExoJob *job,GValueArray *param_values,GError **error);
Used by the ExoSimpleJob to process the job
. See exo_simple_job_launch()
for further details.
job |
an ExoJob. |
|
param_values |
a GValueArray of the GValues passed to
|
|
error |
return location for errors. |
ExoJob * exo_simple_job_launch (ExoSimpleJobFunc func,guint n_param_values,...);
Allocates a new ExoJob which executes the specified func
with
the specified parameters.
An example could be:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
static gboolean list_directory (ExoJob *job, GValueArray *param_values, GError **error) { GFileEnumerator *enumerator; GFileInfo *info; GError *err = NULL; GFile *directory; if (exo_job_set_error_if_cancelled (EXO_JOB (job), error)) return FALSE; directory = g_value_get_object (g_value_array_get_nth (param_values, 0)); enumerator = g_file_enumerate_children (directory, "standard::display-name", G_FILE_QUERY_INFO_NONE, exo_job_get_cancellable (job), &err); if (err != NULL) { g_propagate_error (error, err); return FALSE; } while (TRUE) { info = g_file_enumerator_next_file (enumerator, exo_job_get_cancellable (job), &err); if (info == NULL) break; exo_job_info_message (job, _("Child: %s"), g_file_info_get_display_name (info)); g_object_unref (info); } g_object_unref (enume |