qemu-devel
[Top][All Lists]
Advanced

[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: Wenchao Xia
Subject: Re: [Qemu-devel] [PATCH RFC 07/10] qapi script: support direct inheritance for struct
Date: Wed, 06 Nov 2013 11:20:08 +0800
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.0.1

于 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 <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.

  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?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]