...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::process::basic_ipstream
// In header: <boost/process/pipe.hpp> template<typename CharT, typename Traits = std::char_traits<CharT> > class basic_ipstream : public std::basic_istream< CharT, Traits > { public: // types typedef basic_pipe< CharT, Traits > pipe_type; typedef CharT char_type; typedef Traits traits_type; typedef Traits::int_type int_type; typedef Traits::pos_type pos_type; typedef Traits::off_type off_type; // construct/copy/destruct basic_ipstream(); basic_ipstream(const basic_ipstream &) = delete; basic_ipstream(basic_ipstream &&); basic_ipstream(pipe_type &&); basic_ipstream(const pipe_type &); basic_ipstream & operator=(const basic_ipstream &) = delete; basic_ipstream & operator=(basic_ipstream &&); basic_ipstream & operator=(pipe_type &&); basic_ipstream & operator=(const pipe_type &); // public member functions basic_pipebuf< CharT, Traits > * rdbuf() const; void pipe(pipe_type &&); void pipe(const pipe_type &); pipe_type & pipe(); const pipe_type & pipe() const; pipe_type && pipe(); bool is_open() const; void open(); void open(const std::string &); void close(); };
Implementation of a reading pipe stream.
basic_ipstream
public
construct/copy/destructbasic_ipstream();Default constructor.
basic_ipstream(const basic_ipstream &) = delete;Copy constructor.
basic_ipstream(basic_ipstream && lhs);Move constructor.
basic_ipstream(pipe_type && p);Move construct from a pipe.
basic_ipstream(const pipe_type & p);Copy construct from a pipe.
basic_ipstream & operator=(const basic_ipstream &) = delete;Copy assignment.
basic_ipstream & operator=(basic_ipstream && lhs);Move assignment.
basic_ipstream & operator=(pipe_type && p);Move assignment of a pipe.
basic_ipstream & operator=(const pipe_type & p);Copy assignment of a pipe.
basic_ipstream
public member functionsbasic_pipebuf< CharT, Traits > * rdbuf() const;Get access to the underlying stream_buf.
void pipe(pipe_type && p);Set the pipe of the streambuf.
void pipe(const pipe_type & p);Set the pipe of the streambuf.
pipe_type & pipe();Get a reference to the pipe.
const pipe_type & pipe() const;Get a const reference to the pipe.
pipe_type && pipe();Get a rvalue reference to the pipe. Qualified as rvalue.
bool is_open() const;Check if the pipe is open.
void open();Open a new pipe.
void open(const std::string & name);Open a new named pipe.
void close();Flush the buffer & close the pipe.