ICU 72.1 72.1
uiter.h
Go to the documentation of this file.
1// © 2016 and later: Unicode, Inc. and others.
2// License & terms of use: http://www.unicode.org/copyright.html
3/*
4*******************************************************************************
5*
6* Copyright (C) 2002-2011 International Business Machines
7* Corporation and others. All Rights Reserved.
8*
9*******************************************************************************
10* file name: uiter.h
11* encoding: UTF-8
12* tab size: 8 (not used)
13* indentation:4
14*
15* created on: 2002jan18
16* created by: Markus W. Scherer
17*/
18
19#ifndef __UITER_H__
20#define __UITER_H__
21
29#include "unicode/utypes.h"
30
31#if U_SHOW_CPLUSPLUS_API
32 U_NAMESPACE_BEGIN
33
34 class CharacterIterator;
35 class Replaceable;
36
37 U_NAMESPACE_END
38#endif
39
41
42struct UCharIterator;
51typedef enum UCharIteratorOrigin {
52 UITER_START, UITER_CURRENT, UITER_LIMIT, UITER_ZERO, UITER_LENGTH
54
56enum {
72};
73
74
86#define UITER_NO_STATE ((uint32_t)0xffffffff)
87
106typedef int32_t U_CALLCONV
108
143typedef int32_t U_CALLCONV
145
158typedef UBool U_CALLCONV
160
172typedef UBool U_CALLCONV
174
187typedef UChar32 U_CALLCONV
189
203typedef UChar32 U_CALLCONV
205
219typedef UChar32 U_CALLCONV
221
233typedef int32_t U_CALLCONV
234UCharIteratorReserved(UCharIterator *iter, int32_t something);
235
280typedef uint32_t U_CALLCONV
282
308typedef void U_CALLCONV
309UCharIteratorSetState(UCharIterator *iter, uint32_t state, UErrorCode *pErrorCode);
310
311
347 const void *context;
348
354 int32_t length;
355
361 int32_t start;
362
368 int32_t index;
369
375 int32_t limit;
376
382
391
402
411
419
428
438
448
456
465
475};
476
495U_CAPI UChar32 U_EXPORT2
497
512U_CAPI UChar32 U_EXPORT2
514
529U_CAPI UChar32 U_EXPORT2
531
550U_CAPI uint32_t U_EXPORT2
552
568U_CAPI void U_EXPORT2
569uiter_setState(UCharIterator *iter, uint32_t state, UErrorCode *pErrorCode);
570
593U_CAPI void U_EXPORT2
594uiter_setString(UCharIterator *iter, const UChar *s, int32_t length);
595
616U_CAPI void U_EXPORT2
617uiter_setUTF16BE(UCharIterator *iter, const char *s, int32_t length);
618
652U_CAPI void U_EXPORT2
653uiter_setUTF8(UCharIterator *iter, const char *s, int32_t length);
654
655#if U_SHOW_CPLUSPLUS_API
656
677U_CAPI void U_EXPORT2
679
702U_CAPI void U_EXPORT2
704
705#endif
706
708
709#endif
Abstract class that defines an API for iteration on text objects.
Definition: chariter.h:361
Replaceable is an abstract base class representing a string of characters that supports the replaceme...
Definition: rep.h:77
#define U_CALLCONV
Similar to U_CDECL_BEGIN/U_CDECL_END, this qualifier is necessary in callback function typedefs to ma...
Definition: platform.h:885
C API for code unit iteration.
Definition: uiter.h:341
UCharIteratorMove * move
(public) Moves the current position relative to the start or limit of the iteration range,...
Definition: uiter.h:401
int32_t index
(protected) Current index or similar.
Definition: uiter.h:368
const void * context
(protected) Pointer to string or wrapped object or similar.
Definition: uiter.h:347
UCharIteratorGetIndex * getIndex
(public) Returns the current position or the start or limit index of the iteration range.
Definition: uiter.h:390
int32_t length
(protected) Length of string or similar.
Definition: uiter.h:354
UCharIteratorHasPrevious * hasPrevious
(public) Check if previous() can still return another code unit.
Definition: uiter.h:418
int32_t reservedField
(protected) Used by UTF-8 iterators and possibly others.
Definition: uiter.h:381
UCharIteratorPrevious * previous
(public) Decrement the index and return the code unit from there (pre-decrement, like s[–i]),...
Definition: uiter.h:447
int32_t limit
(protected) Limit index or similar.
Definition: uiter.h:375
UCharIteratorReserved * reservedFn
(public) Reserved for future use.
Definition: uiter.h:455
UCharIteratorNext * next
(public) Return the code unit at the current index and increment the index (post-increment,...
Definition: uiter.h:437
UCharIteratorCurrent * current
(public) Return the code unit at the current position, or U_SENTINEL if there is none (index is at th...
Definition: uiter.h:427
UCharIteratorHasNext * hasNext
(public) Check if current() and next() can still return another code unit.
Definition: uiter.h:410
int32_t start
(protected) Start index or similar.
Definition: uiter.h:361
UCharIteratorSetState * setState
(public) Restore the iterator state from the state word from a call to getState().
Definition: uiter.h:474
UCharIteratorGetState * getState
(public) Return the state of the iterator, to be restored later with setState().
Definition: uiter.h:464
U_CAPI void uiter_setString(UCharIterator *iter, const UChar *s, int32_t length)
Set up a UCharIterator to iterate over a string.
U_CAPI UChar32 uiter_next32(UCharIterator *iter)
Helper function for UCharIterator to get the next code point.
void UCharIteratorSetState(UCharIterator *iter, uint32_t state, UErrorCode *pErrorCode)
Function type declaration for UCharIterator.setState().
Definition: uiter.h:309
U_CAPI void uiter_setReplaceable(UCharIterator *iter, const icu::Replaceable *rep)
Set up a UCharIterator to iterate over a C++ Replaceable.
U_CAPI void uiter_setUTF8(UCharIterator *iter, const char *s, int32_t length)
Set up a UCharIterator to iterate over a UTF-8 string.
UChar32 UCharIteratorCurrent(UCharIterator *iter)
Function type declaration for UCharIterator.current().
Definition: uiter.h:188
UBool UCharIteratorHasPrevious(UCharIterator *iter)
Function type declaration for UCharIterator.hasPrevious().
Definition: uiter.h:173
int32_t UCharIteratorGetIndex(UCharIterator *iter, UCharIteratorOrigin origin)
Function type declaration for UCharIterator.getIndex().
Definition: uiter.h:107
UChar32 UCharIteratorNext(UCharIterator *iter)
Function type declaration for UCharIterator.next().
Definition: uiter.h:204
U_CAPI void uiter_setState(UCharIterator *iter, uint32_t state, UErrorCode *pErrorCode)
Restore the "state" of the iterator using a state word from a getState() call.
U_CAPI UChar32 uiter_previous32(UCharIterator *iter)
Helper function for UCharIterator to get the previous code point.
U_CAPI uint32_t uiter_getState(const UCharIterator *iter)
Get the "state" of the iterator in the form of a single 32-bit word.
uint32_t UCharIteratorGetState(const UCharIterator *iter)
Function type declaration for UCharIterator.getState().
Definition: uiter.h:281
int32_t UCharIteratorMove(UCharIterator *iter, int32_t delta, UCharIteratorOrigin origin)
Function type declaration for UCharIterator.move().
Definition: uiter.h:144
UChar32 UCharIteratorPrevious(UCharIterator *iter)
Function type declaration for UCharIterator.previous().
Definition: uiter.h:220
UBool UCharIteratorHasNext(UCharIterator *iter)
Function type declaration for UCharIterator.hasNext().
Definition: uiter.h:159
@ UITER_UNKNOWN_INDEX
Constant value that may be returned by UCharIteratorMove indicating that the final UTF-16 index is no...
Definition: uiter.h:71
int32_t UCharIteratorReserved(UCharIterator *iter, int32_t something)
Function type declaration for UCharIterator.reservedFn().
Definition: uiter.h:234
UCharIteratorOrigin
Origin constants for UCharIterator.getIndex() and UCharIterator.move().
Definition: uiter.h:51
U_CAPI void uiter_setCharacterIterator(UCharIterator *iter, icu::CharacterIterator *charIter)
Set up a UCharIterator to wrap around a C++ CharacterIterator.
U_CAPI void uiter_setUTF16BE(UCharIterator *iter, const char *s, int32_t length)
Set up a UCharIterator to iterate over a UTF-16BE string (byte vector with a big-endian pair of bytes...
U_CAPI UChar32 uiter_current32(UCharIterator *iter)
Helper function for UCharIterator to get the code point at the current index.
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
Definition: umachine.h:461
#define U_CDECL_END
This is used to end a declaration of a library private ICU C API.
Definition: umachine.h:86
int8_t UBool
The ICU boolean type, a signed-byte integer.
Definition: umachine.h:269
#define U_CAPI
This is used to declare a function as a public ICU C API.
Definition: umachine.h:110
char16_t UChar
The base type for UTF-16 code units and pointers.
Definition: umachine.h:412
#define U_CDECL_BEGIN
This is used to begin a declaration of a library private ICU C API.
Definition: umachine.h:85
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:415