On 05/13/2013 08:27 AM, Kevin Wolf wrote: > I think long term we'll need a dynamic schema anyway. As we go forward > with modularisation and putting things into shared libraries, we'll have > modules that add support for commands, enum values, etc.
In other words, qapi-schema.json should have a way to declare a dynamic-enum, where introspection on that enum will see what is made available at runtime, rather than manually listing the enum contents directly in the .json file. > > Providing the full list of theoretically available elements (i.e. what > would be there, if everything was compiled and all modules were loaded) > would probably implement the spec for the introspection interfaces by the > letter, but just give useless information. Callers want to know what's > really there. > > If we're going to have a query-* command for everything, then we don't > need introspection at all. I would however prefer having the uniform > schema introspection and building the schema at runtime instead of many > separate query-* commands. Indeed, having introspection of a dynamic enum results in fewer commands overall, by making a reusable command have more power. And maybe it's possible to have introspection do both - with an optional boolean parameter that distinguishes between full vs. runtime querying of any enum type. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature