ICU 66.0.1  66.0.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 
15 #if U_SHOW_CPLUSPLUS_API
16 
17 #include "unicode/chariter.h"
18 
24 U_NAMESPACE_BEGIN
25 
39 public:
49  UCharCharacterIterator(ConstChar16Ptr textPtr, int32_t length);
50 
64  UCharCharacterIterator(ConstChar16Ptr textPtr, int32_t length,
65  int32_t position);
66 
83  UCharCharacterIterator(ConstChar16Ptr textPtr, int32_t length,
84  int32_t textBegin,
85  int32_t textEnd,
86  int32_t position);
87 
96 
101  virtual ~UCharCharacterIterator();
102 
112  operator=(const UCharCharacterIterator& that);
113 
122  virtual UBool operator==(const ForwardCharacterIterator& that) const;
123 
129  virtual int32_t hashCode(void) const;
130 
138  virtual UCharCharacterIterator* clone() const;
139 
147  virtual char16_t first(void);
148 
157  virtual char16_t firstPostInc(void);
158 
168  virtual UChar32 first32(void);
169 
178  virtual UChar32 first32PostInc(void);
179 
187  virtual char16_t last(void);
188 
196  virtual UChar32 last32(void);
197 
206  virtual char16_t setIndex(int32_t position);
207 
219  virtual UChar32 setIndex32(int32_t position);
220 
226  virtual char16_t current(void) const;
227 
233  virtual UChar32 current32(void) const;
234 
242  virtual char16_t next(void);
243 
252  virtual char16_t nextPostInc(void);
253 
264  virtual UChar32 next32(void);
265 
274  virtual UChar32 next32PostInc(void);
275 
285  virtual UBool hasNext();
286 
294  virtual char16_t previous(void);
295 
303  virtual UChar32 previous32(void);
304 
314  virtual UBool hasPrevious();
315 
327  virtual int32_t move(int32_t delta, EOrigin origin);
328 
340 #ifdef move32
341  // One of the system headers right now is sometimes defining a conflicting macro we don't use
342 #undef move32
343 #endif
344  virtual int32_t move32(int32_t delta, EOrigin origin);
345 
350  void setText(ConstChar16Ptr newText, int32_t newTextLength);
351 
359  virtual void getText(UnicodeString& result);
360 
366  static UClassID U_EXPORT2 getStaticClassID(void);
367 
373  virtual UClassID getDynamicClassID(void) const;
374 
375 protected:
385  const char16_t* text;
386 
387 };
388 
389 U_NAMESPACE_END
390 
391 #endif /* U_SHOW_CPLUSPLUS_API */
392 
393 #endif
CharacterIterator & operator=(const CharacterIterator &that)
Assignment operator.
virtual UChar32 first32PostInc(void)
Sets the iterator to refer to the first code point in its iteration range, returns that code point...
virtual char16_t next(void)=0
Advances to the next code unit in the iteration range (toward endIndex()), and returns that code unit...
virtual char16_t setIndex(int32_t position)=0
Sets the iterator to refer to the "position"-th code unit in the text-storage object the iterator ref...
virtual char16_t current(void) const =0
Returns the code unit the iterator currently refers to.
virtual UChar32 next32(void)=0
Advances to the next code point in the iteration range (toward endIndex()), and returns that code poi...
virtual UChar32 last32(void)=0
Sets the iterator to refer to the last code point in its iteration range, and returns that code unit...
virtual UChar32 next32PostInc(void)=0
Gets the current code point for returning and advances to the next code point in the iteration range ...
virtual int32_t hashCode(void) const =0
Generates a hash code for this iterator.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Definition: uobject.h:96
virtual int32_t move32(int32_t delta, EOrigin origin)=0
Moves the current position relative to the start or end of the iteration range, or relative to the cu...
virtual void getText(UnicodeString &result)=0
Copies the text under iteration into the UnicodeString referred to by "result".
virtual UClassID getDynamicClassID(void) const =0
Returns a UClassID for this ForwardCharacterIterator ("poor man's RTTI").
virtual UBool hasPrevious()=0
Returns FALSE if there are no more code units or code points before the current position in the itera...
virtual int32_t move(int32_t delta, EOrigin origin)=0
Moves the current position relative to the start or end of the iteration range, or relative to the cu...
virtual CharacterIterator * clone() const =0
Returns a pointer to a new CharacterIterator of the same concrete class as this one, and referring to the same character in the same text-storage object as this one.
virtual UBool hasNext()=0
Returns FALSE if there are no more code units or code points at or after the current position in the ...
Abstract class that defines an API for iteration on text objects.
Definition: chariter.h:361
A concrete subclass of CharacterIterator that iterates over the characters (code units or code points...
Definition: uchriter.h:38
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
Definition: umachine.h:425
const char16_t * text
Protected member text.
Definition: uchriter.h:385
virtual char16_t last(void)=0
Sets the iterator to refer to the last code unit in its iteration range, and returns that code unit...
virtual UChar32 first32(void)=0
Sets the iterator to refer to the first code point in its iteration range, and returns that code unit...
virtual char16_t nextPostInc(void)=0
Gets the current code unit for returning and advances to the next code unit in the iteration range (t...
Abstract class that defines an API for forward-only iteration on text objects.
Definition: chariter.h:94
const char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types...
Definition: char16ptr.h:149
virtual char16_t previous(void)=0
Advances to the previous code unit in the iteration range (toward startIndex()), and returns that cod...
Basic definitions for ICU, for both C and C++ APIs.
virtual UBool operator==(const ForwardCharacterIterator &that) const =0
Returns true when both iterators refer to the same character in the same character-storage object...
#define U_COMMON_API
Set to export library symbols from inside the common library, and to import them from outside...
Definition: utypes.h:300
virtual UChar32 current32(void) const =0
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:294
C++ API: Character Iterator.
virtual char16_t first(void)=0
Sets the iterator to refer to the first code unit in its iteration range, and returns that code unit...
virtual UChar32 previous32(void)=0
Advances to the previous code point in the iteration range (toward startIndex()), and returns that co...
virtual UChar32 setIndex32(int32_t position)=0
Sets the iterator to refer to the beginning of the code point that contains the "position"-th code un...
virtual char16_t firstPostInc(void)
Sets the iterator to refer to the first code unit in its iteration range, returns that code unit...
EOrigin
Origin enumeration for the move() and move32() functions.
Definition: chariter.h:367
int8_t UBool
The ICU boolean type.
Definition: umachine.h:261