Date: 2001-07-30 14:19:26
I'm interested in this library, and if help is needed I'll lend what
ever time I can spare. My comments on the document:
* Exceptions should not be used for precondition violations.
Assertions and/or error returns should be used instead in this case.
* The "must be portable" requirement may prove more than vexing. Unix
programmers rely heavily on select(), while Windows programmers can
only make very limited use of this and rely almost completely on
asynchronous routines not available to Unix programmers. The
simplest way to insure portability is to support only blocking i/o
with very limited ability to check for available data, but this can
severely complicate coding. A possibly better solution is to provide
a callback mechanism similar to the asynchronous routines in Win32
that do not rely on Win32 specific WndProc mechanisms. (I never
understood why I/O was tied to a GUI object in Win32 asynchronous
routines.) Such an interface could be coded portably using threads on
any platform, though the design will be much more complicated.
* One thing I often see done wrong when it comes to "reducing
preconditions" is overloading methods that connect a socket for
numerous ways of specifying the address/port pair. There should be
two seperate object types, InetAddress and InetPort (pick your name
for these) that can be constructed with the various options such as
URL, IP, friendly name, etc. The connection routines should only
take these as parameters. This vastly simplifies much of the user
coding, as well as maintenance required if some new way of specifying
these comes into existence later.
* I don't think FTP, HTTP or other protocol client/server classes
should even be considered for inclusion, at least in a first
--- In boost_at_y..., Iain.Hanson_at_u... wrote:
> Hi folks,
> Beman has done an initial set of requirements for this, which
> put in boost files/socket2/Sock-req.html.
> We'd welcome your feed back and comments.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk