
Douglas Gregor wrote:
On Apr 12, 2005, at 8:54 PM, Boris wrote:
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.
I think the scope of this library is insane. We don't need to solve every single network I/O problem with one huge networking library. Having a solid socket library that handles only blocking with be a _huge_ improvement . Start small and don't be afraid to say "No! That's for the next version."
I don't see any problem. Have a look at the network library in .NET - they support all four I/O models (actually they are all implemented in just one class). Blocking and non-blocking calls are easy to implement anyway, multiplexing requires some object-oriented select and the async stuff has been extensively discussed in http://thread.gmane.org/gmane.comp.lib.boost.devel/120188. If we don't think about all four I/O models in the beginning we might end up with something like std::iostreams and find out later that we have no async support and no idea how to add it. As far as I have seen the source codes provided by Michel and others also include all four I/O models. Boris