On Mon, Jun 15, 2009 at 04:27:49PM +0100, Daniel P. Berrange wrote:
- Find OS distros, matching a specific set of properties
What uses do you have in mind for this? Being able to say e.g. 'all distros that support xen PV for IA64'?
How do you think an API call would look?
Just a function callback for doing the filtering. If the callback returned 1 the distro object is kept, otherwise it is discarded.
typedef int (*osfilter-t)(osdistro_t *distro, void *opaque); osdistro_t **os_distro_find(osinfo_t, osfilter_t filter, void *opaque);
I don't really like the idea of filtering. Instead it should just be a callback API full stop. It's up to the client if they want to filter, or find a specific entry, or whatever.
The lifetime rules are such that an entry exists whilst the handle is open, so there's no issues with borrowing pointers in the callback etc.
Imagine virt-manager building a 2 level hiearchy. For the first level it wants to use this method
- Get a list of uninque vendor names among all known OS distros
Pruning duplicates is surely something done in the client. It really doesn't need library help...
regards john