| Home | Libraries | People | FAQ | More

## Class template basic_ipstream

boost::process::basic_ipstream

## Synopsis

    // 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();
    };

## Description

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.