On Tue, Mar 10, 2015 at 05:26:35PM +0100, Peter Krempa wrote:
> The function that is extracting block stats data from the QMP monitor
> reply contains a lot of repeated code. Since I'd be changing each of the
> copies in the next patch, lets convert it to a macro right away.
> ---
>  src/qemu/qemu_monitor_json.c | 77 
> ++++++++++----------------------------------
>  1 file changed, 17 insertions(+), 60 deletions(-)
> 

> +#define QEMU_MONITOR_JSON_BLOCK_STAT(NAME, VAR, MANDATORY)                   
>   \
> +    if (MANDATORY || virJSONValueObjectHasKey(stats, NAME)) {                
>   \
> +        if (virJSONValueObjectGetNumberLong(stats, NAME, &VAR) < 0) {        
>   \
> +            virReportError(VIR_ERR_INTERNAL_ERROR,                           
>   \
> +                           _("cannot read %s statistic"), NAME);             
>   \
> +            goto cleanup;                                                    
>   \
> +        }                                                                    
>   \
> +    }
> +     QEMU_MONITOR_JSON_BLOCK_STAT("rd_bytes", bstats->rd_bytes, true);
> +     QEMU_MONITOR_JSON_BLOCK_STAT("wr_bytes", bstats->wr_bytes, true);
> +     QEMU_MONITOR_JSON_BLOCK_STAT("rd_operations", bstats->rd_req, true);
> +     QEMU_MONITOR_JSON_BLOCK_STAT("wr_operations", bstats->wr_req, true);
> +     QEMU_MONITOR_JSON_BLOCK_STAT("rd_total_time_ns", 
> bstats->rd_total_times, false);
> +     QEMU_MONITOR_JSON_BLOCK_STAT("wr_total_time_ns", 
> bstats->wr_total_times, false);
> +     QEMU_MONITOR_JSON_BLOCK_STAT("flush_operations", bstats->flush_req, 
> false);
> +     QEMU_MONITOR_JSON_BLOCK_STAT("flush_total_time_ns", 
> bstats->flush_total_times, false);
> +#undef QEMU_MONITOR_JSON_BLOCK_STAT
> 

This macro could also use a verb.

Jan

Attachment: signature.asc
Description: Digital signature

--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to