QtBase  v6.3.1
Classes | Public Member Functions | Protected Member Functions | List of all members
QStringDecoder Class Reference

The QStringDecoder class provides a state-based decoder for text. \reentrant. More...

#include <qstringconverter.h>

Inheritance diagram for QStringDecoder:
Inheritance graph
[legend]
Collaboration diagram for QStringDecoder:
Collaboration graph
[legend]

Classes

struct  EncodedData
 

Public Member Functions

QSTRINGCONVERTER_CONSTEXPR QStringDecoder (Encoding encoding, Flags flags=Flag::Default)
 
QSTRINGCONVERTER_CONSTEXPR QStringDecoder ()
 
 QStringDecoder (const char *name, Flags f=Flag::Default)
 
Q_WEAK_OVERLOAD EncodedData< const QByteArray & > operator() (const QByteArray &ba)
 
EncodedData< QByteArrayViewoperator() (QByteArrayView ba)
 
Q_WEAK_OVERLOAD EncodedData< const QByteArray & > decode (const QByteArray &ba)
 
EncodedData< QByteArrayViewdecode (QByteArrayView ba)
 
qsizetype requiredSpace (qsizetype inputLength) const
 
QCharappendToBuffer (QChar *out, QByteArrayView ba)
 
- Public Member Functions inherited from QStringConverter
bool isValid () const
 
void resetState ()
 
bool hasError () const
 
const char * name () const
 

Protected Member Functions

QSTRINGCONVERTER_CONSTEXPR QStringDecoder (const Interface *i)
 
- Protected Member Functions inherited from QStringConverter
QSTRINGCONVERTER_CONSTEXPR QStringConverter ()
 
QSTRINGCONVERTER_CONSTEXPR QStringConverter (Encoding encoding, Flags f)
 
QSTRINGCONVERTER_CONSTEXPR QStringConverter (const Interface *i)
 
Q_CORE_EXPORT QStringConverter (const char *name, Flags f)
 

Additional Inherited Members

- Public Types inherited from QStringConverter
enum  Encoding {
  Utf8 , Utf16 , Utf16LE , Utf16BE ,
  Utf32 , Utf32LE , Utf32BE , Latin1 ,
  System , LastEncoding = System
}
 
- Public Types inherited from QStringConverterBase
enum class  Flag {
  Default = 0 , Stateless = 0x1 , ConvertInvalidToNull = 0x2 , WriteBom = 0x4 ,
  ConvertInitialBom = 0x8
}
 
- Static Public Member Functions inherited from QStringConverter
static Q_CORE_EXPORT std::optional< EncodingencodingForName (const char *name)
 
static Q_CORE_EXPORT const char * nameForEncoding (Encoding e)
 
static Q_CORE_EXPORT std::optional< EncodingencodingForData (QByteArrayView data, char16_t expectedFirstCharacter=0)
 
static Q_CORE_EXPORT std::optional< EncodingencodingForHtml (QByteArrayView data)
 
- Protected Attributes inherited from QStringConverter
const Interfaceiface
 
State state
 

Detailed Description

The QStringDecoder class provides a state-based decoder for text. \reentrant.

\inmodule QtCore

A text decoder converts text an encoded text format that uses a specific encoding into Qt's internal representation.

Converting encoded data into a QString can be achieved using the following code:

The decoder remembers any state that is required between calls, so converting data received in chunks, for example, when receiving it over a network, is just as easy, by calling the decoder whenever new data is available:

The QStringDecoder object maintains state between chunks and therefore works correctly even if chunks are split in the middle of a multi-byte character sequence.

QStringDecoder objects can't be copied because of their internal state, but can be moved.

See also
QStringConverter, QStringEncoder

Definition at line 251 of file qstringconverter.h.

Constructor & Destructor Documentation

◆ QStringDecoder() [1/4]

constexpr QStringDecoder::QStringDecoder ( const Interface i)
inlineprotected

Definition at line 254 of file qstringconverter.h.

◆ QStringDecoder() [2/4]

constexpr QStringDecoder::QStringDecoder ( Encoding  encoding,
Flags  flags = Flag::Default 
)
inline

Creates an decoder object using encoding and flags.

Definition at line 258 of file qstringconverter.h.

◆ QStringDecoder() [3/4]

constexpr QStringDecoder::QStringDecoder ( )
inline

Default constructs an decoder. The default decoder is not valid, and can't be used for converting text.

Definition at line 261 of file qstringconverter.h.

◆ QStringDecoder() [4/4]

constexpr QStringDecoder::QStringDecoder ( const char *  name,
Flags  flags = Flag::Default 
)
inline

Creates an decoder object using name and flags. If name is not the name of a known encoding an invalid converter will get created.

See also
isValid()

Definition at line 264 of file qstringconverter.h.

Member Function Documentation

◆ appendToBuffer()

QChar * QStringDecoder::appendToBuffer ( QChar out,
QByteArrayView  in 
)
inline

Decodes the sequence of bytes viewed by in and writes the decoded result into the buffer starting at out. Returns a pointer to the end of data written.

out needs to be large enough to be able to hold all the decoded data. Use \l{requiredSpace} to determine the maximum size requirements to decode an encoded data buffer of in.size() bytes.

See also
requiredSpace

Definition at line 295 of file qstringconverter.h.

◆ decode() [1/2]

QString QStringDecoder::decode ( const QByteArray ba)
inline

Definition at line 287 of file qstringconverter.h.

◆ decode() [2/2]

QString QStringDecoder::decode ( QByteArrayView  ba)
inline

Converts ba and returns the data as a QString.

Definition at line 289 of file qstringconverter.h.

◆ operator()() [1/2]

QString QStringDecoder::operator() ( const QByteArray ba)
inline

Definition at line 282 of file qstringconverter.h.

◆ operator()() [2/2]

QString QStringDecoder::operator() ( QByteArrayView  ba)
inline

Definition at line 284 of file qstringconverter.h.

◆ requiredSpace()

qsizetype QStringDecoder::requiredSpace ( qsizetype  inputLength) const
inline

Returns the maximum amount of UTF-16 code units required to be able to process inputLength encoded data.

See also
appendToBuffer

Definition at line 293 of file qstringconverter.h.


The documentation for this class was generated from the following files: