Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes

StringIterator Class Reference

Class for iterating over different kind of parts of a string. More...

#include <string_base.h>

Inheritance diagram for StringIterator:
IcuStringIterator

Public Types

enum  IterType { ITER_CHARACTER, ITER_WORD }
 

Type of the iterator.

More...

Public Member Functions

virtual void SetString (const char *s)=0
 Set a new iteration string.
virtual size_t SetCurPosition (size_t pos)=0
 Change the current string cursor.
virtual size_t Next (IterType what=ITER_CHARACTER)=0
 Advance the cursor by one iteration unit.
virtual size_t Prev (IterType what=ITER_CHARACTER)=0
 Move the cursor back by one iteration unit.

Static Public Member Functions

static StringIteratorCreate ()
 Create a new iterator instance.

Static Public Attributes

static const size_t END = SIZE_MAX
 Sentinel to indicate end-of-iteration.

Detailed Description

Class for iterating over different kind of parts of a string.

Definition at line 16 of file string_base.h.


Member Enumeration Documentation

Type of the iterator.

Enumerator:
ITER_CHARACTER 

Iterate over characters (or more exactly grapheme clusters).

ITER_WORD 

Iterate over words.

Definition at line 19 of file string_base.h.


Member Function Documentation

StringIterator * StringIterator::Create (  )  [static]

Create a new iterator instance.

Returns:
New iterator instance.

Definition at line 807 of file string.cpp.

Referenced by Textbuf::Textbuf().

virtual size_t StringIterator::Next ( IterType  what = ITER_CHARACTER  )  [pure virtual]

Advance the cursor by one iteration unit.

Returns:
New cursor position (in bytes) or END if the cursor is already at the end of the string.

Implemented in IcuStringIterator.

Referenced by Textbuf::DeleteChar(), and Textbuf::MovePos().

virtual size_t StringIterator::Prev ( IterType  what = ITER_CHARACTER  )  [pure virtual]

Move the cursor back by one iteration unit.

Returns:
New cursor position (in bytes) or END if the cursor is already at the start of the string.

Implemented in IcuStringIterator.

Referenced by Textbuf::DeleteChar(), and Textbuf::MovePos().

virtual size_t StringIterator::SetCurPosition ( size_t  pos  )  [pure virtual]

Change the current string cursor.

Parameters:
p New cursor position.
Returns:
Actual new cursor position at the next valid character boundary.
Precondition:
p has to be inside the current string.

Implemented in IcuStringIterator.

Referenced by Textbuf::MovePos(), and Textbuf::UpdateStringIter().

virtual void StringIterator::SetString ( const char *  s  )  [pure virtual]

Set a new iteration string.

Must also be called if the string contents changed. The cursor is reset to the start of the string.

Parameters:
s New string.

Implemented in IcuStringIterator.

Referenced by Textbuf::UpdateStringIter().


Field Documentation

const size_t StringIterator::END = SIZE_MAX [static]

Sentinel to indicate end-of-iteration.

Definition at line 25 of file string_base.h.

Referenced by Textbuf::MovePos(), IcuStringIterator::Next(), IcuStringIterator::Prev(), and Textbuf::UpdateStringIter().


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