Channel is a C++ template framework for distributed message passing and event dispatching. Its major components (message IDs, routing algorithms...) are highly configurable as template parameters. As a namespace shared by peer threads, channels support publish/subscribe scope control, message filtering, and translation.
|Tags||Networking Communications Software Development Libraries Application Frameworks Object Brokering Clustering/Distributed Networks|
|Operating Systems||Mac OS X Windows OS Independent POSIX|
Release Notes: Jamfile.v2 was added for building the channel library and examples (the current boost CVS build system was changed so Jamfile.v2 is required). However, there are issues with building samples using Jamfile.v2 with WindowsXP and VC++. Windows users should use the existing Jamfile (v1). This may involve replacing the boost/tools/build/v1 directory with the content from an older boost release or CVS checkout (such as 12/10/2006).
Release Notes: Complete filter and translator-related code. "Unnamed" bindings of message sender and receiver have been added to support tightly-coupled message passing models.
Release Notes: This release introduced associative lookup-based message passing. Regexp based name-matching allows applications to use patterns such as ".*ball.*" to subscribe to messages. Linda-style tuple associative lookup lets applications use wildcard, wildcard, wildcard, "Math Dept" to subscribe to messages for all persons in the math department. The design document was updated, with sections added to clarify class concepts and to explain how to extend the framework by adding new id_type, id_trait, and dispatchers.
Release Notes: A push channel can be connected to a pull channel. channel was made compatible with the latest Boost.Asio. Numerous fixes were made, including asio_streams.
Release Notes: An initial build was created on WindowsXP with Visual C++ 2005 Express. Most library code and samples were built, tested, and worked correctly, excepting only the sample that uses a shared-memory message queue. A wrapper executor was written to use Philipp Henkel's threadpool library as executors. Choice/join arbiters were reworked and implemented in both synchronous and asynchronous forms. Simple queue classes were added. More documentation was added, and some bugs were fixed.