From: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
To: Eric Blake <eblake@redhat.com>, qemu-devel@nongnu.org
Cc: kwolf@redhat.com, pbonzini@redhat.com, armbru@redhat.com,
lcapitulino@redhat.com
Subject: Re: [Qemu-devel] [PATCH RFC 07/10] qapi script: support direct inheritance for struct
Date: Wed, 06 Nov 2013 11:20:08 +0800 [thread overview]
Message-ID: <5279B568.5070906@linux.vnet.ibm.com> (raw)
In-Reply-To: <5278F56E.70104@redhat.com>
于 2013/11/5 21:41, Eric Blake 写道:
> 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 <xiawenc@linux.vnet.ibm.com>
>> ---
>> 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.
>
I am not sure about this approach either, so put RFC tag on it. The
purpose is allow not to define structures that would be only used once.
What instrospection patch do you mean? Python instrospection
mechnism? You mean there is a python utility which recognize
only keyword "base" now?
next prev parent reply other threads:[~2013-11-06 3:20 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-05 0:37 [Qemu-devel] [PATCH RFC 00/10] qapi script: support enum as discriminator and other improves Wenchao Xia
2013-11-05 0:37 ` [Qemu-devel] [PATCH RFC 01/10] qapi: fix memleak by add implict struct functions in dealloc visitor Wenchao Xia
2013-11-05 13:17 ` Eric Blake
2013-11-05 0:37 ` [Qemu-devel] [PATCH RFC 02/10] qapi script: remember enum values Wenchao Xia
2013-11-05 13:30 ` Eric Blake
2013-11-05 0:37 ` [Qemu-devel] [PATCH RFC 03/10] qapi script: check correctness of discriminator values in union Wenchao Xia
2013-11-05 13:25 ` Eric Blake
2013-11-06 3:02 ` Wenchao Xia
2013-11-05 0:37 ` [Qemu-devel] [PATCH RFC 04/10] qapi script: code move for generate_enum_name() Wenchao Xia
2013-11-05 0:37 ` [Qemu-devel] [PATCH RFC 05/10] qapi script: use same function to generate enum string Wenchao Xia
2013-11-05 0:37 ` [Qemu-devel] [PATCH RFC 06/10] qapi script: not generate hidden enum type for pre-defined enum discriminator Wenchao Xia
2013-11-05 0:37 ` [Qemu-devel] [PATCH RFC 07/10] qapi script: support direct inheritance for struct Wenchao Xia
2013-11-05 13:41 ` Eric Blake
2013-11-06 3:20 ` Wenchao Xia [this message]
2013-11-06 13:33 ` Eric Blake
2013-11-07 2:33 ` Wenchao Xia
2013-11-05 0:37 ` [Qemu-devel] [PATCH RFC 08/10] qapi script: do not add "_" for every capitalized char in enum Wenchao Xia
2013-11-05 0:37 ` [Qemu-devel] [PATCH RFC 09/10] tests: fix memleak in error path test for input visitor Wenchao Xia
2013-11-05 13:20 ` Eric Blake
2013-11-06 2:18 ` Wenchao Xia
2013-11-05 0:37 ` [Qemu-devel] [PATCH RFC 10/10] tests: add cases for inherited struct and union with discriminator Wenchao Xia
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5279B568.5070906@linux.vnet.ibm.com \
--to=xiawenc@linux.vnet.ibm.com \
--cc=armbru@redhat.com \
--cc=eblake@redhat.com \
--cc=kwolf@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).