CAF 0.17.6
Loading...
Searching...
No Matches
caf::containerbuf< Container > Class Template Reference

A streambuffer abstraction over a contiguous container. More...

#include <streambuf.hpp>

Inheritance diagram for caf::containerbuf< Container >:
caf::stream_buffer< Container::value_type, std::char_traits< Container::value_type > >

Public Types

using base
using char_type = typename base::char_type
using traits_type = typename base::traits_type
using int_type = typename base::int_type
using pos_type = typename base::pos_type
using off_type = typename base::off_type
Public Types inherited from caf::stream_buffer< Container::value_type, std::char_traits< Container::value_type > >
using base
using pos_type
using off_type

Public Member Functions

template<class C = Container, class = typename std::enable_if< detail::has_data_member<C>::value && detail::has_size_member<C>::value >::type>
 containerbuf (Container &c)
 Constructs a container streambuf.
 containerbuf (containerbuf &&other)
containerbufoperator= (containerbuf &&other)
int_type sgetc ()
int_type sputc (char_type c)
std::streamsize sputn (const char_type *s, std::streamsize n)

Protected Member Functions

base * setbuf (char_type *s, std::streamsize n) override
pos_type seekpos (pos_type pos, std::ios_base::openmode which=std::ios_base::in|std::ios_base::out) override
pos_type seekoff (off_type off, std::ios_base::seekdir dir, std::ios_base::openmode which) override
int sync () override
std::streamsize xsgetn (char_type *s, std::streamsize n) override
int_type overflow (int_type c=traits_type::eof()) final
std::streamsize xsputn (const char_type *s, std::streamsize n) override
Protected Member Functions inherited from caf::stream_buffer< Container::value_type, std::char_traits< Container::value_type > >
std::enable_if< sizeof(T)==4 >::type safe_pbump (std::streamsize n)
 The standard only defines pbump(int), which can overflow on 64-bit architectures.
std::enable_if< sizeof(T)==4 >::type safe_gbump (std::streamsize n)
pos_type default_seekoff (off_type off, std::ios_base::seekdir dir, std::ios_base::openmode which)
pos_type default_seekpos (pos_type pos, std::ios_base::openmode which)

Detailed Description

template<class Container>
class caf::containerbuf< Container >

A streambuffer abstraction over a contiguous container.

It supports reading in the same style as arraybuf, but is unbounded for output.

Member Typedef Documentation

◆ base

template<class Container>
using caf::containerbuf< Container >::base
Initial value:
std::basic_streambuf<
typename Container::value_type,
std::char_traits<typename Container::value_type>
>

Constructor & Destructor Documentation

◆ containerbuf()

template<class Container>
template<class C = Container, class = typename std::enable_if< detail::has_data_member<C>::value && detail::has_size_member<C>::value >::type>
caf::containerbuf< Container >::containerbuf ( Container & c)

Constructs a container streambuf.

Parameters
cA contiguous container.

The documentation for this class was generated from the following file: