From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58348) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vu4Qq-000304-Oo for qemu-devel@nongnu.org; Fri, 20 Dec 2013 13:04:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Vu4Qk-000253-PW for qemu-devel@nongnu.org; Fri, 20 Dec 2013 13:04:16 -0500 Received: from mx1.redhat.com ([209.132.183.28]:48515) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vu4Qk-00024q-HT for qemu-devel@nongnu.org; Fri, 20 Dec 2013 13:04:10 -0500 Message-ID: <52B4868D.4010805@redhat.com> Date: Fri, 20 Dec 2013 19:03:57 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1373971062-28909-1-git-send-email-akong@redhat.com> <1373971062-28909-3-git-send-email-akong@redhat.com> <51E9B81C.2090105@redhat.com> <20131127023217.GA6629@amosk.info> <20131220110001.GC2890@amosk.info> <20131220115705.GD2890@amosk.info> In-Reply-To: <20131220115705.GD2890@amosk.info> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 2/2] full introspection support for QMP List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Amos Kong Cc: "kwolf@redhat.com" , mdroth@linux.vnet.ibm.com, qemu-devel@nongnu.org, lcapitulino@redhat.com, qiaonuohan@cn.fujitsu.com, xiawenc@linux.vnet.ibm.com Il 20/12/2013 12:57, Amos Kong ha scritto: > { 'type': 'DataObjectBase', > 'data': { '*name': 'str', 'type': 'str' } } > { 'union': 'DataObjectMemberType', > 'discriminator': {}, > 'data': { 'reference': 'str', > 'undefined': 'DataObject', > 'extend': 'DataObject' } } What is the purpose of "undefined"? I don't see any occurrence of any of "undefined" or "extend" in the sample. > { 'type': 'DataObjectMember', > 'data': { 'type': 'DataObjectMemberType', '*name': 'str', > '*optional': 'bool', '*recursive': 'bool' } } > { 'type': 'DataObjectCommand', > 'data': { '*data': [ 'DataObjectMember' ], > '*returns': 'DataObject', > '*gen': 'bool' } } > { 'type': 'DataObjectEnumeration', > 'data': { 'data': [ 'str' ] } } > { 'type': 'DataObjectType', > 'data': { 'data': [ 'DataObjectMember' ] } } > { 'type': 'DataObjectUndefinedStruct', Perhaps Unnamed or Anonymous? > 'data': { 'data': [ 'DataObjectMember' ] } } > { 'type': 'DataObjectUnion', > 'data': { 'data': [ 'DataObjectMember' ], '*base': 'str', > '*discriminator': 'str' } } > { 'union': 'DataObject', > 'base': 'DataObjectBase', > 'discriminator': 'type', > 'data': { > 'command': 'DataObjectCommand', > 'enumeration': 'DataObjectEnumeration', > 'type': 'DataObjectType', > 'undefined-struct': 'DataObjectUndefinedStruct', > 'reference-type': 'String', > 'unionobj': 'DataObjectUnion' } } > { 'command': 'query-qmp-schema', 'returns': ['DataObject'] } I think forcing expansion of everything that isn't unnamed/anonymous makes the schema much larger and unwieldy. Otherwise looks great! Paolo