[Libvir] 1/4 Additions to the public API

Daniel Veillard veillard at redhat.com
Thu Feb 21 22:39:18 UTC 2008


On Thu, Feb 21, 2008 at 10:21:09PM +0000, Daniel P. Berrange wrote:
> On Thu, Feb 21, 2008 at 05:13:51PM -0500, Daniel Veillard wrote:
> > On Thu, Feb 21, 2008 at 08:56:17PM +0000, Richard W.M. Jones wrote:
> > > This just adds the four new functions to the public API.
> > [...]
> > > +/**
> > > + * virNetworkDHCPHostMapping:
> > > + *
> > > + * hostname mappings are returned by virNetworkListDHCPHostMapping.
> > > + */
> > > +typedef struct _virNetworkDHCPHostMapping {
> > > +  char *hwaddr;
> > > +  char *ipaddr;
> > > +  char *hostname;
> > > +} virNetworkDHCPHostMapping;
> > > +
> > > +typedef virNetworkDHCPHostMapping *virNetworkDHCPHostMappingPtr;
> > > +
> > [...]
> > > +int                     virNetworkListDHCPHostMappings
> > > +                                                (virNetworkPtr network,
> > > +				  virNetworkDHCPHostMappingPtr *const mappings,
> > > +			          int maxmappings);
> > > +int                     virNetworkFreeDHCPHostMappings
> > > +                                 (virNetworkDHCPHostMappingPtr *const mappings,
> > > +			          int maxmappings);
> > 
> >   Hum, do we really need to expose this structure at the API level, since we
> > use it only for listing. Since everything is provided as strings why not 
> > use something like
> > 
> >      int virNetworkListDHCPHostMappings (virNetworkPtr network,
> >                                          int maxmappings,
> >                                          char **hwaddrtab,
> > 					 char **ipaddrtab,
> > 					 char **hostnametab);
> > 
> >   This also avoids the free function too, same functionality, quite a simpler
> > interface.
> 
> Simpler for who ? Apps using this data now have to pass around a whole
> bunch of pointers, instead of a single virNetworkDHCPHostMapping. When 
> you map this API into higher level languages a struct is also going to be
> a much nicer thing to represent. 

if the struct was a simpler representation it would be used for Add too,
I don't think it's the case. Maybe the 3 arrays is not the nicest but 
defining a public structure holding 3 strings feels strange to me,
especially when in the other place we use the 3 strings directly.
Having a deallocator but no allocator function looks strange to me too.

Daniel

-- 
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard      | virtualization library  http://libvirt.org/
veillard at redhat.com  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/




More information about the libvir-list mailing list