[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v7 5/9] libxl IDL: generate code to parse libxl__json_object to libxl_FOO struct



On Wed, Jun 18, 2014 at 03:22:13PM +0100, Ian Campbell wrote:
> On Tue, 2014-06-17 at 10:32 +0100, Wei Liu wrote:
> > libxl_FOO_parse_json functions are generated.
> > 
> > Note that these functions are used to parse libxl__json_object to
> > libxl__FOO struct. They don't consume JSON string.
> > 
> > The new function definitions are generated to new header files called
> > __libxl_types_*_json_internal.h so that they don't contaiminate public
> > header.
> 
> "contaminate".
> 

Fixed. Thanks.

> I'm a bit confused what is going into this file. It seems to be these
> two:
> 
>     f.write("int %s_parse_json(libxl__gc *gc, const libxl__json_object *%s, 
> %s)\n" % (ty.typename,"o",ty.make_arg("p", passby=idl.PASS_BY_REFERENCE)))
>     f.write("int %s_from_json(libxl_ctx *ctx, %s, const char *s)\n" % 
> (ty.typename, ty.make_arg("p", passby=idl.PASS_BY_REFERENCE)))
> 
> 
> The first looks internal (it takes const libxl__json_object which is
> internal) but it is in the libxl_ namespace.
> 

The first one should be internal. I should use libxl__ namespace in my
next version. This is loose end I missed.

> The second looks like it should be public in _libxl_json.h, shouldn't
> it?
> 

Yes, you're right.

> I think you need to put the first function into a new
> _libxl_types_*_internal.h (no need to make it specific to internal json
> functions),

This one sounds good.

> and the second into just regular _libxl_types.h (it doesn't
> require the application to opt into using yajl so it doesn't have to go
> into _libxl_types_json.h)
> 

I don't think it can work without YAJL.

Wei.

> Ian.
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.