
On Aug 9, 2013, at 9:45 PM, Geoff Shannon
I emailed the list a while ago that I was starting to work on a named pipe implementation for potential inclusion in the Boost.Interprocess library, and now I finally have some concrete evidence of progress. I've come up with a header file for my proposed interface and I would really appreciate any and all feedback on it.
named_pipe_object is an odd name. Why "object"? Construction with char const * attaches to an existing pipe, while with a std::string it creates a pipe? That's horrible. Those ctors should have the same behavior. Use an enumerated type argument to distinguish on behavior from the other or use the Named Constructor Idiom. "some" in read_some() and write_some() is not helpful. How does read_some() know the size of the supplied buffer? You need a size argument (or buffer type discussed separately). write_some() also needs a size argument; you must account for binary data. I don't think named_pipe_server is needed. One creates or connects to a named pipe. A single class can handle both aspects, through different constructors. ___ Rob (Sent from my portable computation engine)