Attached is the latest version of the C bindings for the Xen Management API. Apologies for this being later than promised on the call last Wednesday -- some of this turned out to be tricker than I had expected! Since the last time I posted these bindings, I have made a number of changes. I've added an awful lot of flesh on the bones, in particular we've got full coverage across the whole API now. I've removed the dependency upon xmlrpc-c, and am using libxml2 directly for parsing and generation of XML. I've added a record type to each of the classes, such as xen_vm_record, which will be used for client-side storage of data fields. I've added getters for these records, such as xen_vm_get_record, which return one of these. A record that contains references to other records (Ref in the data model) has fields of record_opt type. This type is a tagged union -- either a handle referring to the object, or a full copy of the object's fields. The get_record calls are only shallow -- they return handles as those references, not full copies -- but I anticipate that we shall add some deep calls later. I've added constructors, such as xen_vm_create, that take a xen_vm_record, and use that to supply parameters to the construction. All items that are allocated by the library and passed to the user have a corresponding call for deallocation (xen_vm_free, for example). API Roadmap ----------- Immediately following the Xen 3.0.3 release (due mid-August), the bindings and Xend changes will drop into xen-unstable, and the API work will be a significant part of the Xen 3.0.4 release. The lifecycle patches (RFC'd on xen-devel around a month ago) will go in immediately, as will any other changes to Xend that we have, and then the aim is to work flat out to get Xend talking the new API. (This will be done without breaking the old API, so that xm keeps working in the meantime.) This timescale implies that people will be able to rely upon the C bindings and the API, from November 2006. Immediate Work -------------- I attach a modified version of XMLRPCServer.py, which will log the requests that come to it, and return fake UUIDs and data where requested, but won't actually do anything with the values. I've been using this for testing the client bindings. This ought to be sufficient for people to start playing with these bindings, and se how they integrate with their own products. Once the pre-3.0.4 work begins, these bindings will quickly begin able to talk to the real Xend. Stats ----- include/*.h: 4943 LoC src/*.c: 6290 LoC libxen.so: 129K Have fun, and please comment! Ewan.
Description: Text Data
Description: Binary data
_______________________________________________ xen-api mailing list xen-api@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-api