VTK
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
vtkUnicodeString Class Reference

String class that stores Unicode text. More...

#include <vtkUnicodeString.h>

Classes

class  const_iterator
 

Public Types

typedef vtkUnicodeStringValueType value_type
 
typedef std::string::size_type size_type
 

Public Member Functions

 vtkUnicodeString ()
 
 vtkUnicodeString (const vtkUnicodeString &)
 
 vtkUnicodeString (size_type count, value_type character)
 
 vtkUnicodeString (const_iterator begin, const_iterator end)
 
vtkUnicodeStringoperator= (const vtkUnicodeString &)
 
const_iterator begin () const
 
const_iterator end () const
 
value_type at (size_type offset) const
 
value_type operator[] (size_type offset) const
 
const char * utf8_str () const
 
void utf8_str (std::string &result) const
 
std::vector< vtkTypeUInt16 > utf16_str () const
 
void utf16_str (std::vector< vtkTypeUInt16 > &result) const
 
size_type byte_count () const
 
size_type character_count () const
 
bool empty () const
 
vtkUnicodeStringoperator+= (value_type)
 
vtkUnicodeStringoperator+= (const vtkUnicodeString &rhs)
 
void push_back (value_type)
 
void clear ()
 
vtkUnicodeString fold_case () const
 
int compare (const vtkUnicodeString &) const
 
vtkUnicodeString substr (size_type offset=0, size_type count=npos) const
 
void swap (vtkUnicodeString &)
 
void append (const vtkUnicodeString &value)
 
void append (size_type count, value_type character)
 
void append (const_iterator begin, const_iterator end)
 
void assign (const vtkUnicodeString &value)
 
void assign (size_type count, value_type character)
 
void assign (const_iterator begin, const_iterator end)
 

Static Public Member Functions

static vtkUnicodeString from_utf16 (const vtkTypeUInt16 *)
 
static bool is_utf8 (const char *)
 
static bool is_utf8 (const std::string &)
 
static vtkUnicodeString from_utf8 (const char *)
 
static vtkUnicodeString from_utf8 (const char *begin, const char *end)
 
static vtkUnicodeString from_utf8 (const std::string &)
 

Static Public Attributes

static const size_type npos
 

Detailed Description

String class that stores Unicode text.

vtkUnicodeString provides storage for Unicode text. Conceptually, it acts as a container for a sequence of Unicode characters, providing a public interface similar to basic_string<>. For character-oriented operations, this means reading / writing 32-bit UTF-32 / UCS-4 characters. Internally, characters may be stored using variable-length encodings for efficiency. Explicit conversions to-and-from other encodings are provided, and implicit conversions are deliberately avoided, to avoid confusion.

Note that, because vtkUnicodeString uses variable-length encodings for storage, character-oriented operations will generally provide O(N) access instead of O(1).

The current implementation stores the sequence with UTF-8 encoding, but this choice is subject to change and might become a compile-time or run-time option.

Thanks:
Developed by Timothy M. Shead (tshea.nosp@m.d@sa.nosp@m.ndia..nosp@m.gov) at Sandia National Laboratories.
Tests:
vtkUnicodeString (Tests)

Definition at line 71 of file vtkUnicodeString.h.

Member Typedef Documentation

Definition at line 74 of file vtkUnicodeString.h.

typedef std::string::size_type vtkUnicodeString::size_type

Definition at line 75 of file vtkUnicodeString.h.

Constructor & Destructor Documentation

vtkUnicodeString::vtkUnicodeString ( )

Constructs an empty string.

vtkUnicodeString::vtkUnicodeString ( const vtkUnicodeString )

Makes a deep-copy of another sequence.

vtkUnicodeString::vtkUnicodeString ( size_type  count,
value_type  character 
)

Constructs a sequence of repeated characters. Note: throws an exception if the character isn't a valid Unicode code point.

vtkUnicodeString::vtkUnicodeString ( const_iterator  begin,
const_iterator  end 
)

Constructs a string from a sequence of Unicode characters.

Member Function Documentation

static bool vtkUnicodeString::is_utf8 ( const char *  )
static

Tests a sequence of bytes, returning true iff they are a valid UTF-8 sequence.

static bool vtkUnicodeString::is_utf8 ( const std::string &  )
static

Tests a sequence of bytes, returning true iff they are a valid UTF-8 sequence.

static vtkUnicodeString vtkUnicodeString::from_utf8 ( const char *  )
static

Constructs a string from a null-terminated sequence of UTF-8 encoded characters.

static vtkUnicodeString vtkUnicodeString::from_utf8 ( const char *  begin,
const char *  end 
)
static

Constructs a string from a null-terminated sequence of UTF-8 encoded characters.

static vtkUnicodeString vtkUnicodeString::from_utf8 ( const std::string &  )
static

Constructs a string from a null-terminated sequence of UTF-8 encoded characters.

static vtkUnicodeString vtkUnicodeString::from_utf16 ( const vtkTypeUInt16 *  )
static

Constructs a string from a null-terminated sequence of UTF-16 encoded characters.

vtkUnicodeString& vtkUnicodeString::operator= ( const vtkUnicodeString )

Replaces the current sequence with a deep copy of another.

const_iterator vtkUnicodeString::begin ( ) const

Returns a forward iterator that points at the first element of the sequence (or just beyond the end of an empty sequence).

const_iterator vtkUnicodeString::end ( ) const

Returns a forward iterator that points just beyond the end of the sequence.

value_type vtkUnicodeString::at ( size_type  offset) const

Returns the Unicode character at the given character offset within the sequence, or throws std::out_of_range if the offset is invalid.

value_type vtkUnicodeString::operator[] ( size_type  offset) const

Returns the Unicode character at the given character offset within the sequence. Behavior is undefined if the position is invalid.

const char* vtkUnicodeString::utf8_str ( ) const

Returns the sequence as a null-terminated sequence of UTF-8 encoded characters.

void vtkUnicodeString::utf8_str ( std::string &  result) const

Inserts the sequence into the supplied storage as a collection of UTF-8 encoded characters.

std::vector<vtkTypeUInt16> vtkUnicodeString::utf16_str ( ) const

Returns the sequence as a collection of UTF-16 encoded characters.

void vtkUnicodeString::utf16_str ( std::vector< vtkTypeUInt16 > &  result) const

Inserts the sequence into the supplied storage as a collection of UTF-16 encoded characters

size_type vtkUnicodeString::byte_count ( ) const

Returns the number of bytes (not characters) in the sequence.

size_type vtkUnicodeString::character_count ( ) const

Returns the number of characters (not bytes) in the sequence.

bool vtkUnicodeString::empty ( ) const

Returns true if the string contains an empty sequence.

vtkUnicodeString& vtkUnicodeString::operator+= ( value_type  )

Append a Unicode character to the end of the sequence.

vtkUnicodeString& vtkUnicodeString::operator+= ( const vtkUnicodeString rhs)

Append a Unicode sequence to the end of the current sequence.

void vtkUnicodeString::push_back ( value_type  )

Append a Unicode character to the end of the sequence.

void vtkUnicodeString::append ( const vtkUnicodeString value)

Append Unicode to the current sequence.

void vtkUnicodeString::append ( size_type  count,
value_type  character 
)

Append Unicode to the current sequence.

void vtkUnicodeString::append ( const_iterator  begin,
const_iterator  end 
)

Append Unicode to the current sequence.

void vtkUnicodeString::assign ( const vtkUnicodeString value)

Replace the current sequence with another.

void vtkUnicodeString::assign ( size_type  count,
value_type  character 
)

Replace the current sequence with another.

void vtkUnicodeString::assign ( const_iterator  begin,
const_iterator  end 
)

Replace the current sequence with another.

void vtkUnicodeString::clear ( )

Resets the string to an empty sequence

vtkUnicodeString vtkUnicodeString::fold_case ( ) const

Returns a copy of the current sequence, modified so that differences in case are eliminated. Thus, you can run fold_case() on two strings and then comparse them to obtain a case-insensitive comparison. Note that the string returned by fold_case() may be larger than the original source sequence, See http://www.unicode.org/Public/UNIDATA/CaseFolding.txt for details.

int vtkUnicodeString::compare ( const vtkUnicodeString ) const

Returns a negative value if the sequence compares less-than the operand sequence, zero if the two sequences compare equal, or a positive value otherwise. Note that the definition of "less-than" is undefined, so you should use some other method if you wish to establish a specific ordering (such as alphabetical).

vtkUnicodeString vtkUnicodeString::substr ( size_type  offset = 0,
size_type  count = npos 
) const

Returns a subset of the current sequence that up-to 'count' characters in length, starting at character 'offset'.

void vtkUnicodeString::swap ( vtkUnicodeString )

Swap the sequences stored by two strings.

Member Data Documentation

const size_type vtkUnicodeString::npos
static

The largest representable value of size_type, used as a special-code.

Definition at line 169 of file vtkUnicodeString.h.


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