Boost logo

Boost :

From: Thorsten Ottosen (nesotto_at_[hidden])
Date: 2003-10-24 23:52:00


"Jessie Hernandez" <jessie_at_[hidden]> wrote in message
news:bnabpu$vgt$1_at_sea.gmane.org...
[snip]
> I'd like to get feedback on the current state of the library and see what
> can be improved (I'm mostly interested in the design aspect).

I'm really looking forward to a socket library in boost so I appreciate all
work done in that regard.

Just some quick comments to your example (its hard giving detailed feedback
on the desing when there is no design document):

domain::address_type addr( host<domain>( "www.boost.org" ).address().ip(),
80 );

why is it necesary to say host.address().ip() ? why can't a host have an ip
directly?
why doesn't the host's template parameter default to ipv4?
I think I might like two typedefs instead: ipv4_host and ipv6_host

sockstream.close();

I would prefer this was put in the destructor for exception safety reasons
and ease of use.

I have no idea about what the follownig does, the names don't seem very
intuitive:

hostent* boostEnt = ::gethostbyname( "www.boost.org" );

Why all this nesting:

 sockstream.rdsocket()->blocking( false );

? I would prefer sockstream.enable_blocking()/disable_blocking() [naming not
important]

Why does rdsocket() return a pointer?

Naming in general; prefer read_socket() to rdsocket(); prefer protocol() to
proto() prefer is_connected() to connected(), set_port() to port()

don't put exception specifications on functions.

Overall I think the usage seems simple.

regards

Thorsten


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk