Public Types | Static Public Member Functions | List of all members
AutoUTF< CharType > Struct Template Reference

Dynamically select encoding according to stream's runtime-specified UTF encoding type. More...

#include <encodings.h>

Public Types

enum  { supportUnicode = 1 }
 
typedef CharType Ch
 

Static Public Member Functions

template<typename OutputStream >
static RAPIDJSON_FORCEINLINE void Encode (OutputStream &os, unsigned codepoint)
 
template<typename OutputStream >
static RAPIDJSON_FORCEINLINE void EncodeUnsafe (OutputStream &os, unsigned codepoint)
 
template<typename InputStream >
static RAPIDJSON_FORCEINLINE bool Decode (InputStream &is, unsigned *codepoint)
 
template<typename InputStream , typename OutputStream >
static RAPIDJSON_FORCEINLINE bool Validate (InputStream &is, OutputStream &os)
 

Detailed Description

template<typename CharType>
struct AutoUTF< CharType >

Dynamically select encoding according to stream's runtime-specified UTF encoding type.

Note
This class can be used with AutoUTFInputtStream and AutoUTFOutputStream, which provides GetType().

Definition at line 615 of file encodings.h.

Member Typedef Documentation

template<typename CharType >
typedef CharType AutoUTF< CharType >::Ch

Definition at line 616 of file encodings.h.

Member Enumeration Documentation

template<typename CharType >
anonymous enum
Enumerator
supportUnicode 

Definition at line 618 of file encodings.h.

Member Function Documentation

template<typename CharType >
template<typename InputStream >
static RAPIDJSON_FORCEINLINE bool AutoUTF< CharType >::Decode ( InputStream &  is,
unsigned *  codepoint 
)
inlinestatic

Definition at line 637 of file encodings.h.

637  {
638  typedef bool (*DecodeFunc)(InputStream&, unsigned*);
639  static const DecodeFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Decode) };
640  return (*f[is.GetType()])(is, codepoint);
641  }
#define RAPIDJSON_ENCODINGS_FUNC(x)
Definition: encodings.h:620
static RAPIDJSON_FORCEINLINE bool Decode(InputStream &is, unsigned *codepoint)
Definition: encodings.h:637
int bool
Definition: qglobal.h:345
template<typename CharType >
template<typename OutputStream >
static RAPIDJSON_FORCEINLINE void AutoUTF< CharType >::Encode ( OutputStream &  os,
unsigned  codepoint 
)
inlinestatic

Definition at line 623 of file encodings.h.

623  {
624  typedef void (*EncodeFunc)(OutputStream&, unsigned);
625  static const EncodeFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Encode) };
626  (*f[os.GetType()])(os, codepoint);
627  }
#define RAPIDJSON_ENCODINGS_FUNC(x)
Definition: encodings.h:620
static RAPIDJSON_FORCEINLINE void Encode(OutputStream &os, unsigned codepoint)
Definition: encodings.h:623
template<typename CharType >
template<typename OutputStream >
static RAPIDJSON_FORCEINLINE void AutoUTF< CharType >::EncodeUnsafe ( OutputStream &  os,
unsigned  codepoint 
)
inlinestatic

Definition at line 630 of file encodings.h.

630  {
631  typedef void (*EncodeFunc)(OutputStream&, unsigned);
632  static const EncodeFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(EncodeUnsafe) };
633  (*f[os.GetType()])(os, codepoint);
634  }
static RAPIDJSON_FORCEINLINE void EncodeUnsafe(OutputStream &os, unsigned codepoint)
Definition: encodings.h:630
#define RAPIDJSON_ENCODINGS_FUNC(x)
Definition: encodings.h:620
template<typename CharType >
template<typename InputStream , typename OutputStream >
static RAPIDJSON_FORCEINLINE bool AutoUTF< CharType >::Validate ( InputStream &  is,
OutputStream &  os 
)
inlinestatic

Definition at line 644 of file encodings.h.

644  {
645  typedef bool (*ValidateFunc)(InputStream&, OutputStream&);
646  static const ValidateFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Validate) };
647  return (*f[is.GetType()])(is, os);
648  }
#define RAPIDJSON_ENCODINGS_FUNC(x)
Definition: encodings.h:620
int bool
Definition: qglobal.h:345
static RAPIDJSON_FORCEINLINE bool Validate(InputStream &is, OutputStream &os)
Definition: encodings.h:644

The documentation for this struct was generated from the following file: