Re: [PATCH 04/22] qapi: Convert simple union InputEvent to flat one

2021-09-14 Thread Gerd Hoffmann
On Mon, Sep 13, 2021 at 02:39:14PM +0200, Markus Armbruster wrote:
> Simple unions predate flat unions.  Having both complicates the QAPI
> schema language and the QAPI generator.  We haven't been using simple
> unions in new code for a long time, because they are less flexible and
> somewhat awkward on the wire.
> 
> To prepare for their removal, convert simple union InputEvent to an
> equivalent flat one.  Adds some boilerplate to the schema, which is a
> bit ugly, but a lot easier to maintain than the simple union feature.
> 
> Cc: Gerd Hoffmann 
> Signed-off-by: Markus Armbruster 

Acked-by: Gerd Hoffmann 




Re: [PATCH 04/22] qapi: Convert simple union InputEvent to flat one

2021-09-13 Thread Markus Armbruster
Eric Blake  writes:

> On Mon, Sep 13, 2021 at 02:39:14PM +0200, Markus Armbruster wrote:
>> Simple unions predate flat unions.  Having both complicates the QAPI
>> schema language and the QAPI generator.  We haven't been using simple
>> unions in new code for a long time, because they are less flexible and
>> somewhat awkward on the wire.
>> 
>> To prepare for their removal, convert simple union InputEvent to an
>> equivalent flat one.  Adds some boilerplate to the schema, which is a
>> bit ugly, but a lot easier to maintain than the simple union feature.
>> 
>> Cc: Gerd Hoffmann 
>> Signed-off-by: Markus Armbruster 
>> ---
>>  qapi/ui.json | 42 ++
>>  1 file changed, 38 insertions(+), 4 deletions(-)
>
> Same question as in 3/22:
>
>> 
>> diff --git a/qapi/ui.json b/qapi/ui.json
>> index a6b0dce876..fe10d69431 100644
>> --- a/qapi/ui.json
>> +++ b/qapi/ui.json
>> @@ -960,6 +960,38 @@
>>'data'  : { 'axis': 'InputAxis',
>>'value'   : 'int' } }
>>  
>> +##
>> +# @InputEventKind:
>> +#
>> +# Since: 6.1
>
> This should either be 6.2, or...
>
>>  ##
>>  # @InputEvent:
>>  #
>> @@ -975,10 +1007,12 @@
>>  # Since: 2.0
>
> ...2.0.

Same answer: 2.0.

>>  ##
>>  { 'union' : 'InputEvent',
>> -  'data'  : { 'key' : 'InputKeyEvent',
>> -  'btn' : 'InputBtnEvent',
>> -  'rel' : 'InputMoveEvent',
>> -  'abs' : 'InputMoveEvent' } }
>> +  'base': { 'type': 'InputEventKind' },
>> +  'discriminator': 'type',
>> +  'data'  : { 'key' : 'InputKeyEventWrapper',
>> +  'btn' : 'InputBtnEventWrapper',
>> +  'rel' : 'InputMoveEventWrapper',
>> +  'abs' : 'InputMoveEventWrapper' } }
>
> But as with that patch, I trust your decision on docs, and the
> conversion itself is sane.
>
> Reviewed-by: Eric Blake 

Thanks!




Re: [PATCH 04/22] qapi: Convert simple union InputEvent to flat one

2021-09-13 Thread Eric Blake
On Mon, Sep 13, 2021 at 02:39:14PM +0200, Markus Armbruster wrote:
> Simple unions predate flat unions.  Having both complicates the QAPI
> schema language and the QAPI generator.  We haven't been using simple
> unions in new code for a long time, because they are less flexible and
> somewhat awkward on the wire.
> 
> To prepare for their removal, convert simple union InputEvent to an
> equivalent flat one.  Adds some boilerplate to the schema, which is a
> bit ugly, but a lot easier to maintain than the simple union feature.
> 
> Cc: Gerd Hoffmann 
> Signed-off-by: Markus Armbruster 
> ---
>  qapi/ui.json | 42 ++
>  1 file changed, 38 insertions(+), 4 deletions(-)

Same question as in 3/22:

> 
> diff --git a/qapi/ui.json b/qapi/ui.json
> index a6b0dce876..fe10d69431 100644
> --- a/qapi/ui.json
> +++ b/qapi/ui.json
> @@ -960,6 +960,38 @@
>'data'  : { 'axis': 'InputAxis',
>'value'   : 'int' } }
>  
> +##
> +# @InputEventKind:
> +#
> +# Since: 6.1

This should either be 6.2, or...

>  ##
>  # @InputEvent:
>  #
> @@ -975,10 +1007,12 @@
>  # Since: 2.0

...2.0.

>  ##
>  { 'union' : 'InputEvent',
> -  'data'  : { 'key' : 'InputKeyEvent',
> -  'btn' : 'InputBtnEvent',
> -  'rel' : 'InputMoveEvent',
> -  'abs' : 'InputMoveEvent' } }
> +  'base': { 'type': 'InputEventKind' },
> +  'discriminator': 'type',
> +  'data'  : { 'key' : 'InputKeyEventWrapper',
> +  'btn' : 'InputBtnEventWrapper',
> +  'rel' : 'InputMoveEventWrapper',
> +  'abs' : 'InputMoveEventWrapper' } }

But as with that patch, I trust your decision on docs, and the
conversion itself is sane.

Reviewed-by: Eric Blake 

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.   +1-919-301-3266
Virtualization:  qemu.org | libvirt.org




[PATCH 04/22] qapi: Convert simple union InputEvent to flat one

2021-09-13 Thread Markus Armbruster
Simple unions predate flat unions.  Having both complicates the QAPI
schema language and the QAPI generator.  We haven't been using simple
unions in new code for a long time, because they are less flexible and
somewhat awkward on the wire.

To prepare for their removal, convert simple union InputEvent to an
equivalent flat one.  Adds some boilerplate to the schema, which is a
bit ugly, but a lot easier to maintain than the simple union feature.

Cc: Gerd Hoffmann 
Signed-off-by: Markus Armbruster 
---
 qapi/ui.json | 42 ++
 1 file changed, 38 insertions(+), 4 deletions(-)

diff --git a/qapi/ui.json b/qapi/ui.json
index a6b0dce876..fe10d69431 100644
--- a/qapi/ui.json
+++ b/qapi/ui.json
@@ -960,6 +960,38 @@
   'data'  : { 'axis': 'InputAxis',
   'value'   : 'int' } }
 
+##
+# @InputEventKind:
+#
+# Since: 6.1
+##
+{ 'enum': 'InputEventKind',
+  'data': [ 'key', 'btn', 'rel', 'abs' ] }
+
+##
+# @InputKeyEventWrapper:
+#
+# Since: 6.1
+##
+{ 'struct': 'InputKeyEventWrapper',
+  'data': { 'data': 'InputKeyEvent' } }
+
+##
+# @InputBtnEventWrapper:
+#
+# Since: 6.1
+##
+{ 'struct': 'InputBtnEventWrapper',
+  'data': { 'data': 'InputBtnEvent' } }
+
+##
+# @InputMoveEventWrapper:
+#
+# Since: 6.1
+##
+{ 'struct': 'InputMoveEventWrapper',
+  'data': { 'data': 'InputMoveEvent' } }
+
 ##
 # @InputEvent:
 #
@@ -975,10 +1007,12 @@
 # Since: 2.0
 ##
 { 'union' : 'InputEvent',
-  'data'  : { 'key' : 'InputKeyEvent',
-  'btn' : 'InputBtnEvent',
-  'rel' : 'InputMoveEvent',
-  'abs' : 'InputMoveEvent' } }
+  'base': { 'type': 'InputEventKind' },
+  'discriminator': 'type',
+  'data'  : { 'key' : 'InputKeyEventWrapper',
+  'btn' : 'InputBtnEventWrapper',
+  'rel' : 'InputMoveEventWrapper',
+  'abs' : 'InputMoveEventWrapper' } }
 
 ##
 # @input-send-event:
-- 
2.31.1