I'm happy to announce that version 1.8 of the C++ Middleware
Writer is available on line --
http://webEbenezer.net/cgi-bin/samb.cgi .
This version adds support for the following:
* Exclusive marshalling support of boost::intrusive::list and
boost::intrusive::rbtree. Neither Boost Intrusive nor Boost
Serialization offer serialization support of the Intrusive
containers. Rather than having two types called 'list,' we
refer to boost::intrusive::list as an ilist. An example of this
support is here --
http://webEbenezer.net/rbtree_marshalling.html .
* Several new options on the user interface including:
+ An "Error Handling" option that indicates whether the code should
be written using return codes or exceptions. The exception
support is new in this release. This option affects the signatures
of the generated marshalling functions.
+ A "Code Structure" option that indicates whether the code should
be written in header-only format or separated interface and
implementation files. The separated interface and implementation
support is new in this release. This option also affects the
signatures of the generated marshalling functions.
+ A choice between unsigned short or unsigned int as the type for
constants written by the C++ Middleware Writer. Constants that
identify messages and user defined types are written by the
software. Previously the constants were always unsigned ints.
* A mechanism to turn off automatic code generation for a type.
Adding a // comment within a class declaration with
"hand_written_marshalling_code" in the text of the comment will
disable default code generation for that type. For example,
class bag
{
// hand_written_marshalling_code
...
Additionally, I would like to say that I find the Intrusive library to be sound and am using it internally in the C++ Middleware Writer. Thanks to the authors: Olaf Krzikalla and Ion Gaztañaga.