Monday 3 January 2011

KBUS Updates

There are now C++ and Java bindings for KBUS. Also, the repository has been moved to Mercurial.

The C++ API was sketched out by Richard Watts, fleshed out by myself, and then bugfixed and used for an actual project by Richard. It provides a complete interface to the KBUS functionality. However, it does not use exceptions at all (or RTTI) since it is known that some users will need to be able to compile it on embedded systems where such cannot be used. This leads to a slightly different API than might otherwise be expected. Richard also introduced two innovations which may be backported to the other APIs at some point - a specific Device class to represent a KBUS device, which makes a lot of sense when doing non-Ksock specific operations, and the ability to make a message a Reply or Request at "send".

The Java interface was originally implemented by Gareth Bailey (who did the native methods which interface to the KBUS C library). I then expanded it somewhat, and Richard has added the functionality he needed. This is not a complete KBUS API, but provides all the normal functions for day-to-day use.

Both are present in the repository as an initial commit and then a "lump" commit of the results of the development off-line for the project concerned. Apologies for that, but it was easier to just work with the internal repositories during development. The disadvantage, of course, is loss of detailed VCS history.

That commit was then the last commit to KBUS as an SVN repository. The project has now been converted to Mercurial. As normal with Google-hosted projects, the SVN repository will continue to be available "read-only" in its final state. I'm hoping use of Mercurial should aid development in various ways (I'd actually have gone for git if I could).

The next change to the project is likely to be moving the documentation (certainly the generated files and the various PDF and Keynote files)  to a separate repository - this should bring down the size of the KBUS source download considerably.

No comments:

Post a Comment