ICU 57.1  57.1
usetiter.h
Go to the documentation of this file.
1 /*
2 **********************************************************************
3 * Copyright (c) 2002-2014, International Business Machines
4 * Corporation and others. All Rights Reserved.
5 **********************************************************************
6 */
7 #ifndef USETITER_H
8 #define USETITER_H
9 
10 #include "unicode/utypes.h"
11 #include "unicode/uobject.h"
12 #include "unicode/unistr.h"
13 
20 
21 class UnicodeSet;
22 class UnicodeString;
23 
62 
63  protected:
64 
71  enum { IS_STRING = -1 };
72 
79 
90 
98 
99  public:
100 
108 
116 
122 
138  inline UBool isString() const;
139 
145  inline UChar32 getCodepoint() const;
146 
153  inline UChar32 getCodepointEnd() const;
154 
167 
191 
212 
220  void reset(const UnicodeSet& set);
221 
226  void reset();
227 
233  static UClassID U_EXPORT2 getStaticClassID();
234 
240  virtual UClassID getDynamicClassID() const;
241 
242  // ======================= PRIVATES ===========================
243 
244  protected:
245 
246  // endElement and nextElements are really UChar32's, but we keep
247  // them as signed int32_t's so we can do comparisons with
248  // endElement set to -1. Leave them as int32_t's.
252  const UnicodeSet* set;
256  int32_t endRange;
260  int32_t range;
264  int32_t endElement;
268  int32_t nextElement;
269  //UBool abbreviated;
273  int32_t nextString;
277  int32_t stringCount;
278 
285 
290 
295 
299  virtual void loadRange(int32_t range);
300 
301 };
302 
304  return codepoint == (UChar32)IS_STRING;
305 }
306 
308  return codepoint;
309 }
310 
312  return codepointEnd;
313 }
314 
315 
317 
318 #endif
UObject is the common ICU "boilerplate" class.
Definition: uobject.h:221
UnicodeSetIterator iterates over the contents of a UnicodeSet.
Definition: usetiter.h:61
UChar32 getCodepoint() const
Returns the current code point, if isString() returned false.
Definition: usetiter.h:307
UnicodeSetIterator(const UnicodeSetIterator &)
Copy constructor.
const UnicodeSet * set
The set.
Definition: usetiter.h:252
UnicodeSetIterator(const UnicodeSet &set)
Create an iterator over the given set.
int32_t range
Range.
Definition: usetiter.h:260
const UnicodeString * string
If codepoint == IS_STRING, then string points to the current string.
Definition: usetiter.h:97
virtual UClassID getDynamicClassID() const
ICU "poor man's RTTI", returns a UClassID for the actual class.
void reset()
Resets this iterator to the start of the set.
UChar32 codepointEnd
When iterating over ranges using nextRange(), codepointEnd contains the inclusive end of the iteratio...
Definition: usetiter.h:89
UnicodeSetIterator()
Create an iterator over nothing.
int32_t endElement
End element.
Definition: usetiter.h:264
virtual ~UnicodeSetIterator()
Destructor.
int32_t endRange
End range.
Definition: usetiter.h:256
UnicodeSetIterator & operator=(const UnicodeSetIterator &)
Assignment operator.
UBool isString() const
Returns true if the current element is a string.
Definition: usetiter.h:303
UBool next()
Advances the iteration position to the next element in the set, which can be either a single code poi...
UChar32 getCodepointEnd() const
Returns the end of the current code point range, if isString() returned false and nextRange() was cal...
Definition: usetiter.h:311
UChar32 codepoint
Current code point, or the special value IS_STRING, if the iterator points to a string.
Definition: usetiter.h:78
int32_t stringCount
String count.
Definition: usetiter.h:277
int32_t nextElement
Next element.
Definition: usetiter.h:268
int32_t nextString
Next string.
Definition: usetiter.h:273
static UClassID getStaticClassID()
ICU "poor man's RTTI", returns a UClassID for this class.
void reset(const UnicodeSet &set)
Sets this iterator to visit the elements of the given set and resets it to the start of that set.
virtual void loadRange(int32_t range)
Load range.
const UnicodeString & getString()
Returns the current string, if isString() returned true.
UBool nextRange()
Returns the next element in the set, either a code point range or a string.
UnicodeString * cpString
Points to the string to use when the caller asks for a string and the current iteration item is a cod...
Definition: usetiter.h:284
A mutable set of Unicode characters and multicharacter strings.
Definition: uniset.h:276
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:294
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
Definition: umachine.h:332
int8_t UBool
The ICU boolean type.
Definition: umachine.h:234
C++ API: Unicode String.
C++ API: Common ICU base class UObject.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Definition: uobject.h:91
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:357
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition: uversion.h:130
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:129