ICU 62.1 62.1
usetiter.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) 2002-2014, International Business Machines
6* Corporation and others. All Rights Reserved.
7**********************************************************************
8*/
9#ifndef USETITER_H
10#define USETITER_H
11
12#include "unicode/utypes.h"
13#include "unicode/uobject.h"
14#include "unicode/unistr.h"
15
22
23class UnicodeSet;
24class UnicodeString;
25
64
65 protected:
66
73 enum { IS_STRING = -1 };
74
81
92
100
101 public:
102
110
118
124
140 inline UBool isString() const;
141
147 inline UChar32 getCodepoint() const;
148
155 inline UChar32 getCodepointEnd() const;
156
169
193
214
222 void reset(const UnicodeSet& set);
223
228 void reset();
229
236
243
244 // ======================= PRIVATES ===========================
245
246 protected:
247
248 // endElement and nextElements are really UChar32's, but we keep
249 // them as signed int32_t's so we can do comparisons with
250 // endElement set to -1. Leave them as int32_t's.
258 int32_t endRange;
262 int32_t range;
266 int32_t endElement;
270 int32_t nextElement;
271 //UBool abbreviated;
275 int32_t nextString;
279 int32_t stringCount;
280
287
292
297
301 virtual void loadRange(int32_t range);
302
303};
304
305inline UBool UnicodeSetIterator::isString() const {
306 return codepoint == (UChar32)IS_STRING;
307}
308
309inline UChar32 UnicodeSetIterator::getCodepoint() const {
310 return codepoint;
311}
312
313inline UChar32 UnicodeSetIterator::getCodepointEnd() const {
314 return codepointEnd;
315}
316
317
319
320#endif
"Smart pointer" base class; do not use directly: use LocalPointer etc.
UObject is the common ICU "boilerplate" class.
Definition uobject.h:223
UnicodeSetIterator iterates over the contents of a UnicodeSet.
Definition usetiter.h:63
UBool next()
Advances the iteration position to the next element in the set, which can be either a single code poi...
UnicodeSetIterator(const UnicodeSet &set)
Create an iterator over the given set.
UnicodeSetIterator & operator=(const UnicodeSetIterator &)
Assignment operator.
int32_t nextElement
Next element.
Definition usetiter.h:270
void reset()
Resets this iterator to the start of the set.
virtual void loadRange(int32_t range)
Load range.
UChar32 codepointEnd
When iterating over ranges using nextRange(), codepointEnd contains the inclusive end of the iteratio...
Definition usetiter.h:91
virtual UClassID getDynamicClassID() const
ICU "poor man's RTTI", returns a UClassID for the actual class.
const UnicodeSet * set
The set.
Definition usetiter.h:254
UBool nextRange()
Returns the next element in the set, either a code point range or a string.
int32_t endRange
End range.
Definition usetiter.h:258
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:286
UnicodeSetIterator(const UnicodeSetIterator &)
Copy constructor.
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.
int32_t range
Range.
Definition usetiter.h:262
int32_t nextString
Next string.
Definition usetiter.h:275
UChar32 codepoint
Current code point, or the special value IS_STRING, if the iterator points to a string.
Definition usetiter.h:80
static UClassID getStaticClassID()
ICU "poor man's RTTI", returns a UClassID for this class.
const UnicodeString * string
If codepoint == IS_STRING, then string points to the current string.
Definition usetiter.h:99
virtual ~UnicodeSetIterator()
Destructor.
int32_t stringCount
String count.
Definition usetiter.h:279
UnicodeSetIterator()
Create an iterator over nothing.
const UnicodeString & getString()
Returns the current string, if isString() returned true.
int32_t endElement
End element.
Definition usetiter.h:266
A mutable set of Unicode characters and multicharacter strings.
Definition uniset.h:278
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
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: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