Boost logo

Boost :

Subject: Re: [boost] [gsoc] Boost.Process done
From: Boris Schaeling (boris_at_[hidden])
Date: 2010-08-31 18:10:09


On Tue, 31 Aug 2010 15:13:22 +0200, Ilya Sokolov <ilyasokol_at_[hidden]>
wrote:

> [...]As a user of the library, I'm not interested which pipes are used
> for
> I/O - anonymous or named. IMO it is better to provide exactly one
> stream behavior which supports both sync and async I/O. On windows
> it would be implemented with named pipe and UuidCreateSequential
> (as it "tends to be slightly faster than the UuidCreate" [1]).
> On POSIX it would be implemented with anonymous pipe.

I could add another type (asnyc_pipe?) which is set to the minimum
required pipe type on a platform? The advantage of pipe and named_pipe is
though that many developers know them and don't need to read first what
eg. an async_pipe is. As this is a problem only for Windows developers I'm
not sure either why developers on other platforms should learn new
concepts. Adding another type like async_pipe could be a compromise though?

> IMO anonymous and named pipes should be in the Boost.Interprocess
> library.

That would be OK for me although it wouldn't help much unless those types
are designed similar to the behavior types in Boost.Process (derived from
a parent class and providing methods like get_child_end() and
get_parent_end()).

Boris


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