libstdc++
|
Public Types | |
typedef _Codecvt::state_type | state_type |
typedef _Elem | char_type |
typedef _Tr | traits_type |
typedef traits_type::int_type | int_type |
typedef traits_type::pos_type | pos_type |
typedef traits_type::off_type | off_type |
typedef basic_streambuf < char_type, traits_type > | __streambuf_type |
Public Member Functions | |
wbuffer_convert (streambuf *__bytebuf=0, _Codecvt *__pcvt=new _Codecvt, state_type __state=state_type()) | |
wbuffer_convert (const wbuffer_convert &) | |
locale | getloc () const |
streamsize | in_avail () |
wbuffer_convert & | operator= (const wbuffer_convert &) |
locale | pubimbue (const locale &__loc) |
streambuf * | rdbuf () const noexcept |
streambuf * | rdbuf (streambuf *__bytebuf) noexcept |
int_type | sbumpc () |
int_type | sgetc () |
streamsize | sgetn (char_type *__s, streamsize __n) |
int_type | snextc () |
int_type | sputbackc (char_type __c) |
int_type | sputc (char_type __c) |
streamsize | sputn (const char_type *__s, streamsize __n) |
state_type | state () const noexcept |
int_type | sungetc () |
basic_streambuf * | pubsetbuf (char_type *__s, streamsize __n) |
pos_type | pubseekoff (off_type __off, ios_base::seekdir __way, ios_base::openmode __mode=ios_base::in|ios_base::out) |
pos_type | pubseekpos (pos_type __sp, ios_base::openmode __mode=ios_base::in|ios_base::out) |
int | pubsync () |
Protected Member Functions | |
void | __safe_gbump (streamsize __n) |
void | __safe_pbump (streamsize __n) |
void | gbump (int __n) |
virtual void | imbue (const locale &__loc) |
_Wide_streambuf::int_type | overflow (typename _Wide_streambuf::int_type __out) |
virtual int_type | pbackfail (int_type __c=traits_type::eof()) |
void | pbump (int __n) |
virtual pos_type | seekoff (off_type, ios_base::seekdir, ios_base::openmode=ios_base::in|ios_base::out) |
virtual pos_type | seekpos (pos_type, ios_base::openmode=ios_base::in|ios_base::out) |
virtual basic_streambuf < char_type, _Tr > * | setbuf (char_type *, streamsize) |
void | setg (char_type *__gbeg, char_type *__gnext, char_type *__gend) |
void | setp (char_type *__pbeg, char_type *__pend) |
virtual streamsize | showmanyc () |
void | swap (basic_streambuf &__sb) |
int | sync () |
virtual int_type | uflow () |
_Wide_streambuf::int_type | underflow () |
virtual streamsize | xsgetn (char_type *__s, streamsize __n) |
streamsize | xsputn (const typename _Wide_streambuf::char_type *__s, streamsize __n) |
virtual streamsize | xsputn (const char_type *__s, streamsize __n) |
char_type * | eback () const |
char_type * | gptr () const |
char_type * | egptr () const |
char_type * | pbase () const |
char_type * | pptr () const |
char_type * | epptr () const |
Protected Attributes | |
locale | _M_buf_locale |
char_type * | _M_in_beg |
char_type * | _M_in_cur |
char_type * | _M_in_end |
char_type * | _M_out_beg |
char_type * | _M_out_cur |
char_type * | _M_out_end |
Friends | |
__gnu_cxx::__enable_if < __is_char< _CharT2 > ::__value, _CharT2 * >::__type | __copy_move_a2 (istreambuf_iterator< _CharT2 >, istreambuf_iterator< _CharT2 >, _CharT2 *) |
streamsize | __copy_streambufs_eof (basic_streambuf *, basic_streambuf *, bool &) |
class | basic_ios< char_type, traits_type > |
class | basic_istream< char_type, traits_type > |
class | basic_ostream< char_type, traits_type > |
__gnu_cxx::__enable_if < __is_char< _CharT2 > ::__value, istreambuf_iterator < _CharT2 > >::__type | find (istreambuf_iterator< _CharT2 >, istreambuf_iterator< _CharT2 >, const _CharT2 &) |
basic_istream< _CharT2, _Traits2 > & | getline (basic_istream< _CharT2, _Traits2 > &, basic_string< _CharT2, _Traits2, _Alloc > &, _CharT2) |
class | istreambuf_iterator< char_type, traits_type > |
basic_istream< _CharT2, _Traits2 > & | operator>> (basic_istream< _CharT2, _Traits2 > &, _CharT2 *) |
basic_istream< _CharT2, _Traits2 > & | operator>> (basic_istream< _CharT2, _Traits2 > &, basic_string< _CharT2, _Traits2, _Alloc > &) |
class | ostreambuf_iterator< char_type, traits_type > |
Buffer conversions.
Definition at line 318 of file locale_conv.h.
typedef basic_streambuf<char_type, traits_type> std::basic_streambuf< _Elem , _Tr >::__streambuf_type [inherited] |
typedef _Elem std::basic_streambuf< _Elem , _Tr >::char_type [inherited] |
typedef traits_type::int_type std::basic_streambuf< _Elem , _Tr >::int_type [inherited] |
typedef traits_type::off_type std::basic_streambuf< _Elem , _Tr >::off_type [inherited] |
typedef traits_type::pos_type std::basic_streambuf< _Elem , _Tr >::pos_type [inherited] |
typedef _Tr std::basic_streambuf< _Elem , _Tr >::traits_type [inherited] |
std::wbuffer_convert< _Codecvt, _Elem, _Tr >::wbuffer_convert | ( | streambuf * | __bytebuf = 0 , |
_Codecvt * | __pcvt = new _Codecvt , |
||
state_type | __state = state_type() |
||
) | [inline, explicit] |
Default constructor.
__bytebuf | The underlying byte stream buffer. |
__pcvt | The facet to use for conversions. |
__state | Initial conversion state. |
Takes ownership of __pcvt
and will delete it in the destructor.
Definition at line 334 of file locale_conv.h.
References std::basic_streambuf< _Elem, _Tr >::setg(), and std::basic_streambuf< _Elem, _Tr >::setp().
char_type* std::basic_streambuf< _Elem , _Tr >::eback | ( | ) | const [inline, protected, inherited] |
Access to the get area.
These functions are only available to other protected functions, including derived classes.
char_type* std::basic_streambuf< _Elem , _Tr >::egptr | ( | ) | const [inline, protected, inherited] |
Access to the get area.
These functions are only available to other protected functions, including derived classes.
Definition at line 488 of file streambuf.
Referenced by std::wbuffer_convert< _Codecvt, _Elem, _Tr >::underflow().
char_type* std::basic_streambuf< _Elem , _Tr >::epptr | ( | ) | const [inline, protected, inherited] |
Access to the put area.
These functions are only available to other protected functions, including derived classes.
void std::basic_streambuf< _Elem , _Tr >::gbump | ( | int | __n | ) | [inline, protected, inherited] |
locale std::basic_streambuf< _Elem , _Tr >::getloc | ( | ) | const [inline, inherited] |
char_type* std::basic_streambuf< _Elem , _Tr >::gptr | ( | ) | const [inline, protected, inherited] |
Access to the get area.
These functions are only available to other protected functions, including derived classes.
Definition at line 485 of file streambuf.
Referenced by std::wbuffer_convert< _Codecvt, _Elem, _Tr >::underflow().
virtual void std::basic_streambuf< _Elem , _Tr >::imbue | ( | const locale & | __loc | ) | [inline, protected, virtual, inherited] |
Changes translations.
__loc | A new locale. |
Translations done during I/O which depend on the current locale are changed by this call. The standard adds, Between invocations of this function a class derived from streambuf can safely cache results of calls to locale functions and to members of facets so obtained.
streamsize std::basic_streambuf< _Elem , _Tr >::in_avail | ( | ) | [inline, inherited] |
_Wide_streambuf::int_type std::wbuffer_convert< _Codecvt, _Elem, _Tr >::overflow | ( | typename _Wide_streambuf::int_type | __c | ) | [inline, protected, virtual] |
Consumes data from the buffer; writes to the controlled sequence.
__c | An additional character to consume. |
Informally, this function is called when the output buffer is full (or does not exist, as buffering need not actually be done). If a buffer exists, it is consumed, with some effect on the controlled sequence. (Typically, the buffer is written out to the sequence verbatim.) In either case, the character c is also written out, if __c is not eof()
.
For a formal definition of this function, see a good text such as Langer & Kreft, or [27.5.2.4.5]/3-7.
A functioning output streambuf can be created by overriding only this function (no buffer area will be used).
Reimplemented from std::basic_streambuf< _Elem, _Tr >.
Definition at line 378 of file locale_conv.h.
References std::basic_streambuf< _Elem, _Tr >::sputc().
virtual int_type std::basic_streambuf< _Elem , _Tr >::pbackfail | ( | int_type | __c = traits_type::eof() | ) | [inline, protected, virtual, inherited] |
Tries to back up the input sequence.
__c | The character to be inserted back into the sequence. |
gptr()
, eback()
, and pptr()
are the same as for underflow()
.char_type* std::basic_streambuf< _Elem , _Tr >::pbase | ( | ) | const [inline, protected, inherited] |
Access to the put area.
These functions are only available to other protected functions, including derived classes.
void std::basic_streambuf< _Elem , _Tr >::pbump | ( | int | __n | ) | [inline, protected, inherited] |
char_type* std::basic_streambuf< _Elem , _Tr >::pptr | ( | ) | const [inline, protected, inherited] |
Access to the put area.
These functions are only available to other protected functions, including derived classes.
locale std::basic_streambuf< _Elem , _Tr >::pubimbue | ( | const locale & | __loc | ) | [inline, inherited] |
pos_type std::basic_streambuf< _Elem , _Tr >::pubseekoff | ( | off_type | __off, |
ios_base::seekdir | __way, | ||
ios_base::openmode | __mode = ios_base::in | ios_base::out |
||
) | [inline, inherited] |
pos_type std::basic_streambuf< _Elem , _Tr >::pubseekpos | ( | pos_type | __sp, |
ios_base::openmode | __mode = ios_base::in | ios_base::out |
||
) | [inline, inherited] |
basic_streambuf* std::basic_streambuf< _Elem , _Tr >::pubsetbuf | ( | char_type * | __s, |
streamsize | __n | ||
) | [inline, inherited] |
int std::basic_streambuf< _Elem , _Tr >::pubsync | ( | ) | [inline, inherited] |
int_type std::basic_streambuf< _Elem , _Tr >::sbumpc | ( | ) | [inline, inherited] |
virtual pos_type std::basic_streambuf< _Elem , _Tr >::seekoff | ( | off_type | , |
ios_base::seekdir | , | ||
ios_base::openmode | = ios_base::in | ios_base::out |
||
) | [inline, protected, virtual, inherited] |
virtual pos_type std::basic_streambuf< _Elem , _Tr >::seekpos | ( | pos_type | , |
ios_base::openmode | = ios_base::in | ios_base::out |
||
) | [inline, protected, virtual, inherited] |
virtual basic_streambuf<char_type,_Tr >* std::basic_streambuf< _Elem , _Tr >::setbuf | ( | char_type * | , |
streamsize | |||
) | [inline, protected, virtual, inherited] |
Manipulates the buffer.
Each derived class provides its own appropriate behavior. See the next-to-last paragraph of https://gcc.gnu.org/onlinedocs/libstdc++/manual/streambufs.html#io.streambuf.buffering for more on this function.
this
. void std::basic_streambuf< _Elem , _Tr >::setg | ( | char_type * | __gbeg, |
char_type * | __gnext, | ||
char_type * | __gend | ||
) | [inline, protected, inherited] |
Setting the three read area pointers.
__gbeg | A pointer. |
__gnext | A pointer. |
__gend | A pointer. |
eback()
, __gnext == gptr()
, and __gend == egptr()
Definition at line 509 of file streambuf.
Referenced by std::wbuffer_convert< _Codecvt, _Elem, _Tr >::wbuffer_convert().
void std::basic_streambuf< _Elem , _Tr >::setp | ( | char_type * | __pbeg, |
char_type * | __pend | ||
) | [inline, protected, inherited] |
Setting the three write area pointers.
__pbeg | A pointer. |
__pend | A pointer. |
pbase()
, __pbeg == pptr()
, and __pend == epptr()
Definition at line 555 of file streambuf.
Referenced by std::wbuffer_convert< _Codecvt, _Elem, _Tr >::wbuffer_convert().
int_type std::basic_streambuf< _Elem , _Tr >::sgetc | ( | ) | [inline, inherited] |
streamsize std::basic_streambuf< _Elem , _Tr >::sgetn | ( | char_type * | __s, |
streamsize | __n | ||
) | [inline, inherited] |
virtual streamsize std::basic_streambuf< _Elem , _Tr >::showmanyc | ( | ) | [inline, protected, virtual, inherited] |
Investigating the data available.
If it returns a positive value, then successive calls to underflow()
will not return traits::eof()
until at least that number of characters have been supplied. If showmanyc()
returns -1, then calls to underflow()
or uflow()
will fail. [27.5.2.4.3]/1
eof()
but that they will return immediately. showmanyc
are es-how-many-see, not show-manic. int_type std::basic_streambuf< _Elem , _Tr >::snextc | ( | ) | [inline, inherited] |
int_type std::basic_streambuf< _Elem , _Tr >::sputbackc | ( | char_type | __c | ) | [inline, inherited] |
Pushing characters back into the input stream.
__c | The character to push back. |
Similar to sungetc(), but __c is pushed onto the stream instead of the previous character. If successful, the next character fetched from the input stream will be __c.
int_type std::basic_streambuf< _Elem , _Tr >::sputc | ( | char_type | __c | ) | [inline, inherited] |
Entry point for all single-character output functions.
__c | A character to output. |
One of two public output functions.
If a write position is available for the output sequence (i.e., the buffer is not full), stores __c in that position, increments the position, and returns traits::to_int_type(__c)
. If a write position is not available, returns overflow(__c)
.
Definition at line 424 of file streambuf.
Referenced by std::wbuffer_convert< _Codecvt, _Elem, _Tr >::overflow().
streamsize std::basic_streambuf< _Elem , _Tr >::sputn | ( | const char_type * | __s, |
streamsize | __n | ||
) | [inline, inherited] |
state_type std::wbuffer_convert< _Codecvt, _Elem, _Tr >::state | ( | ) | const [inline] |
The conversion state following the last conversion.
Definition at line 370 of file locale_conv.h.
int_type std::basic_streambuf< _Elem , _Tr >::sungetc | ( | ) | [inline, inherited] |
Moving backwards in the input stream.
If a putback position is available, this function decrements the input pointer and returns that character. Otherwise, calls and returns pbackfail(). The effect is to unget the last character gotten.
int std::wbuffer_convert< _Codecvt, _Elem, _Tr >::sync | ( | void | ) | [inline, protected, virtual] |
Synchronizes the buffer arrays with the controlled sequences.
Each derived class provides its own appropriate behavior, including the definition of failure.
Reimplemented from std::basic_streambuf< _Elem, _Tr >.
Definition at line 374 of file locale_conv.h.
References std::basic_streambuf< _CharT, _Traits >::pubsync().
virtual int_type std::basic_streambuf< _Elem , _Tr >::uflow | ( | ) | [inline, protected, virtual, inherited] |
Fetches more data from the controlled sequence.
Informally, this function does the same thing as underflow()
, and in fact is required to call that function. It also returns the new character, like underflow()
does. However, this function also moves the read position forward by one.
_Wide_streambuf::int_type std::wbuffer_convert< _Codecvt, _Elem, _Tr >::underflow | ( | ) | [inline, protected, virtual] |
Fetches more data from the controlled sequence.
Informally, this function is called when the input buffer is exhausted (or does not exist, as buffering need not actually be done). If a buffer exists, it is refilled. In either case, the next available character is returned, or traits::eof()
to indicate a null pending sequence.
For a formal definition of the pending sequence, see a good text such as Langer & Kreft, or [27.5.2.4.3]/7-14.
A functioning input streambuf can be created by overriding only this function (no buffer area will be used). For an example, see https://gcc.gnu.org/onlinedocs/libstdc++/manual/streambufs.html
Reimplemented from std::basic_streambuf< _Elem, _Tr >.
Definition at line 388 of file locale_conv.h.
References std::basic_streambuf< _Elem, _Tr >::egptr(), and std::basic_streambuf< _Elem, _Tr >::gptr().
virtual streamsize std::basic_streambuf< _Elem , _Tr >::xsgetn | ( | char_type * | __s, |
streamsize | __n | ||
) | [protected, virtual, inherited] |
Multiple character extraction.
__s | A buffer area. |
__n | Maximum number of characters to assign. |
Fills __s[0] through __s[__n-1] with characters from the input sequence, as if by sbumpc()
. Stops when either __n characters have been copied, or when traits::eof()
would be copied.
It is expected that derived classes provide a more efficient implementation by overriding this definition.
virtual streamsize std::basic_streambuf< _Elem , _Tr >::xsputn | ( | const char_type * | __s, |
streamsize | __n | ||
) | [protected, virtual, inherited] |
Multiple character insertion.
__s | A buffer area. |
__n | Maximum number of characters to write. |
Writes __s[0] through __s[__n-1] to the output sequence, as if by sputc()
. Stops when either n characters have been copied, or when sputc()
would return traits::eof()
.
It is expected that derived classes provide a more efficient implementation by overriding this definition.
locale std::basic_streambuf< _Elem , _Tr >::_M_buf_locale [protected, inherited] |
char_type* std::basic_streambuf< _Elem , _Tr >::_M_in_beg [protected, inherited] |
char_type* std::basic_streambuf< _Elem , _Tr >::_M_in_cur [protected, inherited] |
char_type* std::basic_streambuf< _Elem , _Tr >::_M_in_end [protected, inherited] |
char_type* std::basic_streambuf< _Elem , _Tr >::_M_out_beg [protected, inherited] |
char_type* std::basic_streambuf< _Elem , _Tr >::_M_out_cur [protected, inherited] |
char_type* std::basic_streambuf< _Elem , _Tr >::_M_out_end [protected, inherited] |