staticlib_io  1.2.11
 All Classes Namespaces Files Functions Variables
Public Member Functions | Protected Member Functions | List of all members
staticlib::io::unbuffered_istreambuf< Source, source_eof > Class Template Reference

Unbuffered implementation of input streambuf, wraps Source reference (in terms of Boost.Iostreams). More...

#include <staticlib/io/unbuffered_streambuf.hpp>

Inheritance diagram for staticlib::io::unbuffered_istreambuf< Source, source_eof >:
staticlib::io::detail::unbuffered_streambuf_base

Public Member Functions

 unbuffered_istreambuf (Source &&source)
 Constructor, created source wrapper will own specified source.
 unbuffered_istreambuf (const unbuffered_istreambuf &)
 Deleted copy constructor.
unbuffered_istreambuf & operator= (const unbuffered_istreambuf &)
 Deleted copy assignment operator.
 unbuffered_istreambuf (unbuffered_istreambuf &&other) STATICLIB_NOEXCEPT
 Move constructor.
unbuffered_istreambuf & operator= (unbuffered_istreambuf &&other) STATICLIB_NOEXCEPT
 Move assignment operator.
virtual int uflow () override
 Compatibility method to mimic expected EOF reporting of this streambuf.
Source & get_source ()
 Underlying source accessor.
- Public Member Functions inherited from staticlib::io::detail::unbuffered_streambuf_base
virtual int underflow () override
 Unsupported method, throws 'UtilsException'.
virtual int overflow (int) override
 Unsupported method, throws 'UtilsException'.

Protected Member Functions

virtual std::streamsize xsgetn (char *s, std::streamsize count) override
 Reads count characters from the input sequence and stores them into a character array pointed to by s On Source EOF returns 0 and sets this streambuf state to 'exhausted'.
- Protected Member Functions inherited from staticlib::io::detail::unbuffered_streambuf_base
virtual std::streamsize xsputn (const char *, std::streamsize) override
 Writes count characters to the output sequence from the character array whose first element is pointed to by s.
virtual unbuffered_streambuf_base * setbuf (char *, std::streamsize) override
 Unsupported method, throws 'UtilsException'.
virtual std::streampos seekoff (std::streamoff, std::ios_base::seekdir, std::ios_base::openmode) override
 Unsupported method, throws 'UtilsException'.
virtual std::streampos seekpos (std::streampos, std::ios_base::openmode) override
 Unsupported method, throws 'UtilsException'.

Detailed Description

template<typename Source, std::streamsize source_eof = -1>
class staticlib::io::unbuffered_istreambuf< Source, source_eof >

Unbuffered implementation of input streambuf, wraps Source reference (in terms of Boost.Iostreams).

Should be used directly, must NOT be used wrapped into std::istream.

Constructor & Destructor Documentation

template<typename Source, std::streamsize source_eof = -1>
staticlib::io::unbuffered_istreambuf< Source, source_eof >::unbuffered_istreambuf ( Source &&  source)
inlineexplicit

Constructor, created source wrapper will own specified source.

Parameters
sourceSource instance (in terms of Boost.Iostreams)
template<typename Source, std::streamsize source_eof = -1>
staticlib::io::unbuffered_istreambuf< Source, source_eof >::unbuffered_istreambuf ( const unbuffered_istreambuf< Source, source_eof > &  )

Deleted copy constructor.

template<typename Source, std::streamsize source_eof = -1>
staticlib::io::unbuffered_istreambuf< Source, source_eof >::unbuffered_istreambuf ( unbuffered_istreambuf< Source, source_eof > &&  other)
inline

Move constructor.

Member Function Documentation

template<typename Source, std::streamsize source_eof = -1>
Source& staticlib::io::unbuffered_istreambuf< Source, source_eof >::get_source ( )
inline

Underlying source accessor.

Returns
underlying source reference
template<typename Source, std::streamsize source_eof = -1>
unbuffered_istreambuf& staticlib::io::unbuffered_istreambuf< Source, source_eof >::operator= ( const unbuffered_istreambuf< Source, source_eof > &  )

Deleted copy assignment operator.

template<typename Source, std::streamsize source_eof = -1>
unbuffered_istreambuf& staticlib::io::unbuffered_istreambuf< Source, source_eof >::operator= ( unbuffered_istreambuf< Source, source_eof > &&  other)
inline

Move assignment operator.

template<typename Source, std::streamsize source_eof = -1>
virtual int staticlib::io::unbuffered_istreambuf< Source, source_eof >::uflow ( )
inlineoverridevirtual

Compatibility method to mimic expected EOF reporting of this streambuf.

Return 'std::char_traits<char>::eof()' if the Source was exhausted, throws 'UtilsException' otherwise.

Reimplemented from staticlib::io::detail::unbuffered_streambuf_base.

template<typename Source, std::streamsize source_eof = -1>
virtual std::streamsize staticlib::io::unbuffered_istreambuf< Source, source_eof >::xsgetn ( char *  s,
std::streamsize  count 
)
inlineoverrideprotectedvirtual

Reads count characters from the input sequence and stores them into a character array pointed to by s On Source EOF returns 0 and sets this streambuf state to 'exhausted'.

Parameters
sdestination buffer
countnumber of characters to read

Reimplemented from staticlib::io::detail::unbuffered_streambuf_base.


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