Channel 0.3 Beta review

Download
by rbytes.net on

Channel is a generic/simple facility with the purpose of making event dispatching and message passing as straightforward to use as da

License: MIT/X Consortium License
File size: 0K
Developer: Yigong Liu
0 stars award from rbytes.net

Channel is a generic/simple facility with the purpose of making event dispatching and message passing as straightforward to use as data structures:

Channel is a template library, with its major components configurable as template parameters:

template

class Channel

By replacing Id_Type, Id_Trait and Router with various concrete classes, Channel can support table/linear message routing, hierarchical routing and associative routing (Linda style) at the demand of user. The same way, we can use integer, string, POD structs or any class as message ids (provided that proper operations are defined with Id_Trait)

Channel provides complete publish/subscribe interface for channel members (peer threads in message passing and objects in event dispatching) to pub/sub message/event ids/types and send/receive messages/events
Channels are process local entities which can be "connected" to allow transparent distributed communication between members in different channels (Connectors based on tcp socket and unix domain socket are provided as samples)
Namespace control:

The ids published/subscribed by channel members constitute channel's namespace.

Channel provides publish/subscribe scope control; When ids are published/subscribed, peers can specify desired scope (LOCAL, REMOTE, GLOBAL)
When 2 channels are connected, their namespaces are automatically "merged", which is transparent to both channel members and programmers. Members can communicate with members in remote channels the same way as with local members (by pub/sub ids).
Namespace merge/integration is controlled by:
Id scope specification
filters and translators defined at channel connections
Channel communication are peer-2-peer; there are no central daemons required for message passing.
Channel support both asynchronous message passing and synchronous event dispatching models.
Channel is built on top of
ACE (Adaptive Communication Environment) to gain platform independence.

What's New in This Release:
The framework was ported to Windows XP with VC8.
Dispatching policy was added as a Channel template parameter to support various dispatching algorithms.
Broadcast and simple RoundRobin dispatching policies were implemented for testing.
Callback was changed to functor style so that normal functions and functors can be directly used as callbacks.

Channel 0.3 Beta search tags