JX Application Framework
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Static Public Attributes | Friends | List of all members
JUtf8Character Class Reference

#include <JUtf8Character.h>

Public Member Functions

 JUtf8Character ()
 
 JUtf8Character (const JUtf8Character &source)
 
 JUtf8Character (const JUtf8Byte asciiCharacter)
 
 JUtf8Character (const JUtf8Byte *utf8Character)
 
JUtf8Characteroperator= (const JUtf8Character &source)
 
JUtf8Characteroperator= (const JUtf8Byte asciiCharacter)
 
JUtf8Characteroperator= (const JUtf8Byte *utf8Character)
 
bool IsBlank () const
 
bool IsAscii () const
 
JSize GetByteCount () const
 
const JUtf8ByteGetBytes () const
 
JUtf8ByteAllocateBytes () const
 
JUInt32 GetUtf32 () const
 
void Set (const JUtf8Character &source)
 
void Set (const JUtf8Byte asciiCharacter)
 
void Set (const JUtf8Byte *utf8Character)
 
bool IsPrint () const
 
bool IsAlnum () const
 
bool IsDigit () const
 
bool IsAlpha () const
 
bool IsLower () const
 
bool IsUpper () const
 
bool IsSpace () const
 
bool IsControl () const
 
JUtf8Character ToLower () const
 
JUtf8Character ToUpper () const
 
void PrintHex (std::ostream &output) const
 

Static Public Member Functions

static bool IsValid (const JUtf8Byte *utf8Character)
 
static bool IsCompleteCharacter (const JUtf8Byte *utf8Character, const JSize byteCount, JSize *characterByteCount)
 
static bool GetCharacterByteCount (const JUtf8Byte *utf8Character, JSize *byteCount)
 
static bool GetPrevCharacterByteCount (const JUtf8Byte *lastByte, JSize *byteCount)
 
static JUtf8Character Utf32ToUtf8 (const JUInt32 c)
 
static JUInt32 Utf8ToUtf32 (const JUtf8Byte *c, JSize *returnByteCount=nullptr)
 
static bool IgnoreBadUtf8 ()
 
static void SetIgnoreBadUtf8 (const bool ignore)
 

Static Public Attributes

static const JSize kMaxByteCount = 4
 
static const JUInt32 kUtf32SubstitutionCharacter = 0x0000FFFD
 
static const JUtf8Character kUtf8SubstitutionCharacter
 

Friends

std::istream & operator>> (std::istream &, JUtf8Character &)
 
std::ostream & operator<< (std::ostream &, const JUtf8Character &)
 

Constructor & Destructor Documentation

◆ JUtf8Character() [1/4]

JUtf8Character::JUtf8Character ( )

◆ JUtf8Character() [2/4]

JUtf8Character::JUtf8Character ( const JUtf8Character source)

◆ JUtf8Character() [3/4]

JUtf8Character::JUtf8Character ( const JUtf8Byte  asciiCharacter)
explicit

◆ JUtf8Character() [4/4]

JUtf8Character::JUtf8Character ( const JUtf8Byte utf8Character)
explicit

Member Function Documentation

◆ AllocateBytes()

JUtf8Byte * JUtf8Character::AllocateBytes ( ) const

This allocates a new pointer, which the caller is responsible for deleting via "delete []".

◆ GetByteCount()

JSize JUtf8Character::GetByteCount ( ) const
inline

◆ GetBytes()

const JUtf8Byte * JUtf8Character::GetBytes ( ) const
inline

◆ GetCharacterByteCount()

bool JUtf8Character::GetCharacterByteCount ( const JUtf8Byte utf8Character,
JSize byteCount 
)
static

◆ GetPrevCharacterByteCount()

bool JUtf8Character::GetPrevCharacterByteCount ( const JUtf8Byte lastByte,
JSize byteCount 
)
static

Returns the length of the character ending with the specified byte.

◆ GetUtf32()

JUInt32 JUtf8Character::GetUtf32 ( ) const
inline

◆ IgnoreBadUtf8()

bool JUtf8Character::IgnoreBadUtf8 ( )
inlinestatic

◆ IsAlnum()

bool JUtf8Character::IsAlnum ( ) const

◆ IsAlpha()

bool JUtf8Character::IsAlpha ( ) const

◆ IsAscii()

bool JUtf8Character::IsAscii ( ) const
inline

◆ IsBlank()

bool JUtf8Character::IsBlank ( ) const
inline

◆ IsCompleteCharacter()

bool JUtf8Character::IsCompleteCharacter ( const JUtf8Byte utf8Character,
const JSize  byteCount,
JSize characterByteCount 
)
static

◆ IsControl()

bool JUtf8Character::IsControl ( ) const

◆ IsDigit()

bool JUtf8Character::IsDigit ( ) const

◆ IsLower()

bool JUtf8Character::IsLower ( ) const

◆ IsPrint()

bool JUtf8Character::IsPrint ( ) const

◆ IsSpace()

bool JUtf8Character::IsSpace ( ) const

◆ IsUpper()

bool JUtf8Character::IsUpper ( ) const

◆ IsValid()

bool JUtf8Character::IsValid ( const JUtf8Byte utf8Character)
inlinestatic

◆ operator=() [1/3]

JUtf8Character & JUtf8Character::operator= ( const JUtf8Byte utf8Character)
inline

◆ operator=() [2/3]

JUtf8Character & JUtf8Character::operator= ( const JUtf8Byte  asciiCharacter)
inline

◆ operator=() [3/3]

JUtf8Character & JUtf8Character::operator= ( const JUtf8Character source)
inline

We do not copy itsBlockSize because we assume the client has set them appropriately.

◆ PrintHex()

void JUtf8Character::PrintHex ( std::ostream &  output) const

Display the hex bytes.

◆ Set() [1/3]

void JUtf8Character::Set ( const JUtf8Byte utf8Character)

◆ Set() [2/3]

void JUtf8Character::Set ( const JUtf8Byte  asciiCharacter)

◆ Set() [3/3]

void JUtf8Character::Set ( const JUtf8Character source)

◆ SetIgnoreBadUtf8()

void JUtf8Character::SetIgnoreBadUtf8 ( const bool  ignore)
inlinestatic

◆ ToLower()

JUtf8Character JUtf8Character::ToLower ( ) const

Only do this if you truly have a single character. Otherwise, use JString versions, because case conversion can modify more than one character in some scripts.

◆ ToUpper()

JUtf8Character JUtf8Character::ToUpper ( ) const

◆ Utf32ToUtf8()

JUtf8Character JUtf8Character::Utf32ToUtf8 ( const JUInt32  origChar)
static

Adapted from LLVM source code.

◆ Utf8ToUtf32()

JUInt32 JUtf8Character::Utf8ToUtf32 ( const JUtf8Byte bytes,
JSize returnByteCount = nullptr 
)
static

Adapted from LLVM source code.

Friends And Related Symbol Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  output,
const JUtf8Character c 
)
friend

◆ operator>>

std::istream & operator>> ( std::istream &  input,
JUtf8Character c 
)
friend

Member Data Documentation

◆ kMaxByteCount

const JSize JUtf8Character::kMaxByteCount = 4
static

◆ kUtf32SubstitutionCharacter

const JUInt32 JUtf8Character::kUtf32SubstitutionCharacter = 0x0000FFFD
static

◆ kUtf8SubstitutionCharacter

const JUtf8Character JUtf8Character::kUtf8SubstitutionCharacter
static

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