Open CASCADE Technology  7.3.0
Public Member Functions
NCollection_UtfString< Type > Class Template Reference

This template class represent constant UTF-* string. String stored in memory continuously, always NULL-terminated and can be used as standard C-string using ToCString() method. More...

#include <NCollection_UtfString.hxx>

Public Member Functions

NCollection_UtfIterator< Type > Iterator () const
 
Standard_Integer Size () const
 
Standard_Integer Length () const
 
Standard_Utf32Char GetChar (const Standard_Integer theCharIndex) const
 Retrieve Unicode symbol at specified position. Warning! This is a slow access. Iterator should be used for consecutive parsing. More...
 
const Type * GetCharBuffer (const Standard_Integer theCharIndex) const
 Retrieve string buffer at specified position. Warning! This is a slow access. Iterator should be used for consecutive parsing. More...
 
Standard_Utf32Char operator[] (const Standard_Integer theCharIndex) const
 Retrieve Unicode symbol at specified position. Warning! This is a slow access. Iterator should be used for consecutive parsing. More...
 
 NCollection_UtfString ()
 Initialize empty string. More...
 
 NCollection_UtfString (const NCollection_UtfString &theCopy)
 Copy constructor. More...
 
 NCollection_UtfString (NCollection_UtfString &&theOther)
 Move constructor. More...
 
 NCollection_UtfString (const char *theCopyUtf8, const Standard_Integer theLength=-1)
 Copy constructor from UTF-8 string. More...
 
 NCollection_UtfString (const Standard_Utf16Char *theCopyUtf16, const Standard_Integer theLength=-1)
 Copy constructor from UTF-16 string. More...
 
 NCollection_UtfString (const Standard_Utf32Char *theCopyUtf32, const Standard_Integer theLength=-1)
 Copy constructor from UTF-32 string. More...
 
 NCollection_UtfString (const Standard_WideChar *theCopyUtfWide, const Standard_Integer theLength=-1)
 Copy constructor from wide UTF string. More...
 
template<typename TypeFrom >
void FromUnicode (const TypeFrom *theStringUtf, const Standard_Integer theLength=-1)
 Copy from Unicode string in UTF-8, UTF-16, or UTF-32 encoding, determined by size of TypeFrom character type. More...
 
void FromLocale (const char *theString, const Standard_Integer theLength=-1)
 Copy from multibyte string in current system locale. More...
 
 ~NCollection_UtfString ()
 Destructor. More...
 
bool IsEqual (const NCollection_UtfString &theCompare) const
 Compares this string with another one. More...
 
NCollection_UtfString SubString (const Standard_Integer theStart, const Standard_Integer theEnd) const
 Returns the substring. More...
 
const Type * ToCString () const
 Returns NULL-terminated Unicode string. Should not be modifed or deleted! More...
 
const NCollection_UtfString< Standard_Utf8CharToUtf8 () const
 
const NCollection_UtfString< Standard_Utf16CharToUtf16 () const
 
const NCollection_UtfString< Standard_Utf32CharToUtf32 () const
 
const NCollection_UtfString< Standard_WideCharToUtfWide () const
 
bool ToLocale (char *theBuffer, const Standard_Integer theSizeBytes) const
 Converts the string into string in the current system locale. More...
 
bool IsEmpty () const
 
void Clear ()
 Zero string. More...
 
compare operators
bool operator== (const NCollection_UtfString &theCompare) const
 
bool operator!= (const NCollection_UtfString &theCompare) const
 

assign operators

const NCollection_UtfStringAssign (const NCollection_UtfString &theOther)
 Copy from another string. More...
 
void Swap (NCollection_UtfString &theOther)
 Exchange the data of two strings (without reallocating memory). More...
 
const NCollection_UtfStringoperator= (const NCollection_UtfString &theOther)
 Copy from another string. More...
 
NCollection_UtfStringoperator= (NCollection_UtfString &&theOther)
 Move assignment operator. More...
 
const NCollection_UtfStringoperator= (const char *theStringUtf8)
 Copy from UTF-8 NULL-terminated string. More...
 
const NCollection_UtfStringoperator= (const Standard_WideChar *theStringUtfWide)
 Copy from wchar_t UTF NULL-terminated string. More...
 
NCollection_UtfStringoperator+= (const NCollection_UtfString &theAppend)
 Join strings. More...
 
NCollection_UtfString operator+ (const NCollection_UtfString &theLeft, const NCollection_UtfString &theRight)
 Join two strings. More...
 

Detailed Description

template<typename Type>
class NCollection_UtfString< Type >

This template class represent constant UTF-* string. String stored in memory continuously, always NULL-terminated and can be used as standard C-string using ToCString() method.

Notice that changing the string is not allowed and any modifications should produce new string.

In comments to this class, terms "Unicode symbol" is used as synonym of "Unicode code point".

Constructor & Destructor Documentation

◆ NCollection_UtfString() [1/7]

template<typename Type >
NCollection_UtfString< Type >::NCollection_UtfString ( )

Initialize empty string.

◆ NCollection_UtfString() [2/7]

template<typename Type >
NCollection_UtfString< Type >::NCollection_UtfString ( const NCollection_UtfString< Type > &  theCopy)

Copy constructor.

Parameters
theCopystring to copy.

◆ NCollection_UtfString() [3/7]

template<typename Type >
NCollection_UtfString< Type >::NCollection_UtfString ( NCollection_UtfString< Type > &&  theOther)

Move constructor.

◆ NCollection_UtfString() [4/7]

template<typename Type >
NCollection_UtfString< Type >::NCollection_UtfString ( const char *  theCopyUtf8,
const Standard_Integer  theLength = -1 
)

Copy constructor from UTF-8 string.

Parameters
theCopyUtf8UTF-8 string to copy
theLengthoptional length limit in Unicode symbols (NOT bytes!) The string is copied till NULL symbol or, if theLength >0, till either NULL or theLength-th symbol (which comes first).

◆ NCollection_UtfString() [5/7]

template<typename Type >
NCollection_UtfString< Type >::NCollection_UtfString ( const Standard_Utf16Char theCopyUtf16,
const Standard_Integer  theLength = -1 
)

Copy constructor from UTF-16 string.

Parameters
theCopyUtf16UTF-16 string to copy
theLengththe length limit in Unicode symbols (NOT bytes!) The string is copied till NULL symbol or, if theLength >0, till either NULL or theLength-th symbol (which comes first).

◆ NCollection_UtfString() [6/7]

template<typename Type >
NCollection_UtfString< Type >::NCollection_UtfString ( const Standard_Utf32Char theCopyUtf32,
const Standard_Integer  theLength = -1 
)

Copy constructor from UTF-32 string.

Parameters
theCopyUtf32UTF-32 string to copy
theLengththe length limit in Unicode symbols (NOT bytes!) The string is copied till NULL symbol or, if theLength >0, till either NULL or theLength-th symbol (which comes first).

◆ NCollection_UtfString() [7/7]

template<typename Type >
NCollection_UtfString< Type >::NCollection_UtfString ( const Standard_WideChar theCopyUtfWide,
const Standard_Integer  theLength = -1 
)

Copy constructor from wide UTF string.

Parameters
theCopyUtfWidewide UTF string to copy
theLengththe length limit in Unicode symbols (NOT bytes!) The string is copied till NULL symbol or, if theLength >0, till either NULL or theLength-th symbol (which comes first).

This constructor is undefined if Standard_WideChar is the same type as Standard_Utf16Char.

◆ ~NCollection_UtfString()

template<typename Type >
NCollection_UtfString< Type >::~NCollection_UtfString ( )

Destructor.

Member Function Documentation

◆ Assign()

template<typename Type >
const NCollection_UtfString& NCollection_UtfString< Type >::Assign ( const NCollection_UtfString< Type > &  theOther)

Copy from another string.

◆ Clear()

template<typename Type >
void NCollection_UtfString< Type >::Clear ( )

Zero string.

◆ FromLocale()

template<typename Type >
void NCollection_UtfString< Type >::FromLocale ( const char *  theString,
const Standard_Integer  theLength = -1 
)

Copy from multibyte string in current system locale.

Parameters
theStringmultibyte string
theLengththe length limit in Unicode symbols The string is copied till NULL symbol or, if theLength >0, till either NULL or theLength-th symbol (which comes first).

◆ FromUnicode()

template<typename Type >
template<typename TypeFrom >
void NCollection_UtfString< Type >::FromUnicode ( const TypeFrom *  theStringUtf,
const Standard_Integer  theLength = -1 
)
inline

Copy from Unicode string in UTF-8, UTF-16, or UTF-32 encoding, determined by size of TypeFrom character type.

Parameters
theStringUtfUnicode string
theLengththe length limit in Unicode symbols The string is copied till NULL symbol or, if theLength >0, till either NULL or theLength-th symbol (which comes first).

◆ GetChar()

template<typename Type >
Standard_Utf32Char NCollection_UtfString< Type >::GetChar ( const Standard_Integer  theCharIndex) const

Retrieve Unicode symbol at specified position. Warning! This is a slow access. Iterator should be used for consecutive parsing.

Parameters
theCharIndexthe index of the symbol, should be lesser than Length()
Returns
the Unicode symbol value

◆ GetCharBuffer()

template<typename Type >
const Type* NCollection_UtfString< Type >::GetCharBuffer ( const Standard_Integer  theCharIndex) const

Retrieve string buffer at specified position. Warning! This is a slow access. Iterator should be used for consecutive parsing.

Parameters
theCharIndexthe index of the symbol, should be less than Length() (first symbol of the string has index 0)
Returns
the pointer to the symbol

◆ IsEmpty()

template<typename Type >
bool NCollection_UtfString< Type >::IsEmpty ( ) const
inline
Returns
true if string is empty

◆ IsEqual()

template<typename Type >
bool NCollection_UtfString< Type >::IsEqual ( const NCollection_UtfString< Type > &  theCompare) const

Compares this string with another one.

◆ Iterator()

template<typename Type >
NCollection_UtfIterator<Type> NCollection_UtfString< Type >::Iterator ( ) const
inline

◆ Length()

template<typename Type >
Standard_Integer NCollection_UtfString< Type >::Length ( void  ) const
inline
Returns
the length of the string in Unicode symbols

◆ operator!=()

template<typename Type >
bool NCollection_UtfString< Type >::operator!= ( const NCollection_UtfString< Type > &  theCompare) const

◆ operator+=()

template<typename Type >
NCollection_UtfString& NCollection_UtfString< Type >::operator+= ( const NCollection_UtfString< Type > &  theAppend)

Join strings.

◆ operator=() [1/4]

template<typename Type >
const NCollection_UtfString& NCollection_UtfString< Type >::operator= ( const NCollection_UtfString< Type > &  theOther)
inline

Copy from another string.

◆ operator=() [2/4]

template<typename Type >
NCollection_UtfString& NCollection_UtfString< Type >::operator= ( NCollection_UtfString< Type > &&  theOther)
inline

Move assignment operator.

◆ operator=() [3/4]

template<typename Type >
const NCollection_UtfString& NCollection_UtfString< Type >::operator= ( const char *  theStringUtf8)

Copy from UTF-8 NULL-terminated string.

◆ operator=() [4/4]

template<typename Type >
const NCollection_UtfString& NCollection_UtfString< Type >::operator= ( const Standard_WideChar theStringUtfWide)

Copy from wchar_t UTF NULL-terminated string.

◆ operator==()

template<typename Type >
bool NCollection_UtfString< Type >::operator== ( const NCollection_UtfString< Type > &  theCompare) const
inline

◆ operator[]()

template<typename Type >
Standard_Utf32Char NCollection_UtfString< Type >::operator[] ( const Standard_Integer  theCharIndex) const
inline

Retrieve Unicode symbol at specified position. Warning! This is a slow access. Iterator should be used for consecutive parsing.

◆ Size()

template<typename Type >
Standard_Integer NCollection_UtfString< Type >::Size ( void  ) const
inline
Returns
the size of the buffer in bytes, excluding NULL-termination symbol

◆ SubString()

template<typename Type >
NCollection_UtfString NCollection_UtfString< Type >::SubString ( const Standard_Integer  theStart,
const Standard_Integer  theEnd 
) const

Returns the substring.

Parameters
theStartstart index (inclusive) of subString
theEndend index (exclusive) of subString
Returns
the substring

◆ Swap()

template<typename Type >
void NCollection_UtfString< Type >::Swap ( NCollection_UtfString< Type > &  theOther)

Exchange the data of two strings (without reallocating memory).

◆ ToCString()

template<typename Type >
const Type* NCollection_UtfString< Type >::ToCString ( ) const
inline

Returns NULL-terminated Unicode string. Should not be modifed or deleted!

Returns
(const Type* ) pointer to string

◆ ToLocale()

template<typename Type >
bool NCollection_UtfString< Type >::ToLocale ( char *  theBuffer,
const Standard_Integer  theSizeBytes 
) const

Converts the string into string in the current system locale.

Parameters
theBufferoutput buffer
theSizeBytesbuffer size in bytes
Returns
true on success

◆ ToUtf16()

template<typename Type >
const NCollection_UtfString<Standard_Utf16Char> NCollection_UtfString< Type >::ToUtf16 ( ) const
Returns
copy in UTF-16 format

◆ ToUtf32()

template<typename Type >
const NCollection_UtfString<Standard_Utf32Char> NCollection_UtfString< Type >::ToUtf32 ( ) const
Returns
copy in UTF-32 format

◆ ToUtf8()

template<typename Type >
const NCollection_UtfString<Standard_Utf8Char> NCollection_UtfString< Type >::ToUtf8 ( ) const
Returns
copy in UTF-8 format

◆ ToUtfWide()

template<typename Type >
const NCollection_UtfString<Standard_WideChar> NCollection_UtfString< Type >::ToUtfWide ( ) const
Returns
copy in wide format (UTF-16 on Windows and UTF-32 on Linux)

Friends And Related Function Documentation

◆ operator+

template<typename Type >
NCollection_UtfString operator+ ( const NCollection_UtfString< Type > &  theLeft,
const NCollection_UtfString< Type > &  theRight 
)
friend

Join two strings.


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