ICU 65.1 65.1

strenum.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 *
6 * Copyright (C) 2002-2012, International Business Machines
7 * Corporation and others. All Rights Reserved.
8 *
9 *******************************************************************************
10 */
11
12 #ifndef STRENUM_H
13 #define STRENUM_H
14
15 #include "unicode/utypes.h"
16
17 #if U_SHOW_CPLUSPLUS_API
18
19 #include "unicode/uobject.h"
20 #include "unicode/unistr.h"
21
27 U_NAMESPACE_BEGIN
28
61 class U_COMMON_API StringEnumeration : public UObject {
62 public:
67 virtual ~StringEnumeration();
68
81 virtual StringEnumeration *clone() const;
82
100 virtual int32_t count(UErrorCode& status) const = 0;
101
132 virtual const char* next(int32_t *resultLength, UErrorCode& status);
133
157 virtual const char16_t* unext(int32_t *resultLength, UErrorCode& status);
158
179 virtual const UnicodeString* snext(UErrorCode& status);
180
193 virtual void reset(UErrorCode& status) = 0;
194
202 virtual UBool operator==(const StringEnumeration& that)const;
210 virtual UBool operator!=(const StringEnumeration& that)const;
211
212 protected:
217 UnicodeString unistr;
222 char charsBuffer[32];
228 char *chars;
233 int32_t charsCapacity;
234
239 StringEnumeration();
240
249 void ensureCharsCapacity(int32_t capacity, UErrorCode &status);
250
273 UnicodeString *setChars(const char *s, int32_t length, UErrorCode &status);
274 };
275
276 U_NAMESPACE_END
277
278 #endif /* U_SHOW_CPLUSPLUS_API */
279
280 /* STRENUM_H */
281 #endif
icu::StringEnumeration::unistr
UnicodeString unistr
UnicodeString field for use with default implementations and subclasses.
Definition: strenum.h:217
icu::StringEnumeration::chars
char * chars
char * buffer for use with default implementations and subclasses.
Definition: strenum.h:228
unistr.h
C++ API: Unicode String.
icu::operator==
U_EXPORT UBool operator==(const StringPiece &x, const StringPiece &y)
Global operator == for StringPiece.
icu::StringEnumeration
Base class for &#39;pure&#39; C++ implementations of uenum api.
Definition: strenum.h:61
icu::operator!=
UBool operator!=(const StringPiece &x, const StringPiece &y)
Global operator != for StringPiece.
Definition: stringpiece.h:251
icu::StringEnumeration::charsCapacity
int32_t charsCapacity
Capacity of chars, for use with default implementations and subclasses.
Definition: strenum.h:233
uobject.h
C++ API: Common ICU base class UObject.
UErrorCode
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:415
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
U_COMMON_API
#define U_COMMON_API
Set to export library symbols from inside the common library, and to import them from outside...
Definition: utypes.h:300
icu::UnicodeString
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:294
icu::UObject
UObject is the common ICU "boilerplate" class.
Definition: uobject.h:223
UBool
int8_t UBool
The ICU boolean type.
Definition: umachine.h:261