
On Tue, 14 Sep 2004 01:21:13 -0500, Aaron W. LaFramboise <aaronrabiddog51@aaronwl.com> wrote:
Well here it is. This is a very sketchy "brain dump" of the general form of demultiplexor I have been referring to. I think that it might be a basis for something eventually acceptable as a general demultiplexor for Boost.
This looks quite similar to what is already in giallo. It adds some things like a dispatch queue that are not currently in giallo. Giallo also places the callbacks and the demultiplexer interface into connection/connector/acceptor classes, providing (IMHO) a clean seperation of responsabilities: the socket class thus wraps the native socket functions into a common interface, providing platform independent error messages. the native select and completion ports are also wrapped as objects, which the proactor and reactor classes use (via a bridge class specified as a policy) to provide a consistent demultiplexer interface. the connection/connector/acceptor manage the state (and lifetime) of the underlying socket, use a demultiplexer (proactor or reactor, interchangeably) and provide the user with completion callbacks.