Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.

Class template 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 > {
  // 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(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/destruct

  1. basic_ipstream();
    Default constructor.
  2. basic_ipstream(const basic_ipstream &) = delete;
    Copy constructor.
  3. basic_ipstream(basic_ipstream && lhs);
    Move constructor.
  4. basic_ipstream(pipe_type && p);
    Move construct from a pipe.
  5. basic_ipstream(const pipe_type & p);
    Copy construct from a pipe.
  6. basic_ipstream & operator=(const basic_ipstream &) = delete;
    Copy assignment.
  7. basic_ipstream & operator=(basic_ipstream && lhs);
    Move assignment.
  8. basic_ipstream & operator=(pipe_type && p);
    Move assignment of a pipe.
  9. basic_ipstream & operator=(const pipe_type & p);
    Copy assignment of a pipe.

basic_ipstream public member functions

  1. basic_pipebuf< CharT, Traits > * rdbuf() const;
    Get access to the underlying stream_buf.
  2. void pipe(pipe_type && p);
    Set the pipe of the streambuf.
  3. void pipe(const pipe_type & p);
    Set the pipe of the streambuf.
  4. pipe_type & pipe();
    Get a reference to the pipe.
  5. const pipe_type & pipe() const;
    Get a const reference to the pipe.
  6. pipe_type && pipe();
    Get a rvalue reference to the pipe. Qualified as rvalue.
  7. bool is_open() const;
    Check if the pipe is open.
  8. void open();
    Open a new pipe.
  9. void open(const std::string & name);
    Open a new named pipe.
  10. void close();
    Flush the buffer & close the pipe.