Boost logo

Boost :

From: Beman Dawes (bdawes_at_[hidden])
Date: 2005-12-23 21:31:05


"Christopher Kohlhoff" <chris_at_[hidden]> wrote in message
news:20051221090730.33683.qmail_at_web32603.mail.mud.yahoo.com...
>
>...
>
> So I wonder if the problem is really just one of naming.
> Specifically, the name of the demuxer class.
>
> Asio started life as a library intended for asynchronous
> use-cases, and for developers with that sort of background I
> believe the name demuxer (i.e. demultiplexer) is perfectly
> natural.
>
> Now that it has grown into general purpose use, perhaps the
> name should reflect the expectations of a wider audience.

I think that would be very helpful.

> I propose that it could be called something like "io_system".
> (Other naming suggestions will be appreciated.)

"io_system" seems a little broad. I think of an "io_system" as encompassing
all I/O mechanisms an operating system supports. A web search turns up broad
phrases like "The basic model of the UNIX I/O system is a sequence of bytes
that can be accessed either randomly or sequentially."

"io_engine" implies to me something at a very low level, like the set of
device drivers.

How about "io_service"? That seems both narrowly focused and about the right
level to me.

I've changed "io_system" to "io_service" in your text below. Reads quite
well IMO.

>Consider the
> following statements:
>
> - An io_service object must be initialised before sockets (or
> other I/O objects) can be used. See the portability
> requirement above.
>
> - An io_service object is an extensible collection of I/O
> services (drivers?).
>
> - Synchronous operations implicitly run the io_service object for
> an individual operation.
>
> - You must run() the io_service object for it to perform
> asynchronous operations on your behalf.
>
> - You can partition your program by using multiple io_service
> objects.

--Beman


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