# Template Class basic_streambuf

- Defined in File gzio.hpp

## Inheritance Relationships

### Base Type

- `public std::basic_streambuf< CharT, Traits >`

### Derived Types

- `public cif::gzio::basic_igzip_streambuf< CharT, Traits, BufferSize >` (Template Class basic_igzip_streambuf)

- `public cif::gzio::basic_ogzip_streambuf< CharT, Traits, BufferSize >` (Template Class basic_ogzip_streambuf)

## Class Documentation

template<typename CharT, typename Traits>
class basic_streambuf : public std::basic_streambuf<CharT, Traits>

  A base class for the streambuf classes in gzio.

  The base class for all streambuf classes in this library. It maintains the pointer to the upstream streambuf.

  Template Parameters:

    - CharT – Type of the character stream.

    - Traits – Traits for character type, defaults to char_traits<_CharT>.

  Subclassed by cif::gzio::basic_igzip_streambuf< CharT, Traits, BufferSize >, cif::gzio::basic_ogzip_streambuf< CharT, Traits, BufferSize >

  Public Functions

  inline void set_upstream(streambuf_type *upstream)

    Set the upstream streambuf to upstream

  Protected Attributes

  streambuf_type *m_upstream = nullptr

    The upstream streambuf object, usually this is a basic_filebuf.