Poco

template < typename ch, typename tr >

class BasicUnbufferedStreamBuf

Library: Foundation
Package: Streams
Header: Poco/UnbufferedStreamBuf.h

Description

This is an implementation of an unbuffered streambuf that greatly simplifies the implementation of custom streambufs of various kinds. Derived classes only have to override the methods readFromDevice() or writeToDevice().

Inheritance

Direct Base Classes: std::basic_streambuf < ch, tr >

All Base Classes: std::basic_streambuf < ch, tr >

Member Summary

Member Functions: charToInt, overflow, pbackfail, uflow, underflow, xsgetn

Types

Base protected

typedef std::basic_streambuf < ch, tr > Base;

IOS protected

typedef std::basic_ios < ch, tr > IOS;

char_traits protected

typedef tr char_traits;

char_type protected

typedef ch char_type;

int_type protected

typedef typename Base::int_type int_type;

off_type protected

typedef typename Base::off_type off_type;

openmode protected

typedef typename IOS::openmode openmode;

pos_type protected

typedef typename Base::pos_type pos_type;

Constructors

BasicUnbufferedStreamBuf inline

BasicUnbufferedStreamBuf();

Destructor

~BasicUnbufferedStreamBuf inline

~BasicUnbufferedStreamBuf();

Member Functions

overflow virtual inline

virtual int_type overflow(
    int_type c
);

pbackfail virtual inline

virtual int_type pbackfail(
    int_type c
);

uflow virtual inline

virtual int_type uflow();

underflow virtual inline

virtual int_type underflow();

xsgetn virtual inline

virtual std::streamsize xsgetn(
    char_type * p,
    std::streamsize count
);

Some platforms (for example, Compaq C++) have buggy implementations of xsgetn that handle null buffers incorrectly. Anyway, it does not hurt to provide an optimized implementation of xsgetn for this streambuf implementation.

charToInt protected static inline

static int_type charToInt(
    char_type c
);