ICU 62.1 62.1
uchriter.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* Copyright (C) 1998-2005, International Business Machines
6* Corporation and others. All Rights Reserved.
7**********************************************************************
8*/
9
10#ifndef UCHRITER_H
11#define UCHRITER_H
12
13#include "unicode/utypes.h"
14#include "unicode/chariter.h"
15
22
36public:
47
62 int32_t position);
63
81 int32_t textBegin,
82 int32_t textEnd,
83 int32_t position);
84
93
99
110
120
126 virtual int32_t hashCode(void) const;
127
135 virtual CharacterIterator* clone(void) const;
136
144 virtual char16_t first(void);
145
154 virtual char16_t firstPostInc(void);
155
165 virtual UChar32 first32(void);
166
175 virtual UChar32 first32PostInc(void);
176
184 virtual char16_t last(void);
185
193 virtual UChar32 last32(void);
194
203 virtual char16_t setIndex(int32_t position);
204
216 virtual UChar32 setIndex32(int32_t position);
217
223 virtual char16_t current(void) const;
224
230 virtual UChar32 current32(void) const;
231
239 virtual char16_t next(void);
240
249 virtual char16_t nextPostInc(void);
250
261 virtual UChar32 next32(void);
262
271 virtual UChar32 next32PostInc(void);
272
282 virtual UBool hasNext();
283
291 virtual char16_t previous(void);
292
300 virtual UChar32 previous32(void);
301
312
324 virtual int32_t move(int32_t delta, EOrigin origin);
325
337#ifdef move32
338 // One of the system headers right now is sometimes defining a conflicting macro we don't use
339#undef move32
340#endif
341 virtual int32_t move32(int32_t delta, EOrigin origin);
342
348
357
364
370 virtual UClassID getDynamicClassID(void) const;
371
372protected:
382 const char16_t* text;
383
384};
385
387#endif
C++ API: Character Iterator.
Abstract class that defines an API for iteration on text objects.
Definition chariter.h:358
EOrigin
Origin enumeration for the move() and move32() functions.
Definition chariter.h:364
const char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types.
Definition char16ptr.h:142
Abstract class that defines an API for forward-only iteration on text objects.
Definition chariter.h:91
"Smart pointer" base class; do not use directly: use LocalPointer etc.
A concrete subclass of CharacterIterator that iterates over the characters (code units or code points...
Definition uchriter.h:35
virtual UChar32 first32PostInc(void)
Sets the iterator to refer to the first code point in its iteration range, returns that code point,...
UCharCharacterIterator(ConstChar16Ptr textPtr, int32_t length, int32_t textBegin, int32_t textEnd, int32_t position)
Create an iterator over the char16_t array referred to by "textPtr".
UCharCharacterIterator(const UCharCharacterIterator &that)
Copy constructor.
virtual CharacterIterator * clone(void) const
Returns a new UCharCharacterIterator referring to the same character in the same range of the same st...
void setText(ConstChar16Ptr newText, int32_t newTextLength)
Sets the iterator to iterate over a new range of text.
virtual UBool hasNext()
Returns FALSE if there are no more code units or code points at or after the current position in the ...
virtual char16_t current(void) const
Returns the code unit the iterator currently refers to.
virtual char16_t setIndex(int32_t position)
Sets the iterator to refer to the "position"-th code unit in the text-storage object the iterator ref...
virtual char16_t firstPostInc(void)
Sets the iterator to refer to the first code unit in its iteration range, returns that code unit,...
virtual char16_t first(void)
Sets the iterator to refer to the first code unit in its iteration range, and returns that code unit.
virtual void getText(UnicodeString &result)
Copies the char16_t array under iteration into the UnicodeString referred to by "result".
virtual char16_t previous(void)
Advances to the previous code unit in the iteration range (toward startIndex()), and returns that cod...
virtual UChar32 previous32(void)
Advances to the previous code point in the iteration range (toward startIndex()), and returns that co...
virtual int32_t move(int32_t delta, EOrigin origin)
Moves the current position relative to the start or end of the iteration range, or relative to the cu...
UCharCharacterIterator(ConstChar16Ptr textPtr, int32_t length, int32_t position)
Create an iterator over the char16_t array referred to by "textPtr".
virtual char16_t next(void)
Advances to the next code unit in the iteration range (toward endIndex()), and returns that code unit...
virtual UChar32 next32(void)
Advances to the next code point in the iteration range (toward endIndex()), and returns that code poi...
virtual UBool operator==(const ForwardCharacterIterator &that) const
Returns true if the iterators iterate over the same range of the same string and are pointing at the ...
virtual int32_t hashCode(void) const
Generates a hash code for this iterator.
static UClassID getStaticClassID(void)
Return a class ID for this class (not really public)
virtual UChar32 first32(void)
Sets the iterator to refer to the first code point in its iteration range, and returns that code unit...
virtual UChar32 last32(void)
Sets the iterator to refer to the last code point in its iteration range, and returns that code unit.
virtual char16_t nextPostInc(void)
Gets the current code unit for returning and advances to the next code unit in the iteration range (t...
UCharCharacterIterator & operator=(const UCharCharacterIterator &that)
Assignment operator.
virtual int32_t move32(int32_t delta, EOrigin origin)
Moves the current position relative to the start or end of the iteration range, or relative to the cu...
virtual UChar32 setIndex32(int32_t position)
Sets the iterator to refer to the beginning of the code point that contains the "position"-th code un...
virtual ~UCharCharacterIterator()
Destructor.
virtual UClassID getDynamicClassID(void) const
Return a class ID for this object (not really public)
virtual UBool hasPrevious()
Returns FALSE if there are no more code units or code points before the current position in the itera...
virtual char16_t last(void)
Sets the iterator to refer to the last code unit in its iteration range, and returns that code unit.
virtual UChar32 next32PostInc(void)
Gets the current code point for returning and advances to the next code point in the iteration range ...
UCharCharacterIterator(ConstChar16Ptr textPtr, int32_t length)
Create an iterator over the char16_t array referred to by "textPtr".
const char16_t * text
Protected member text.
Definition uchriter.h:382
UCharCharacterIterator()
Protected constructor.
virtual UChar32 current32(void) const
Returns the code point the iterator currently refers to.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition unistr.h:287
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
Definition umachine.h:400
int8_t UBool
The ICU boolean type.
Definition umachine.h:236
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Definition uobject.h:93
Basic definitions for ICU, for both C and C++ APIs.
#define U_COMMON_API
Set to export library symbols from inside the common library, and to import them from outside.
Definition utypes.h:359
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition uversion.h:138
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition uversion.h:137