[libvirt] [libvirt-glib 1/2] Follow glib conventions for SimpleAsyncResult source tag

g_simple_async_result_is_valid() API documentation says that the source tag field for SimpleAsyncResult objects "by convention, is a pointer to the _async function corresponding to the _finish function from which this function is called" The stream functions were already following this convention, but other places were using the sync function name as the source tag. This commit uses the async function name everywhere. --- libvirt-gobject/libvirt-gobject-connection.c | 12 ++++++------ libvirt-gobject/libvirt-gobject-domain.c | 4 ++-- libvirt-gobject/libvirt-gobject-storage-pool.c | 12 ++++++------ 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/libvirt-gobject/libvirt-gobject-connection.c b/libvirt-gobject/libvirt-gobject-connection.c index 483533d..70d1adc 100644 --- a/libvirt-gobject/libvirt-gobject-connection.c +++ b/libvirt-gobject/libvirt-gobject-connection.c @@ -478,7 +478,7 @@ void gvir_connection_open_async(GVirConnection *conn, res = g_simple_async_result_new(G_OBJECT(conn), callback, user_data, - gvir_connection_open); + gvir_connection_open_async); g_simple_async_result_run_in_thread(res, gvir_connection_open_helper, G_PRIORITY_DEFAULT, @@ -501,7 +501,7 @@ gboolean gvir_connection_open_finish(GVirConnection *conn, if (G_IS_SIMPLE_ASYNC_RESULT(result)) { GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result); - g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == gvir_connection_open); + g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == gvir_connection_open_async); if (g_simple_async_result_propagate_error(simple, err)) return FALSE; } @@ -886,7 +886,7 @@ void gvir_connection_fetch_domains_async(GVirConnection *conn, res = g_simple_async_result_new(G_OBJECT(conn), callback, user_data, - gvir_connection_fetch_domains); + gvir_connection_fetch_domains_async); g_simple_async_result_run_in_thread(res, gvir_connection_fetch_domains_helper, G_PRIORITY_DEFAULT, @@ -908,7 +908,7 @@ gboolean gvir_connection_fetch_domains_finish(GVirConnection *conn, if (G_IS_SIMPLE_ASYNC_RESULT(result)) { GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result); - g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == gvir_connection_fetch_domains); + g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == gvir_connection_fetch_domains_async); if (g_simple_async_result_propagate_error(simple, err)) return FALSE; } @@ -947,7 +947,7 @@ void gvir_connection_fetch_storage_pools_async(GVirConnection *conn, res = g_simple_async_result_new(G_OBJECT(conn), callback, user_data, - gvir_connection_fetch_storage_pools); + gvir_connection_fetch_storage_pools_async); g_simple_async_result_run_in_thread(res, gvir_connection_fetch_pools_helper, G_PRIORITY_DEFAULT, @@ -970,7 +970,7 @@ gboolean gvir_connection_fetch_storage_pools_finish(GVirConnection *conn, if (G_IS_SIMPLE_ASYNC_RESULT(result)) { GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result); g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == - gvir_connection_fetch_storage_pools); + gvir_connection_fetch_storage_pools_async); if (g_simple_async_result_propagate_error(simple, err)) return FALSE; } diff --git a/libvirt-gobject/libvirt-gobject-domain.c b/libvirt-gobject/libvirt-gobject-domain.c index 9ab6b06..4148a78 100644 --- a/libvirt-gobject/libvirt-gobject-domain.c +++ b/libvirt-gobject/libvirt-gobject-domain.c @@ -788,7 +788,7 @@ void gvir_domain_save_async (GVirDomain *dom, res = g_simple_async_result_new(G_OBJECT(dom), callback, user_data, - gvir_domain_save); + gvir_domain_save_async); g_simple_async_result_set_op_res_gpointer (res, data, (GDestroyNotify) domain_save_data_free); g_simple_async_result_run_in_thread(res, gvir_domain_save_helper, @@ -817,7 +817,7 @@ gboolean gvir_domain_save_finish (GVirDomain *dom, if (G_IS_SIMPLE_ASYNC_RESULT(result)) { GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result); g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == - gvir_domain_save); + gvir_domain_save_async); if (g_simple_async_result_propagate_error(simple, err)) return FALSE; } diff --git a/libvirt-gobject/libvirt-gobject-storage-pool.c b/libvirt-gobject/libvirt-gobject-storage-pool.c index 0ba1768..488f146 100644 --- a/libvirt-gobject/libvirt-gobject-storage-pool.c +++ b/libvirt-gobject/libvirt-gobject-storage-pool.c @@ -437,7 +437,7 @@ void gvir_storage_pool_refresh_async(GVirStoragePool *pool, res = g_simple_async_result_new(G_OBJECT(pool), callback, user_data, - gvir_storage_pool_refresh); + gvir_storage_pool_refresh_async); g_simple_async_result_run_in_thread(res, gvir_storage_pool_refresh_helper, G_PRIORITY_DEFAULT, @@ -460,7 +460,7 @@ gboolean gvir_storage_pool_refresh_finish(GVirStoragePool *pool, if (G_IS_SIMPLE_ASYNC_RESULT(result)) { GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result); g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == - gvir_storage_pool_refresh); + gvir_storage_pool_refresh_async); if (g_simple_async_result_propagate_error(simple, err)) return FALSE; } @@ -627,7 +627,7 @@ void gvir_storage_pool_build_async (GVirStoragePool *pool, res = g_simple_async_result_new(G_OBJECT(pool), callback, user_data, - gvir_storage_pool_build); + gvir_storage_pool_build_async); g_object_set_data(G_OBJECT(res), "StoragePoolBuildData", data); g_simple_async_result_run_in_thread(res, gvir_storage_pool_build_helper, @@ -654,7 +654,7 @@ gboolean gvir_storage_pool_build_finish(GVirStoragePool *pool, if (G_IS_SIMPLE_ASYNC_RESULT(result)) { GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result); g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == - gvir_storage_pool_build); + gvir_storage_pool_build_async); if (g_simple_async_result_propagate_error(simple, err)) return FALSE; } @@ -727,7 +727,7 @@ void gvir_storage_pool_start_async (GVirStoragePool *pool, res = g_simple_async_result_new(G_OBJECT(pool), callback, user_data, - gvir_storage_pool_start); + gvir_storage_pool_start_async); g_object_set_data(G_OBJECT(res), "StoragePoolBuildData", data); g_simple_async_result_run_in_thread(res, gvir_storage_pool_start_helper, @@ -754,7 +754,7 @@ gboolean gvir_storage_pool_start_finish(GVirStoragePool *pool, if (G_IS_SIMPLE_ASYNC_RESULT(result)) { GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result); g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == - gvir_storage_pool_start); + gvir_storage_pool_start_async); if (g_simple_async_result_propagate_error(simple, err)) return FALSE; } -- 1.7.7.5

The _finish functions for async operations can be simplified by using g_simple_async_result_is_valid instead of doing the checks it does by ourselves. --- libvirt-gobject/libvirt-gobject-connection.c | 37 +++++++---------- libvirt-gobject/libvirt-gobject-domain.c | 15 +++---- libvirt-gobject/libvirt-gobject-input-stream.c | 5 +- libvirt-gobject/libvirt-gobject-output-stream.c | 5 +- libvirt-gobject/libvirt-gobject-storage-pool.c | 48 ++++++++++------------- 5 files changed, 48 insertions(+), 62 deletions(-) diff --git a/libvirt-gobject/libvirt-gobject-connection.c b/libvirt-gobject/libvirt-gobject-connection.c index 70d1adc..d5f9c45 100644 --- a/libvirt-gobject/libvirt-gobject-connection.c +++ b/libvirt-gobject/libvirt-gobject-connection.c @@ -497,14 +497,12 @@ gboolean gvir_connection_open_finish(GVirConnection *conn, GError **err) { g_return_val_if_fail(GVIR_IS_CONNECTION(conn), FALSE); - g_return_val_if_fail(G_IS_ASYNC_RESULT(result), FALSE); + g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(conn), + gvir_connection_open_async), + FALSE); - if (G_IS_SIMPLE_ASYNC_RESULT(result)) { - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result); - g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == gvir_connection_open_async); - if (g_simple_async_result_propagate_error(simple, err)) - return FALSE; - } + if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result), err)) + return FALSE; return TRUE; } @@ -904,14 +902,12 @@ gboolean gvir_connection_fetch_domains_finish(GVirConnection *conn, GError **err) { g_return_val_if_fail(GVIR_IS_CONNECTION(conn), FALSE); - g_return_val_if_fail(G_IS_ASYNC_RESULT(result), FALSE); + g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(conn), + gvir_connection_fetch_domains_async), + FALSE); - if (G_IS_SIMPLE_ASYNC_RESULT(result)) { - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result); - g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == gvir_connection_fetch_domains_async); - if (g_simple_async_result_propagate_error(simple, err)) - return FALSE; - } + if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result), err)) + return FALSE; return TRUE; } @@ -965,15 +961,12 @@ gboolean gvir_connection_fetch_storage_pools_finish(GVirConnection *conn, GError **err) { g_return_val_if_fail(GVIR_IS_CONNECTION(conn), FALSE); - g_return_val_if_fail(G_IS_ASYNC_RESULT(result), FALSE); + g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(conn), + gvir_connection_fetch_storage_pools_async), + FALSE); - if (G_IS_SIMPLE_ASYNC_RESULT(result)) { - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result); - g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == - gvir_connection_fetch_storage_pools_async); - if (g_simple_async_result_propagate_error(simple, err)) - return FALSE; - } + if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result), err)) + return FALSE; return TRUE; } diff --git a/libvirt-gobject/libvirt-gobject-domain.c b/libvirt-gobject/libvirt-gobject-domain.c index 4148a78..967ff67 100644 --- a/libvirt-gobject/libvirt-gobject-domain.c +++ b/libvirt-gobject/libvirt-gobject-domain.c @@ -812,15 +812,12 @@ gboolean gvir_domain_save_finish (GVirDomain *dom, GError **err) { g_return_val_if_fail(GVIR_IS_DOMAIN(dom), FALSE); - g_return_val_if_fail(G_IS_ASYNC_RESULT(result), FALSE); - - if (G_IS_SIMPLE_ASYNC_RESULT(result)) { - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result); - g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == - gvir_domain_save_async); - if (g_simple_async_result_propagate_error(simple, err)) - return FALSE; - } + g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(dom), + gvir_domain_save_async), + FALSE); + + if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result), err)) + return FALSE; return TRUE; } diff --git a/libvirt-gobject/libvirt-gobject-input-stream.c b/libvirt-gobject/libvirt-gobject-input-stream.c index 6b9f075..733049b 100644 --- a/libvirt-gobject/libvirt-gobject-input-stream.c +++ b/libvirt-gobject/libvirt-gobject-input-stream.c @@ -188,12 +188,13 @@ static gssize gvir_input_stream_read_finish(GInputStream *stream, gssize count; g_return_val_if_fail(GVIR_IS_INPUT_STREAM(stream), -1); + g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(stream), + gvir_input_stream_read_async), + -1); g_object_get(input_stream->priv->stream, "handle", &handle, NULL); simple = G_SIMPLE_ASYNC_RESULT(result); - g_warn_if_fail(g_simple_async_result_get_source_tag(simple) == gvir_input_stream_read_async); - count = g_simple_async_result_get_op_res_gssize(simple); virStreamEventRemoveCallback(handle); diff --git a/libvirt-gobject/libvirt-gobject-output-stream.c b/libvirt-gobject/libvirt-gobject-output-stream.c index 741b2bc..bb82bd3 100644 --- a/libvirt-gobject/libvirt-gobject-output-stream.c +++ b/libvirt-gobject/libvirt-gobject-output-stream.c @@ -188,12 +188,13 @@ static gssize gvir_output_stream_write_finish(GOutputStream *stream, gssize count; g_return_val_if_fail(GVIR_IS_OUTPUT_STREAM(stream), -1); + g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(stream), + gvir_output_stream_write_async), + -1); g_object_get(output_stream->priv->stream, "handle", &handle, NULL); simple = G_SIMPLE_ASYNC_RESULT(result); - g_warn_if_fail(g_simple_async_result_get_source_tag(simple) == gvir_output_stream_write_async); - count = g_simple_async_result_get_op_res_gssize(simple); virStreamEventRemoveCallback(handle); diff --git a/libvirt-gobject/libvirt-gobject-storage-pool.c b/libvirt-gobject/libvirt-gobject-storage-pool.c index 488f146..c0b32a5 100644 --- a/libvirt-gobject/libvirt-gobject-storage-pool.c +++ b/libvirt-gobject/libvirt-gobject-storage-pool.c @@ -455,15 +455,13 @@ gboolean gvir_storage_pool_refresh_finish(GVirStoragePool *pool, GError **err) { g_return_val_if_fail(GVIR_IS_STORAGE_POOL(pool), FALSE); - g_return_val_if_fail(G_IS_ASYNC_RESULT(result), FALSE); - - if (G_IS_SIMPLE_ASYNC_RESULT(result)) { - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result); - g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == - gvir_storage_pool_refresh_async); - if (g_simple_async_result_propagate_error(simple, err)) - return FALSE; - } + g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(pool), + gvir_storage_pool_refresh_async), + -1); + + if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result), + err)) + return FALSE; return TRUE; } @@ -649,15 +647,13 @@ gboolean gvir_storage_pool_build_finish(GVirStoragePool *pool, GError **err) { g_return_val_if_fail(GVIR_IS_STORAGE_POOL(pool), FALSE); - g_return_val_if_fail(G_IS_ASYNC_RESULT(result), FALSE); - - if (G_IS_SIMPLE_ASYNC_RESULT(result)) { - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result); - g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == - gvir_storage_pool_build_async); - if (g_simple_async_result_propagate_error(simple, err)) - return FALSE; - } + g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(pool), + gvir_storage_pool_build_async), + -1); + + if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result), + err)) + return FALSE; return TRUE; } @@ -749,15 +745,13 @@ gboolean gvir_storage_pool_start_finish(GVirStoragePool *pool, GError **err) { g_return_val_if_fail(GVIR_IS_STORAGE_POOL(pool), FALSE); - g_return_val_if_fail(G_IS_ASYNC_RESULT(result), FALSE); - - if (G_IS_SIMPLE_ASYNC_RESULT(result)) { - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result); - g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == - gvir_storage_pool_start_async); - if (g_simple_async_result_propagate_error(simple, err)) - return FALSE; - } + g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(pool), + gvir_storage_pool_start_async), + -1); + + if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result), + err)) + return FALSE; return TRUE; } -- 1.7.7.5

On Mon, Jan 09, 2012 at 10:11:12AM +0100, Christophe Fergeau wrote:
The _finish functions for async operations can be simplified by using g_simple_async_result_is_valid instead of doing the checks it does by ourselves. --- libvirt-gobject/libvirt-gobject-connection.c | 37 +++++++---------- libvirt-gobject/libvirt-gobject-domain.c | 15 +++---- libvirt-gobject/libvirt-gobject-input-stream.c | 5 +- libvirt-gobject/libvirt-gobject-output-stream.c | 5 +- libvirt-gobject/libvirt-gobject-storage-pool.c | 48 ++++++++++------------- 5 files changed, 48 insertions(+), 62 deletions(-)
diff --git a/libvirt-gobject/libvirt-gobject-storage-pool.c b/libvirt-gobject/libvirt-gobject-storage-pool.c index 488f146..c0b32a5 100644 --- a/libvirt-gobject/libvirt-gobject-storage-pool.c +++ b/libvirt-gobject/libvirt-gobject-storage-pool.c @@ -455,15 +455,13 @@ gboolean gvir_storage_pool_refresh_finish(GVirStoragePool *pool, GError **err) { g_return_val_if_fail(GVIR_IS_STORAGE_POOL(pool), FALSE); - g_return_val_if_fail(G_IS_ASYNC_RESULT(result), FALSE); - - if (G_IS_SIMPLE_ASYNC_RESULT(result)) { - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result); - g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == - gvir_storage_pool_refresh_async); - if (g_simple_async_result_propagate_error(simple, err)) - return FALSE; - } + g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(pool), + gvir_storage_pool_refresh_async), + -1);
s/-1/FALSE/
+ + if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result), + err)) + return FALSE;
return TRUE; } @@ -649,15 +647,13 @@ gboolean gvir_storage_pool_build_finish(GVirStoragePool *pool, GError **err) { g_return_val_if_fail(GVIR_IS_STORAGE_POOL(pool), FALSE); - g_return_val_if_fail(G_IS_ASYNC_RESULT(result), FALSE); - - if (G_IS_SIMPLE_ASYNC_RESULT(result)) { - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result); - g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == - gvir_storage_pool_build_async); - if (g_simple_async_result_propagate_error(simple, err)) - return FALSE; - } + g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(pool), + gvir_storage_pool_build_async), + -1);
s/-1/FALSE/
+ + if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result), + err)) + return FALSE;
return TRUE; } @@ -749,15 +745,13 @@ gboolean gvir_storage_pool_start_finish(GVirStoragePool *pool, GError **err) { g_return_val_if_fail(GVIR_IS_STORAGE_POOL(pool), FALSE); - g_return_val_if_fail(G_IS_ASYNC_RESULT(result), FALSE); - - if (G_IS_SIMPLE_ASYNC_RESULT(result)) { - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT(result); - g_warn_if_fail (g_simple_async_result_get_source_tag(simple) == - gvir_storage_pool_start_async); - if (g_simple_async_result_propagate_error(simple, err)) - return FALSE; - } + g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(pool), + gvir_storage_pool_start_async), + -1);
s/-1/FALSE/
+ + if (g_simple_async_result_propagate_error(G_SIMPLE_ASYNC_RESULT(result), + err)) + return FALSE;
return TRUE; }
ACK, if those 3 return values are fixed Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

On Mon, Jan 09, 2012 at 10:11:11AM +0100, Christophe Fergeau wrote:
g_simple_async_result_is_valid() API documentation says that the source tag field for SimpleAsyncResult objects "by convention, is a pointer to the _async function corresponding to the _finish function from which this function is called" The stream functions were already following this convention, but other places were using the sync function name as the source tag. This commit uses the async function name everywhere. --- libvirt-gobject/libvirt-gobject-connection.c | 12 ++++++------ libvirt-gobject/libvirt-gobject-domain.c | 4 ++-- libvirt-gobject/libvirt-gobject-storage-pool.c | 12 ++++++------ 3 files changed, 14 insertions(+), 14 deletions(-)
ACK Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
participants (2)
-
Christophe Fergeau
-
Daniel P. Berrange