[Libosinfo] [PATCH 03/10] Add osinfo_install_script_generate_output_for_media*()
Zeeshan Ali (Khattak)
zeeshanak at gnome.org
Tue May 12 12:57:47 UTC 2015
On Tue, May 12, 2015 at 12:47 PM, Christophe Fergeau
<cfergeau at redhat.com> wrote:
> On Thu, May 07, 2015 at 05:36:38PM +0100, Zeeshan Ali (Khattak) wrote:
>> Add variant of osinfo_install_script_generate_for_media*() that
>> generates the script into a file.
>> ---
>> osinfo/libosinfo.syms | 4 +
>> osinfo/osinfo_install_script.c | 250 +++++++++++++++++++++++++++++++++--------
>> osinfo/osinfo_install_script.h | 17 +++
>> 3 files changed, 224 insertions(+), 47 deletions(-)
>>
>> diff --git a/osinfo/libosinfo.syms b/osinfo/libosinfo.syms
>> index ba4c020..3906f89 100644
>> --- a/osinfo/libosinfo.syms
>> +++ b/osinfo/libosinfo.syms
>> @@ -511,6 +511,10 @@ LIBOSINFO_0.2.12 {
>> osinfo_install_script_generate_for_media_async;
>> osinfo_install_script_generate_for_media_finish;
>>
>> + osinfo_install_script_generate_output_for_media;
>> + osinfo_install_script_generate_output_for_media_async;
>> + osinfo_install_script_generate_output_for_media_finish;
>> +
>> osinfo_media_get_volume_size;
>> } LIBOSINFO_0.2.11;
>>
>> diff --git a/osinfo/osinfo_install_script.c b/osinfo/osinfo_install_script.c
>> index 621c56f..a251557 100644
>> --- a/osinfo/osinfo_install_script.c
>> +++ b/osinfo/osinfo_install_script.c
>> @@ -1061,6 +1061,25 @@ GFile *osinfo_install_script_generate_output_finish(OsinfoInstallScript *script,
>> error);
>> }
>>
>> +/**
>> + * osinfo_install_script_generate_output_for_media_finish:
>> + * @script: the install script
>> + * @res: a #GAsyncResult
>> + * @error: The location where to store any error, or NULL
>> + *
>> + * Returns: (transfer full): a file containing the script, or NULL on error.
>> + *
>> + * Since: 0.2.12
>> + */
>> +GFile *osinfo_install_script_generate_output_for_media_finish(OsinfoInstallScript *script,
>> + GAsyncResult *res,
>> + GError **error)
>> +{
>> + return osinfo_install_script_generate_finish_common(script,
>> + res,
>> + error);
>> +}
>> +
>> struct _OsinfoInstallScriptGenerateSyncData {
>> GMainLoop *loop;
>> GError *error;
>> @@ -1081,6 +1100,19 @@ static void osinfo_install_script_generate_output_done(GObject *src,
>> g_main_loop_quit(data->loop);
>> }
>>
>> +static void osinfo_install_script_generate_output_for_media_done(GObject *src,
>> + GAsyncResult *res,
>> + gpointer user_data)
>> +{
>> + OsinfoInstallScriptGenerateSyncData *data = user_data;
>> +
>> + data->file =
>> + osinfo_install_script_generate_output_for_media_finish(OSINFO_INSTALL_SCRIPT(src),
>> + res,
>> + &data->error);
>> + g_main_loop_quit(data->loop);
>> +}
>> +
>> static void osinfo_install_script_generate_output_close_file(GObject *src,
>> GAsyncResult *res,
>> gpointer user_data)
>> @@ -1279,28 +1311,14 @@ static void osinfo_install_script_generate_output_write_file(GObject *src,
>> }
>> }
>>
>> -/**
>> - * osinfo_install_script_generate_output_async:
>> - * @script: the install script
>> - * @os: the os
>> - * @config: the install script config
>> - * @output_dir: the directory where file containing the output script
>> - * will be written
>> - * @cancellable: (allow-none): a #GCancellable, or %NULL
>> - * @callback: Function to call when result of this call is ready
>> - * @user_data: The user data to pass to @callback, or %NULL
>> - *
>> - * Asynchronous variant of #osinfo_install_script_generate_output(). From the
>> - * callback, call #osinfo_install_script_generate_output_finish() to conclude
>> - * this call and get the generated script.
>> - */
>> -void osinfo_install_script_generate_output_async(OsinfoInstallScript *script,
>> - OsinfoOs *os,
>> - OsinfoInstallConfig *config,
>> - GFile *output_dir,
>> - GCancellable *cancellable,
>> - GAsyncReadyCallback callback,
>> - gpointer user_data)
>> +static void osinfo_install_script_generate_output_async_common(OsinfoInstallScript *script,
>> + OsinfoOs *os,
>> + OsinfoMedia *media,
>> + OsinfoInstallConfig *config,
>> + GFile *output_dir,
>> + GCancellable *cancellable,
>> + GAsyncReadyCallback callback,
>> + gpointer user_data)
>> {
>> const gchar *filename;
>> const gchar *prefix;
>> @@ -1312,15 +1330,23 @@ void osinfo_install_script_generate_output_async(OsinfoInstallScript *script,
>> data->res = g_simple_async_result_new(G_OBJECT(script),
>> callback,
>> user_data,
>> - osinfo_install_script_generate_output_async);
>> + osinfo_install_script_generate_output_async_common);
>>
>> data->cancellable = cancellable;
>> data->error = data_sync->error;
>> - data->output = osinfo_install_script_generate(script,
>> - os,
>> - config,
>> - cancellable,
>> - &data->error);
>> + if (media != NULL) {
>> + data->output = osinfo_install_script_generate_for_media (script,
>> + media,
>> + config,
>> + cancellable,
>> + &data->error);
>> + } else {
>> + data->output = osinfo_install_script_generate(script,
>> + os,
>> + config,
>> + cancellable,
>> + &data->error);
>> + }
>
> This is preexisting, but having an async function call into a sync
> function while an async variant exists is unexpected.
Indeed. Do you think its worth it to change already or its ok to
correct that later.
--
Regards,
Zeeshan Ali (Khattak)
________________________________________
Befriend GNOME: http://www.gnome.org/friends/
More information about the Libosinfo
mailing list