Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
UTF32< CharType > Struct Template Reference

UTF-32 encoding. More...

#include <encodings.h>

Public Types

enum  { supportUnicode = 1 }
 
typedef CharType Ch
 

Public Member Functions

 RAPIDJSON_STATIC_ASSERT (sizeof(Ch) >=4)
 

Static Public Member Functions

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

Detailed Description

template<typename CharType = unsigned>
struct UTF32< CharType >

http://en.wikipedia.org/wiki/UTF-32

Template Parameters
CharTypeType for storing 32-bit UTF-32 data. Default is unsigned. C++11 may use char32_t instead.
Note
implements Encoding concept
For in-memory access, no need to concern endianness. The code units and code points are represented by CPU's endianness. For streaming, use UTF32LE and UTF32BE, which handle endianness.

Definition at line 418 of file encodings.h.

Member Typedef Documentation

◆ Ch

template<typename CharType = unsigned>
CharType UTF32< CharType >::Ch

Definition at line 419 of file encodings.h.

Member Enumeration Documentation

◆ anonymous enum

template<typename CharType = unsigned>
anonymous enum
Enumerator
supportUnicode 

Definition at line 422 of file encodings.h.

422{ supportUnicode = 1 };
@ supportUnicode
Definition encodings.h:422

Member Function Documentation

◆ Decode()

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

Definition at line 439 of file encodings.h.

439 {
440 RAPIDJSON_STATIC_ASSERT(sizeof(typename InputStream::Ch) >= 4);
441 Ch c = is.Take();
442 *codepoint = c;
443 return c <= 0x10FFFF;
444 }
#define RAPIDJSON_STATIC_ASSERT(x)
(Internal) macro to check for conditions at compile-time
Definition rapidjson.h:445
CharType Ch
Definition encodings.h:419
Here is the caller graph for this function:

◆ Encode()

template<typename CharType = unsigned>
template<typename OutputStream >
static void UTF32< CharType >::Encode ( OutputStream & os,
unsigned codepoint )
inlinestatic

Definition at line 425 of file encodings.h.

425 {
426 RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 4);
427 RAPIDJSON_ASSERT(codepoint <= 0x10FFFF);
428 os.Put(codepoint);
429 }
os_t os
#define RAPIDJSON_ASSERT(x)
Assertion.
Definition rapidjson.h:406
Here is the caller graph for this function:

◆ EncodeUnsafe()

template<typename CharType = unsigned>
template<typename OutputStream >
static void UTF32< CharType >::EncodeUnsafe ( OutputStream & os,
unsigned codepoint )
inlinestatic

Definition at line 432 of file encodings.h.

432 {
433 RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 4);
434 RAPIDJSON_ASSERT(codepoint <= 0x10FFFF);
435 PutUnsafe(os, codepoint);
436 }
void PutUnsafe(Stream &stream, typename Stream::Ch c)
Write character to a stream, presuming buffer is reserved.
Definition stream.h:91
Here is the call graph for this function:

◆ RAPIDJSON_STATIC_ASSERT()

template<typename CharType = unsigned>
UTF32< CharType >::RAPIDJSON_STATIC_ASSERT ( sizeof(Ch) >= 4)

◆ Validate()

template<typename CharType = unsigned>
template<typename InputStream , typename OutputStream >
static bool UTF32< CharType >::Validate ( InputStream & is,
OutputStream & os )
inlinestatic

Definition at line 447 of file encodings.h.

447 {
448 RAPIDJSON_STATIC_ASSERT(sizeof(typename InputStream::Ch) >= 4);
449 Ch c;
450 os.Put(c = is.Take());
451 return c <= 0x10FFFF;
452 }
Here is the caller graph for this function:

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