UCharIterator Struct Reference

C API for code unit iteration. More...

#include <uiter.h>


Data Fields

const void * context
 (protected) Pointer to string or wrapped object or similar.
int32_t length
 (protected) Length of string or similar.
int32_t start
 (protected) Start index or similar.
int32_t index
 (protected) Current index or similar.
int32_t limit
 (protected) Limit index or similar.
int32_t reservedField
 (protected) Used by UTF-8 iterators and possibly others.
UCharIteratorGetIndexgetIndex
 (public) Returns the current position or the start or limit index of the iteration range.
UCharIteratorMovemove
 (public) Moves the current position relative to the start or limit of the iteration range, or relative to the current position itself.
UCharIteratorHasNexthasNext
 (public) Check if current() and next() can still return another code unit.
UCharIteratorHasPrevioushasPrevious
 (public) Check if previous() can still return another code unit.
UCharIteratorCurrentcurrent
 (public) Return the code unit at the current position, or U_SENTINEL if there is none (index is at the limit).
UCharIteratorNextnext
 (public) Return the code unit at the current index and increment the index (post-increment, like s[i++]), or return U_SENTINEL if there is none (index is at the limit).
UCharIteratorPreviousprevious
 (public) Decrement the index and return the code unit from there (pre-decrement, like s[--i]), or return U_SENTINEL if there is none (index is at the start).
UCharIteratorReservedreservedFn
 (public) Reserved for future use.
UCharIteratorGetStategetState
 (public) Return the state of the iterator, to be restored later with setState().
UCharIteratorSetStatesetState
 (public) Restore the iterator state from the state word from a call to getState().


Detailed Description

C API for code unit iteration.

This can be used as a C wrapper around CharacterIterator, Replaceable, or implemented using simple strings, etc.

There are two roles for using UCharIterator:

A "provider" sets the necessary function pointers and controls the "protected" fields of the UCharIterator structure. A "provider" passes a UCharIterator into C APIs that need a UCharIterator as an abstract, flexible string interface.

Implementations of such C APIs are "callers" of UCharIterator functions; they only use the "public" function pointers and never access the "protected" fields directly.

The current() and next() functions only check the current index against the limit, and previous() only checks the current index against the start, to see if the iterator already reached the end of the iteration range.

The assumption - in all iterators - is that the index is moved via the API, which means it won't go out of bounds, or the index is modified by user code that knows enough about the iterator implementation to set valid index values.

UCharIterator functions return code unit values 0..0xffff, or U_SENTINEL if the iteration bounds are reached.

ICU_Stable:
ICU 2.1

Definition at line 355 of file uiter.h.


Field Documentation

const void* UCharIterator::context
 

(protected) Pointer to string or wrapped object or similar.

Not used by caller.

ICU_Stable:
ICU 2.1

Definition at line 362 of file uiter.h.

UCharIteratorCurrent* UCharIterator::current
 

(public) Return the code unit at the current position, or U_SENTINEL if there is none (index is at the limit).

See also:
UCharIteratorCurrent
ICU_Stable:
ICU 2.1

Definition at line 452 of file uiter.h.

UCharIteratorGetIndex* UCharIterator::getIndex
 

(public) Returns the current position or the start or limit index of the iteration range.

See also:
UCharIteratorGetIndex
ICU_Stable:
ICU 2.1

Definition at line 411 of file uiter.h.

UCharIteratorGetState* UCharIterator::getState
 

(public) Return the state of the iterator, to be restored later with setState().

This function pointer is NULL if the iterator does not implement it.

See also:
UCharIteratorGet
ICU_Stable:
ICU 2.6

Definition at line 493 of file uiter.h.

UCharIteratorHasNext* UCharIterator::hasNext
 

(public) Check if current() and next() can still return another code unit.

See also:
UCharIteratorHasNext
ICU_Stable:
ICU 2.1

Definition at line 433 of file uiter.h.

UCharIteratorHasPrevious* UCharIterator::hasPrevious
 

(public) Check if previous() can still return another code unit.

See also:
UCharIteratorHasPrevious
ICU_Stable:
ICU 2.1

Definition at line 442 of file uiter.h.

int32_t UCharIterator::index
 

(protected) Current index or similar.

Not used by caller.

ICU_Stable:
ICU 2.1

Definition at line 386 of file uiter.h.

int32_t UCharIterator::length
 

(protected) Length of string or similar.

Not used by caller.

ICU_Stable:
ICU 2.1

Definition at line 370 of file uiter.h.

int32_t UCharIterator::limit
 

(protected) Limit index or similar.

Not used by caller.

ICU_Stable:
ICU 2.1

Definition at line 394 of file uiter.h.

UCharIteratorMove* UCharIterator::move
 

(public) Moves the current position relative to the start or limit of the iteration range, or relative to the current position itself.

The movement is expressed in numbers of code units forward or backward by specifying a positive or negative delta.

See also:
UCharIteratorMove
ICU_Stable:
ICU 2.1

Definition at line 423 of file uiter.h.

UCharIteratorNext* UCharIterator::next
 

(public) Return the code unit at the current index and increment the index (post-increment, like s[i++]), or return U_SENTINEL if there is none (index is at the limit).

See also:
UCharIteratorNext
ICU_Stable:
ICU 2.1

Definition at line 463 of file uiter.h.

UCharIteratorPrevious* UCharIterator::previous
 

(public) Decrement the index and return the code unit from there (pre-decrement, like s[--i]), or return U_SENTINEL if there is none (index is at the start).

See also:
UCharIteratorPrevious
ICU_Stable:
ICU 2.1

Definition at line 474 of file uiter.h.

int32_t UCharIterator::reservedField
 

(protected) Used by UTF-8 iterators and possibly others.

ICU_Stable:
ICU 2.1

Definition at line 401 of file uiter.h.

UCharIteratorReserved* UCharIterator::reservedFn
 

(public) Reserved for future use.

Currently NULL.

See also:
UCharIteratorReserved
ICU_Stable:
ICU 2.1

Definition at line 483 of file uiter.h.

UCharIteratorSetState* UCharIterator::setState
 

(public) Restore the iterator state from the state word from a call to getState().

This function pointer is NULL if the iterator does not implement it.

See also:
UCharIteratorSet
ICU_Stable:
ICU 2.6

Definition at line 504 of file uiter.h.

int32_t UCharIterator::start
 

(protected) Start index or similar.

Not used by caller.

ICU_Stable:
ICU 2.1

Definition at line 378 of file uiter.h.


The documentation for this struct was generated from the following file:
Generated on Tue Nov 16 10:03:22 2004 for ICU 3.2 by  doxygen 1.3.9.1