Open CASCADE Technology 6.6.0
Public Member Functions
NCollection_UtfIterator< Type > Class Template Reference

Template class for Unicode strings support. It defines an iterator and provide correct way to read multi-byte text (UTF-8 and UTF-16) and convert it from one to another. The current value of iterator returned as UTF-32 Unicode code.

#include <NCollection_UtfIterator.hxx>

Public Member Functions

 NCollection_UtfIterator (const Type *theString)
 Constructor.
void Init (const Type *theString)
 Initialize iterator within specified NULL-terminated string.
NCollection_UtfIteratoroperator++ ()
 Pre-increment operator. Reads the next unicode character. Notice - no protection against overrun!
NCollection_UtfIterator operator++ (int)
 Post-increment operator. Notice - no protection against overrun!
bool operator== (const NCollection_UtfIterator &theRight) const
 Equality operator.
Standard_Utf32Char operator* () const
 Dereference operator.
const Type * BufferHere () const
 Buffer-fetching getter.
Type * ChangeBufferHere ()
 Buffer-fetching getter. Dangerous! Iterator should be reinitialized on buffer change.
const Type * BufferNext () const
 Buffer-fetching getter.
Standard_Integer Index () const
Standard_Integer AdvanceBytesUtf8 () const
Standard_Integer AdvanceBytesUtf16 () const
Standard_Integer AdvanceBytesUtf32 () const
Standard_Utf8CharGetUtf8 (Standard_Utf8Char *theBuffer) const
 Fill the UTF-8 buffer within current Unicode symbol. Use method AdvanceUtf8() to allocate buffer with enough size.
Standard_Utf8UCharGetUtf8 (Standard_Utf8UChar *theBuffer) const
Standard_Utf16CharGetUtf16 (Standard_Utf16Char *theBuffer) const
 Fill the UTF-16 buffer within current Unicode symbol. Use method AdvanceUtf16() to allocate buffer with enough size.
Standard_Utf32CharGetUtf32 (Standard_Utf32Char *theBuffer) const
 Fill the UTF-32 buffer within current Unicode symbol. Use method AdvanceUtf32() to allocate buffer with enough size.
template<typename TypeWrite >
Standard_Integer AdvanceBytesUtf () const
template<typename TypeWrite >
TypeWrite * GetUtf (TypeWrite *theBuffer) const
 Fill the UTF-** buffer within current Unicode symbol. Use method AdvanceUtf**() to allocate buffer with enough size.

template<typename Type>
class NCollection_UtfIterator< Type >


Constructor & Destructor Documentation

template<typename Type >
NCollection_UtfIterator< Type >::NCollection_UtfIterator ( const Type *  theString) [inline]
Parameters:
theStringbuffer to iterate

Member Function Documentation

template<typename Type >
template<typename TypeWrite >
Standard_Integer NCollection_UtfIterator< Type >::AdvanceBytesUtf ( ) const
Returns:
the advance in TypeWrite chars needed to store current symbol
template<typename Type >
Standard_Integer NCollection_UtfIterator< Type >::AdvanceBytesUtf16 ( ) const
Returns:
the advance in bytes to store current symbol in UTF-16. 0 means an invalid symbol; 2 bytes is a general case; 4 bytes for surrogate pair.
template<typename Type >
Standard_Integer NCollection_UtfIterator< Type >::AdvanceBytesUtf32 ( ) const [inline]
Returns:
the advance in bytes to store current symbol in UTF-32. Always 4 bytes (method for consistency).
template<typename Type >
Standard_Integer NCollection_UtfIterator< Type >::AdvanceBytesUtf8 ( ) const
Returns:
the advance in bytes to store current symbol in UTF-8. 0 means an invalid symbol; 1-4 bytes are valid range.
template<typename Type >
const Type* NCollection_UtfIterator< Type >::BufferHere ( ) const [inline]
template<typename Type >
const Type* NCollection_UtfIterator< Type >::BufferNext ( ) const [inline]
template<typename Type >
Type* NCollection_UtfIterator< Type >::ChangeBufferHere ( ) [inline]
template<typename Type >
template<typename TypeWrite >
TypeWrite* NCollection_UtfIterator< Type >::GetUtf ( TypeWrite *  theBuffer) const
Parameters:
theBufferbuffer to fill
Returns:
new buffer position (for next char)
template<typename Type >
Standard_Utf16Char* NCollection_UtfIterator< Type >::GetUtf16 ( Standard_Utf16Char theBuffer) const
Parameters:
theBufferbuffer to fill
Returns:
new buffer position (for next char)
template<typename Type >
Standard_Utf32Char* NCollection_UtfIterator< Type >::GetUtf32 ( Standard_Utf32Char theBuffer) const
Parameters:
theBufferbuffer to fill
Returns:
new buffer position (for next char)
template<typename Type >
Standard_Utf8UChar* NCollection_UtfIterator< Type >::GetUtf8 ( Standard_Utf8UChar theBuffer) const
template<typename Type >
Standard_Utf8Char* NCollection_UtfIterator< Type >::GetUtf8 ( Standard_Utf8Char theBuffer) const
Parameters:
theBufferbuffer to fill
Returns:
new buffer position (for next char)
template<typename Type >
Standard_Integer NCollection_UtfIterator< Type >::Index ( ) const [inline]
Returns:
the index displacement from iterator intialization
template<typename Type >
void NCollection_UtfIterator< Type >::Init ( const Type *  theString) [inline]
template<typename Type >
Standard_Utf32Char NCollection_UtfIterator< Type >::operator* ( ) const [inline]
Returns:
the UTF-32 codepoint of the character currently pointed by iterator.
template<typename Type >
NCollection_UtfIterator& NCollection_UtfIterator< Type >::operator++ ( ) [inline]
template<typename Type >
NCollection_UtfIterator NCollection_UtfIterator< Type >::operator++ ( int  ) [inline]
template<typename Type >
bool NCollection_UtfIterator< Type >::operator== ( const NCollection_UtfIterator< Type > &  theRight) const [inline]

The documentation for this class was generated from the following file:
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines