| Home | Libraries | People | FAQ | More

## Class template basic_pstream

boost::process::basic_pstream

## Synopsis

    // In header: <boost/process/pipe.hpp>

    template<typename CharT, typename Traits = std::char_traits<CharT> >
    class basic_pstream : public std::basic_iostream< 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_pstream();
      basic_pstream(const basic_pstream &) = delete;
      basic_pstream(basic_pstream &&);
      basic_pstream(pipe_type &&);
      basic_pstream(const pipe_type &);
      basic_pstream & operator=(const basic_pstream &) = delete;
      basic_pstream & operator=(basic_pstream &&);
      basic_pstream & operator=(pipe_type &&);
      basic_pstream & 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();
    };

## Description

Implementation of a read-write pipe stream.

### `basic_pstream` public construct/copy/destruct

1.     basic_pstream();

   Default constructor.

2.     basic_pstream(const basic_pstream &) = delete;

   Copy constructor.

3.     basic_pstream(basic_pstream && lhs);

   Move constructor.

4.     basic_pstream(pipe_type && p);

   Move construct from a pipe.

5.     basic_pstream(const pipe_type & p);

   Copy construct from a pipe.

6.     basic_pstream & operator=(const basic_pstream &) = delete;

   Copy assignment.

7.     basic_pstream & operator=(basic_pstream && lhs);

   Move assignment.

8.     basic_pstream & operator=(pipe_type && p);

   Move assignment of a pipe.

9.     basic_pstream & operator=(const pipe_type & p);

   Copy assignment of a pipe.

### `basic_pstream` 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.