
Hi Shams,
Basically I am looking for a unified library in Boost that will also me to handle and dispatch events and also allow communication between processes on a local pc and also a remote pc. Is there such a boost library?
Based on your specific requirements, the Channel library/framework i am working on seems a good fit. Channel is a C++ template framework for asynchronous local/distributed event dispatching and message passing. Channel's name_space help bind message/event senders to local/remote message/event receivers and dispatch messages/events from senders to receivers. Various name_spaces and dispatching policies can be plugged into the framework depending on applications' requirements. Channel is built on existing boost libraries: it uses Boost.Asio and Boost.Interprocess to create the transport among distributed processes and uses Boost.Serialization for message marshaling/demarshaling. Channel is for building ordinary asynchronous distributed applications. Channel is not a boost library yet, and i am working toward a boost proposal. I posted about Channel on this email list about half a year ago and many expressed interests and the comments are really helpful. I'll continue improving code based on feedbacks. It currently builds in linux with gcc. What i am doing now is fix bugs and build it on Win32 with VC++2005 express and after that is done i'll submit formal proposal with a boostified document. FYI, i just did a snapshot of latest code and post it at http://channel.sourceforge.net. The changes are: 1. restructuring of source code directories; move components to sub-directories (where they should be): name_spaces, executors, dispatchers, streams. 2. add a "stream" class based on Boost.Interprocess shmem message queue to connect channels at different processes in the same box thru shared memory 3. add samples to demo shmem based channel connections and distributed chat (client/server) based on "stream" on top of ASIO socket. Comments and corrections are highly appreciated. Thanks Yigong