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
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
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
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