We offer two free services aimed at helping those who are developing applications with C++.
Support for Boost Array is available.
Support for the Boost Unordered Containers library is available. This includes unordered_set, unordered_multiset, unordered_map and unordered_multimap.
Support for message lengths is now available. This page has an option that when used prompts the calculation of the length of each message and the inclusion of the message length in the message header. When message lengths are being used, code that receives messages should call Buffer::SetMsgLength() prior to calling a Receive function. A clc++m thread titled "Preventing Denial of Service Attack in IPC Serialization" was instrumental in our decision to add this support.
Support for the Boost Range library's sub_range<> is available. The support for this type is unusual in that it is possible to send data via a sub_range but not receive data into one. There's more info here about how we support this type.
Support for message IDs is now available.
This Middle code: (list<int>) @msgid_1
results
in this output. Notice how the
Send function includes code to send a message ID,
but the Receive function doesn't have any related
code. The data sent by the Send function will
probably be handled by two Receive functions. The
first Receive function (not shown) to execute will get
a message ID, which can then be used to dispatch
to the Receive function in the above listing.
This program
shows an example of that.
Added a Resize function to the Buffer class.
Fixed an overflow problem in Buffer's Receive function and made a few minor changes to the class.
Worked on improvements to the Middleware Service documentation including expanding the "Advantages" section and adding a section called "Dealing with Stragglers" that discusses supporting multiple versions of a product simultaneosly.
Added valarray<> support,
changed/improved the code generated when
receiving vectors of POD,
changed/improved the code in Send functions after
noting only a single int is needed to keep track
of the counts/sizes of container classes. We still
use an array of ints in Receive functions.