
I updated http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostNet to 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. Boris