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

UTF-32 little endian enocoding. More...

#include <encodings.h>

Inheritance diagram for UTF32LE< CharType >:
UTF32< CharType >

Static Public Member Functions

template<typename InputByteStream >
static CharType TakeBOM (InputByteStream &is)
 
template<typename InputByteStream >
static CharType Take (InputByteStream &is)
 
template<typename OutputByteStream >
static void PutBOM (OutputByteStream &os)
 
template<typename OutputByteStream >
static void Put (OutputByteStream &os, CharType c)
 
- Static Public Member Functions inherited from UTF32< CharType >
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)
 

Additional Inherited Members

- Public Types inherited from UTF32< CharType >
enum  { supportUnicode = 1 }
 
typedef CharType Ch
 
- Public Member Functions inherited from UTF32< CharType >
 RAPIDJSON_STATIC_ASSERT (sizeof(Ch) >=4)
 

Detailed Description

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

UTF-32 little endian enocoding.

Definition at line 457 of file encodings.h.

Member Function Documentation

template<typename CharType = unsigned>
template<typename OutputByteStream >
static void UTF32LE< CharType >::Put ( OutputByteStream &  os,
CharType  c 
)
inlinestatic

Definition at line 485 of file encodings.h.

485  {
486  RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1);
487  os.Put(static_cast<typename OutputByteStream::Ch>(c & 0xFFu));
488  os.Put(static_cast<typename OutputByteStream::Ch>((c >> 8) & 0xFFu));
489  os.Put(static_cast<typename OutputByteStream::Ch>((c >> 16) & 0xFFu));
490  os.Put(static_cast<typename OutputByteStream::Ch>((c >> 24) & 0xFFu));
491  }
RAPIDJSON_STATIC_ASSERT(sizeof(Ch) >=4)
template<typename CharType = unsigned>
template<typename OutputByteStream >
static void UTF32LE< CharType >::PutBOM ( OutputByteStream &  os)
inlinestatic

Definition at line 476 of file encodings.h.

476  {
477  RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1);
478  os.Put(static_cast<typename OutputByteStream::Ch>(0xFFu));
479  os.Put(static_cast<typename OutputByteStream::Ch>(0xFEu));
480  os.Put(static_cast<typename OutputByteStream::Ch>(0x00u));
481  os.Put(static_cast<typename OutputByteStream::Ch>(0x00u));
482  }
RAPIDJSON_STATIC_ASSERT(sizeof(Ch) >=4)
template<typename CharType = unsigned>
template<typename InputByteStream >
static CharType UTF32LE< CharType >::Take ( InputByteStream &  is)
inlinestatic

Definition at line 466 of file encodings.h.

466  {
467  RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
468  unsigned c = static_cast<uint8_t>(is.Take());
469  c |= static_cast<unsigned>(static_cast<uint8_t>(is.Take())) << 8;
470  c |= static_cast<unsigned>(static_cast<uint8_t>(is.Take())) << 16;
471  c |= static_cast<unsigned>(static_cast<uint8_t>(is.Take())) << 24;
472  return static_cast<CharType>(c);
473  }
unsigned char uint8_t
Definition: stdint.h:124
RAPIDJSON_STATIC_ASSERT(sizeof(Ch) >=4)
template<typename CharType = unsigned>
template<typename InputByteStream >
static CharType UTF32LE< CharType >::TakeBOM ( InputByteStream &  is)
inlinestatic

Definition at line 459 of file encodings.h.

459  {
460  RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
461  CharType c = Take(is);
462  return static_cast<uint32_t>(c) == 0x0000FEFFu ? Take(is) : c;
463  }
static CharType Take(InputByteStream &is)
Definition: encodings.h:466
unsigned int uint32_t
Definition: stdint.h:126
RAPIDJSON_STATIC_ASSERT(sizeof(Ch) >=4)

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