libstdc++
|
Public Types | |
typedef codecvt< char_type, char, __state_type > | __codecvt_type |
typedef __basic_file< char > | __file_type |
typedef basic_filebuf < char_type, traits_type > | __filebuf_type |
typedef traits_type::state_type | __state_type |
typedef basic_streambuf < char_type, traits_type > | __streambuf_type |
typedef _CharT | char_type |
typedef traits_type::int_type | int_type |
typedef traits_type::off_type | off_type |
typedef traits_type::pos_type | pos_type |
typedef traits_type::state_type | state_type |
typedef encoding_char_traits < _CharT > | traits_type |
Public Member Functions | |
enc_filebuf (state_type &__state) | |
__filebuf_type * | close () |
streamsize | in_avail () |
bool | is_open () const throw () |
__filebuf_type * | open (const char *__s, ios_base::openmode __mode) |
__filebuf_type * | open (const std::string &__s, ios_base::openmode __mode) |
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) |
int_type | sungetc () |
Protected Member Functions | |
void | __safe_gbump (streamsize __n) |
void | __safe_pbump (streamsize __n) |
void | _M_allocate_internal_buffer () |
bool | _M_convert_to_external (char_type *, streamsize) |
void | _M_create_pback () |
void | _M_destroy_internal_buffer () throw () |
void | _M_destroy_pback () throw () |
int | _M_get_ext_pos (__state_type &__state) |
pos_type | _M_seek (off_type __off, ios_base::seekdir __way, __state_type __state) |
void | _M_set_buffer (streamsize __off) |
bool | _M_terminate_output () |
void | gbump (int __n) |
virtual void | imbue (const locale &__loc) |
virtual int_type | overflow (int_type __c=encoding_char_traits< _CharT >::eof()) |
virtual int_type | pbackfail (int_type __c=encoding_char_traits< _CharT >::eof()) |
void | pbump (int __n) |
virtual pos_type | seekoff (off_type __off, ios_base::seekdir __way, ios_base::openmode __mode=ios_base::in|ios_base::out) |
virtual pos_type | seekpos (pos_type __pos, ios_base::openmode __mode=ios_base::in|ios_base::out) |
virtual __streambuf_type * | setbuf (char_type *__s, streamsize __n) |
void | setg (char_type *__gbeg, char_type *__gnext, char_type *__gend) |
void | setp (char_type *__pbeg, char_type *__pend) |
virtual streamsize | showmanyc () |
virtual int | sync () |
virtual int_type | uflow () |
virtual int_type | underflow () |
virtual streamsize | xsgetn (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 | |
char_type * | _M_buf |
bool | _M_buf_allocated |
size_t | _M_buf_size |
const __codecvt_type * | _M_codecvt |
char * | _M_ext_buf |
streamsize | _M_ext_buf_size |
char * | _M_ext_end |
const char * | _M_ext_next |
__file_type | _M_file |
__c_lock | _M_lock |
ios_base::openmode | _M_mode |
bool | _M_reading |
__state_type | _M_state_beg |
__state_type | _M_state_cur |
__state_type | _M_state_last |
bool | _M_writing |
char_type | _M_pback |
char_type * | _M_pback_cur_save |
char_type * | _M_pback_end_save |
bool | _M_pback_init |
locale | pubimbue (const locale &__loc) |
locale | getloc () const |
__streambuf_type * | 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 () |
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 |
locale | _M_buf_locale |
class enc_filebuf.
Definition at line 42 of file enc_filebuf.h.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
This function sets the pointers of the internal buffer, both get and put areas. Typically:
__off == egptr() - eback() upon underflow/uflow (read mode); __off == 0 upon overflow (write mode); __off == -1 upon open, setbuf, seekoff/pos (uncommitted mode).
NB: epptr() - pbase() == _M_buf_size - 1, since _M_buf_size reflects the actual allocated memory and the last cell is reserved for the overflow char of a full put area.
|
inherited |
Closes the currently associated file.
this
on success, NULL on failureIf no file is currently open, this function immediately fails.
If a put buffer area exists, overflow(eof)
is called to flush all the characters. The file is then closed.
If any operations fail, this function also fails.
|
inlineprotectedinherited |
Access to the get area.
These functions are only available to other protected functions, including derived classes.
|
inlineprotectedinherited |
Access to the get area.
These functions are only available to other protected functions, including derived classes.
|
inlineprotectedinherited |
Access to the put area.
These functions are only available to other protected functions, including derived classes.
|
inlineprotectedinherited |
|
inlineinherited |
|
inlineprotectedinherited |
Access to the get area.
These functions are only available to other protected functions, including derived classes.
|
protectedvirtualinherited |
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.
Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.
|
inlineinherited |
|
inlineinherited |
|
inherited |
Opens an external file.
s | The name of the file. |
mode | The open mode flags. |
this
on success, NULL on failureIf a file is already open, this function immediately fails. Otherwise it tries to open the file named s using the flags given in mode.
Table 92, adapted here, gives the relation between openmode combinations and the equivalent fopen() flags. (NB: lines app, in|out|app, in|app, binary|app, binary|in|out|app, and binary|in|app per DR 596) +------------------------------------------------------—+ | ios_base Flag combination stdio equivalent | |binary in out trunc app | +------------------------------------------------------—+ | + w | | + + a | | + a | | + + w | | + r | | + + r+ | | + + + w+ | | + + + a+ | | + + a+ | +------------------------------------------------------—+ | + + wb | | + + + ab | | + + ab | | + + + wb | | + + rb | | + + + r+b | | + + + + w+b | | + + + + a+b | | + + + a+b | +------------------------------------------------------—+
|
inlineinherited |
|
protectedvirtualinherited |
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< _CharT, encoding_char_traits< _CharT > >.
|
protectedvirtualinherited |
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()
.Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.
|
inlineprotectedinherited |
Access to the put area.
These functions are only available to other protected functions, including derived classes.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
Access to the put area.
These functions are only available to other protected functions, including derived classes.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
protectedvirtualinherited |
Alters the stream positions.
Each derived class provides its own appropriate behavior.
pos_type
that represents an invalid stream position. Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.
|
protectedvirtualinherited |
Alters the stream positions.
Each derived class provides its own appropriate behavior.
pos_type
that represents an invalid stream position. Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.
|
protectedvirtualinherited |
Manipulates the buffer.
s | Pointer to a buffer area. |
n | Size of s. |
this
If no file has been opened, and both s and n are zero, then the stream becomes unbuffered. Otherwise, s
is used as a buffer; see http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt11ch25s02.html for more.
Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
|
inlineinherited |
|
protectedvirtualinherited |
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. Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.
|
inlineinherited |
|
inlineinherited |
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.
|
inlineinherited |
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)
.
|
inlineinherited |
|
inlineinherited |
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.
|
protectedvirtualinherited |
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< _CharT, encoding_char_traits< _CharT > >.
|
inlineprotectedvirtualinherited |
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.
|
protectedvirtualinherited |
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 http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt11ch25.html
Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.
|
protectedvirtualinherited |
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.
Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.
|
protectedvirtualinherited |
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.
Reimplemented from std::basic_streambuf< _CharT, encoding_char_traits< _CharT > >.
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |