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

UTF-32 big endian encoding. More...

#include <encodings.h>

Inheritance diagram for UTF32BE< CharType >:
Collaboration diagram for UTF32BE< 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< unsigned >
static void Encode (OutputStream &os, unsigned codepoint)
 
static void EncodeUnsafe (OutputStream &os, unsigned codepoint)
 
static bool Decode (InputStream &is, unsigned *codepoint)
 
static bool Validate (InputStream &is, OutputStream &os)
 

Additional Inherited Members

- Public Types inherited from UTF32< unsigned >
enum  
 
typedef unsigned Ch
 
- Public Member Functions inherited from UTF32< unsigned >
 RAPIDJSON_STATIC_ASSERT (sizeof(Ch) >=4)
 

Detailed Description

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

Definition at line 496 of file encodings.h.

Member Function Documentation

◆ Put()

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

Definition at line 524 of file encodings.h.

524 {
525 RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1);
526 os.Put(static_cast<typename OutputByteStream::Ch>((c >> 24) & 0xFFu));
527 os.Put(static_cast<typename OutputByteStream::Ch>((c >> 16) & 0xFFu));
528 os.Put(static_cast<typename OutputByteStream::Ch>((c >> 8) & 0xFFu));
529 os.Put(static_cast<typename OutputByteStream::Ch>(c & 0xFFu));
530 }
os_t os
#define RAPIDJSON_STATIC_ASSERT(x)
(Internal) macro to check for conditions at compile-time
Definition rapidjson.h:445

◆ PutBOM()

template<typename CharType = unsigned>
template<typename OutputByteStream >
static void UTF32BE< CharType >::PutBOM ( OutputByteStream & os)
inlinestatic

Definition at line 515 of file encodings.h.

515 {
516 RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1);
517 os.Put(static_cast<typename OutputByteStream::Ch>(0x00u));
518 os.Put(static_cast<typename OutputByteStream::Ch>(0x00u));
519 os.Put(static_cast<typename OutputByteStream::Ch>(0xFEu));
520 os.Put(static_cast<typename OutputByteStream::Ch>(0xFFu));
521 }

◆ Take()

template<typename CharType = unsigned>
template<typename InputByteStream >
static CharType UTF32BE< CharType >::Take ( InputByteStream & is)
inlinestatic

Definition at line 505 of file encodings.h.

505 {
506 RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
507 unsigned c = static_cast<unsigned>(static_cast<uint8_t>(is.Take())) << 24;
508 c |= static_cast<unsigned>(static_cast<uint8_t>(is.Take())) << 16;
509 c |= static_cast<unsigned>(static_cast<uint8_t>(is.Take())) << 8;
510 c |= static_cast<unsigned>(static_cast<uint8_t>(is.Take()));
511 return static_cast<CharType>(c);
512 }
unsigned char uint8_t
Definition stdint.h:124
Here is the caller graph for this function:

◆ TakeBOM()

template<typename CharType = unsigned>
template<typename InputByteStream >
static CharType UTF32BE< CharType >::TakeBOM ( InputByteStream & is)
inlinestatic

Definition at line 498 of file encodings.h.

498 {
499 RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
500 CharType c = Take(is);
501 return static_cast<uint32_t>(c) == 0x0000FEFFu ? Take(is) : c;
502 }
unsigned int uint32_t
Definition stdint.h:126
static CharType Take(InputByteStream &is)
Definition encodings.h:505
Here is the call graph for this function:

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