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
18
20
21class UnicodeSet;
22class 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
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.
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
314
315
317
318#endif
UObject is the common ICU "boilerplate" class.
Definition uobject.h:221
UnicodeSetIterator & operator=(const UnicodeSetIterator &)
Assignment operator.
UChar32 getCodepoint() const
Returns the current code point, if isString() returned false.
Definition usetiter.h:307
const UnicodeString & getString()
Returns the current string, if isString() returned true.
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
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.
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