[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH RFC 07/10] qapi script: support direct inheritan
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH RFC 07/10] qapi script: support direct inheritance for struct |
Date: |
Tue, 05 Nov 2013 06:41:02 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 |
On 11/04/2013 05:37 PM, Wenchao Xia wrote:
> Now it is possible to inherit another struct inside data directly,
> which saves trouble to define trivial structure.
>
> Signed-off-by: Wenchao Xia <address@hidden>
> ---
> docs/qapi-code-gen.txt | 21 +++++++++++++++++++++
> scripts/qapi-visit.py | 14 ++++++++++----
> 2 files changed, 31 insertions(+), 4 deletions(-)
>
> diff --git a/docs/qapi-code-gen.txt b/docs/qapi-code-gen.txt
> index 0728f36..3e42ff4 100644
> --- a/docs/qapi-code-gen.txt
> +++ b/docs/qapi-code-gen.txt
> @@ -70,6 +70,27 @@ both fields like this:
> { "file": "/some/place/my-image",
> "backing": "/some/place/my-backing-file" }
>
> +It is possible to directly inherit other struct by keyword '_base':
> +
> + { 'type': 'NetworkConnectionInfo', 'data': { 'host': 'str', 'service':
> 'str' } }
> + { 'type': 'VncConnectionInfo',
> + 'data': {
> + 'server': {
> + '_base': 'NetworkConnectionInfo',
Interesting idea for shorthand. However, I would suggest that you pick
a different character than '_', since '_' is valid in names. That is,
we already have special handling of leading '*' to mark a field as
optional, so I suggest something like '^' to mark a base class. By
using a non-name character, it becomes more obvious that the leading
character has a special meaning to the qapi generator.
I'm also not convinced yet that we want this shorthand; in particular,
I'm worried whether it will make the introspection patches harder to write.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- Re: [Qemu-devel] [PATCH RFC 02/10] qapi script: remember enum values, (continued)
- [Qemu-devel] [PATCH RFC 05/10] qapi script: use same function to generate enum string, Wenchao Xia, 2013/11/05
- [Qemu-devel] [PATCH RFC 04/10] qapi script: code move for generate_enum_name(), Wenchao Xia, 2013/11/05
- [Qemu-devel] [PATCH RFC 01/10] qapi: fix memleak by add implict struct functions in dealloc visitor, Wenchao Xia, 2013/11/05
- [Qemu-devel] [PATCH RFC 03/10] qapi script: check correctness of discriminator values in union, Wenchao Xia, 2013/11/05
- [Qemu-devel] [PATCH RFC 06/10] qapi script: not generate hidden enum type for pre-defined enum discriminator, Wenchao Xia, 2013/11/05
- [Qemu-devel] [PATCH RFC 07/10] qapi script: support direct inheritance for struct, Wenchao Xia, 2013/11/05
- Re: [Qemu-devel] [PATCH RFC 07/10] qapi script: support direct inheritance for struct,
Eric Blake <=
[Qemu-devel] [PATCH RFC 08/10] qapi script: do not add "_" for every capitalized char in enum, Wenchao Xia, 2013/11/05
[Qemu-devel] [PATCH RFC 09/10] tests: fix memleak in error path test for input visitor, Wenchao Xia, 2013/11/05
[Qemu-devel] [PATCH RFC 10/10] tests: add cases for inherited struct and union with discriminator, Wenchao Xia, 2013/11/05