#include <Pt/TextStream.h>
Converts character sequences using a codec. More...
Inherits BasicIOStream< CharT >.
Public Types | |
typedef CharT | char_type |
Internal character type. | |
typedef TextCodec< char_type, extern_type > | CodecType |
Codec type. | |
typedef ByteT | extern_type |
External character type. | |
typedef traits_type::int_type | int_type |
Integer type. | |
typedef CharT | intern_type |
Internal character type. | |
typedef traits_type::off_type | off_type |
Stream offset type. | |
typedef traits_type::pos_type | pos_type |
Stream position type. | |
typedef std::basic_iostream < extern_type > | StreamType |
External stream type. | |
typedef std::char_traits< CharT > | traits_type |
Internal character traits. | |
Public Member Functions | |
BasicTextStream (StreamType &ios, CodecType *codec) | |
Construct by stream and codec. More... | |
BasicTextStream (CodecType *codec) | |
Construct with codec. More... | |
~BasicTextStream () | |
Destructor. | |
void | attach (StreamType &ios) |
Attach to external target. | |
BasicStreamBuffer< CharT > * | buffer () |
Returns the buffer. | |
CodecType * | codec () |
Returns the used code or a nullptr. | |
void | detach () |
Detach from external target. | |
void | discard () |
Discards the buffer. | |
std::streamsize | peeksome (CharT *buffer, std::streamsize n) |
Peeks bytes in the stream buffer. More... | |
void | reset () |
Resets the buffer and target. More... | |
void | reset (StreamType &ios) |
Resets the buffer and target. More... | |
void | setBuffer (BasicStreamBuffer< CharT > *sb) |
Sets the buffer. | |
void | setCodec (CodecType *codec) |
Sets the text codec. More... | |
BasicTextBuffer< intern_type, extern_type > & | textBuffer () |
Returns the stream buffer. | |
std::streamsize | writesome (CharT *buffer, std::streamsize n) |
Write as much data as fits in buffer. | |
This stream encodes and decodes an external character sequence using a codec. Writing to the stream will convert the written characters to the external character types in the external encoding. Reading from the stream will convert from the the encoding of external characters.
BasicTextStream | ( | StreamType & | ios, |
CodecType * | codec | ||
) |
The stream ios is used to read and write a character sequence and convert it using a codec. The codec object which is passed as a pointer will be managed by this class and deleted if its reference count reaches 0.
|
explicit |
The codec object which is passed as pointer will be managed by this class and deleted if its reference count reaches 0.
void setCodec | ( | CodecType * | codec | ) |
The codec object which is passed as pointer will be managed by this class and deleted if its reference count reaches 0.
void reset | ( | ) |
The target is detached and the buffer content is discarded. The codec is kept, if one was set previously.
void reset | ( | StreamType & | ios | ) |
Attaches to the new target and discards the buffer. The codec is kept, if one was set previously.
|
inherited |
The number of bytes that can be peeked depends on the current stream buffer get area and maybe less than requested, similar to istream::readsome().