From: Boris (boris_at_[hidden])
Date: 2005-04-12 13:54:36
document why what decisions were made.
We have until now:
* The network library should support four I/O models which are known to many
programmers as blocking, non-blocking, multiplexing and asynchronous.
* It should be possible to switch between I/O models at runtime (which means
you have one socket class supporting all I/O models instead of different
socket classes each of them supporting only one I/O model).
* There should be an asynchronous I/O library as other libraries might want
to do asynchronous I/O, too.
* There should be an asynchronous design pattern which should be used by all
Boost libraries which support asynchronous operations.
* On a low level the network library should be close to what is known as
Berkeley sockets to many programmers.
* On a high level there should be I/O streams support.
As far as I can see from all the discussions that's what we agree on. There
have been some ideas like event handlers and dispatchers but I am not sure
where to put them - have a look at
http://www.highscore.de/boost/net/packages.png please (which is also in the
Wiki page). This is the overall architecture of the network library. If you
want me to change or add something please tell me.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk