33#ifndef _GLIBXX_STREAMBUF
34#define _GLIBXX_STREAMBUF 1
37#pragma GCC system_header
49namespace std _GLIBCXX_VISIBILITY(default)
51_GLIBCXX_BEGIN_NAMESPACE_VERSION
53#define _IsUnused __attribute__ ((__unused__))
55 template<
typename _CharT,
typename _Traits>
125 template<
typename _CharT,
typename _Traits>
156 template<
bool _IsMove,
typename _CharT2>
157 friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
162 template<
typename _CharT2>
163 friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
168 template<
typename _CharT2,
typename _Distance>
169 friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
175 template<
typename _CharT2,
typename _Traits2,
typename _Alloc>
180 template<
typename _CharT2,
typename _Traits2,
typename _Alloc>
249 {
return this->
setbuf(__s, __n); }
262 {
return this->
seekoff(__off, __way, __mode); }
274 {
return this->
seekpos(__sp, __mode); }
296 return __ret ? __ret : this->
showmanyc();
309 int_type __ret = traits_type::eof();
310 if (__builtin_expect(!traits_type::eq_int_type(this->
sbumpc(),
312 __ret = this->
sgetc();
328 if (__builtin_expect(this->
gptr() < this->
egptr(),
true))
330 __ret = traits_type::to_int_type(*this->
gptr());
334 __ret = this->
uflow();
350 if (__builtin_expect(this->
gptr() < this->
egptr(),
true))
351 __ret = traits_type::to_int_type(*this->
gptr());
367 {
return this->
xsgetn(__s, __n); }
384 const bool __testpos = this->
eback() < this->
gptr();
385 if (__builtin_expect(!__testpos ||
386 !traits_type::eq(__c, this->
gptr()[-1]),
false))
387 __ret = this->
pbackfail(traits_type::to_int_type(__c));
391 __ret = traits_type::to_int_type(*this->
gptr());
409 if (__builtin_expect(this->
eback() < this->
gptr(),
true))
412 __ret = traits_type::to_int_type(*this->
gptr());
436 if (__builtin_expect(this->
pptr() < this->
epptr(),
true))
440 __ret = traits_type::to_int_type(__c);
443 __ret = this->
overflow(traits_type::to_int_type(__c));
460 {
return this->
xsputn(__s, __n); }
697 {
return traits_type::eof(); }
711 int_type __ret = traits_type::eof();
712 const bool __testeof = traits_type::eq_int_type(this->
underflow(),
716 __ret = traits_type::to_int_type(*this->
gptr());
734 {
return traits_type::eof(); }
778 {
return traits_type::eof(); }
780#if _GLIBCXX_USE_DEPRECATED && __cplusplus <= 201402L
791 _GLIBCXX_DEPRECATED_SUGGEST(
"std::basic_streambuf::sbumpc")
809#if __cplusplus < 201103L
819#if __cplusplus >= 201103L
834#if __cplusplus >= 201103L
835 template<
typename _CharT,
typename _Traits>
839 template<
typename _CharT,
typename _Traits>
840 std::basic_streambuf<_CharT, _Traits>&
841 std::basic_streambuf<_CharT, _Traits>::
850#ifdef _GLIBCXX_USE_WCHAR_T
859_GLIBCXX_END_NAMESPACE_VERSION
basic_istream< char > istream
Base class for char input streams.
ISO C++ entities toplevel namespace is std.
ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
Template class basic_ios, virtual base class for all stream classes.
The actual work of input and output (interface).
virtual pos_type seekpos(pos_type, ios_base::openmode=ios_base::in|ios_base::out)
Alters the stream positions.
locale getloc() const
Locale access.
traits_type::int_type int_type
char_type * epptr() const
Access to the put area.
basic_streambuf< char_type, traits_type > __streambuf_type
virtual int_type overflow(int_type __c=traits_type::eof())
Consumes data from the buffer; writes to the controlled sequence.
virtual streamsize xsputn(const char_type *__s, streamsize __n)
Multiple character insertion.
pos_type pubseekpos(pos_type __sp, ios_base::openmode __mode=ios_base::in|ios_base::out)
Alters the stream position.
char_type * pptr() const
Access to the put area.
void setg(char_type *__gbeg, char_type *__gnext, char_type *__gend)
Setting the three read area pointers.
char_type * eback() const
Access to the get area.
virtual int sync()
Synchronizes the buffer arrays with the controlled sequences.
virtual int_type uflow()
Fetches more data from the controlled sequence.
char_type * egptr() const
Access to the get area.
char_type * gptr() const
Access to the get area.
traits_type::pos_type pos_type
streamsize sputn(const char_type *__s, streamsize __n)
Entry point for all single-character output functions.
virtual streamsize xsgetn(char_type *__s, streamsize __n)
Multiple character extraction.
int_type snextc()
Getting the next character.
virtual void imbue(const locale &__loc)
Changes translations.
int_type sbumpc()
Getting the next character.
streamsize sgetn(char_type *__s, streamsize __n)
Entry point for xsgetn.
basic_streambuf * pubsetbuf(char_type *__s, streamsize __n)
Entry points for derived buffer functions.
virtual basic_streambuf< char_type, _Traits > * setbuf(char_type *, streamsize)
Manipulates the buffer.
virtual streamsize showmanyc()
Investigating the data available.
int_type sungetc()
Moving backwards in the input stream.
virtual int_type pbackfail(int_type __c=traits_type::eof())
Tries to back up the input sequence.
locale pubimbue(const locale &__loc)
Entry point for imbue().
streamsize in_avail()
Looking ahead into the stream.
void gbump(int __n)
Moving the read position.
virtual int_type underflow()
Fetches more data from the controlled sequence.
void setp(char_type *__pbeg, char_type *__pend)
Setting the three write area pointers.
pos_type pubseekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode=ios_base::in|ios_base::out)
Alters the stream position.
void pbump(int __n)
Moving the write position.
int_type sgetc()
Getting the next character.
int pubsync()
Calls virtual sync function.
virtual pos_type seekoff(off_type, ios_base::seekdir, ios_base::openmode=ios_base::in|ios_base::out)
Alters the stream positions.
char_type * pbase() const
Access to the put area.
virtual ~basic_streambuf()
Destructor deallocates no buffer space.
traits_type::off_type off_type
int_type sputbackc(char_type __c)
Pushing characters back into the input stream.
int_type sputc(char_type __c)
Entry point for all single-character output functions.
basic_streambuf()
Base constructor.
Template class basic_istream.
Template class basic_ostream.
Provides input iterator semantics for streambufs.
Provides output iterator semantics for streambufs.
Managing sequences of characters and character-like objects.
static const openmode in
Open for input. Default for ifstream and fstream.
static const openmode out
Open for output. Default for ofstream and fstream.
_Ios_Openmode openmode
This is a bitmask type.
_Ios_Seekdir seekdir
This is an enumerated type.
Container class for localization functionality.