| Home | Libraries | People | FAQ | More

## Class template basic_bufferbuf

boost::interprocess::basic_bufferbuf

## Synopsis

    // In header: <boost/interprocess/streams/bufferstream.hpp>

    template<typename CharT, typename CharTraits>
    class basic_bufferbuf {
    public:
      // types
      typedef CharT                                          char_type;
      typedef CharTraits::int_type                           int_type;
      typedef CharTraits::pos_type                           pos_type;
      typedef CharTraits::off_type                           off_type;
      typedef CharTraits                                     traits_type;
      typedef std::basic_streambuf< char_type, traits_type > base_t;

      // construct/copy/destruct
      basic_bufferbuf(std::ios_base::openmode = std::ios_base::in|std::ios_base::out);
      basic_bufferbuf(CharT *, std::size_t,
                      std::ios_base::openmode = std::ios_base::in|std::ios_base::out);
      ~basic_bufferbuf();

      // public member functions
      std::pair< CharT *, std::size_t > buffer() const;
      void buffer(CharT *, std::size_t);
      void set_pointers();

      // protected member functions
      int_type underflow();
      int_type pbackfail(int_type = CharTraits::eof());
      int_type overflow(int_type = CharTraits::eof());
      pos_type seekoff(off_type, std::ios_base::seekdir,
                       std::ios_base::openmode = std::ios_base::in|std::ios_base::out);
      pos_type seekpos(pos_type,
                       std::ios_base::openmode = std::ios_base::in|std::ios_base::out);
    };

## Description

A streambuf class that controls the transmission of elements to and from a basic_xbufferstream. The elements are transmitted from a to a fixed size buffer

### `basic_bufferbuf` public construct/copy/destruct

1.     basic_bufferbuf(std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);

   Constructor. Does not throw.

2.     basic_bufferbuf(CharT * buffer, std::size_t length,
                       std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);

   Constructor. Assigns formatting buffer. Does not throw.

3.     ~basic_bufferbuf();

### `basic_bufferbuf` public member functions

1.     std::pair< CharT *, std::size_t > buffer() const;

   Returns the pointer and size of the internal buffer. Does not throw.

2.     void buffer(CharT * buffer, std::size_t length);

   Sets the underlying buffer to a new value Does not throw.

3.     void set_pointers();

   @ private:

### `basic_bufferbuf` protected member functions

1.     int_type underflow();

2.     int_type pbackfail(int_type c = CharTraits::eof());

3.     int_type overflow(int_type c = CharTraits::eof());

4.     pos_type seekoff(off_type off, std::ios_base::seekdir dir,
                        std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);

5.     pos_type seekpos(pos_type pos,
                        std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);