ICU 66.0.1  66.0.1
uenum.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-2013, International Business Machines
7 * Corporation and others. All Rights Reserved.
8 *
9 *******************************************************************************
10 * file name: uenum.h
11 * encoding: UTF-8
12 * tab size: 8 (not used)
13 * indentation:2
14 *
15 * created on: 2002jul08
16 * created by: Vladimir Weinstein
17 */
18 
19 #ifndef __UENUM_H
20 #define __UENUM_H
21 
22 #include "unicode/utypes.h"
23 #include "unicode/localpointer.h"
24 
25 #if U_SHOW_CPLUSPLUS_API
26 U_NAMESPACE_BEGIN
27 class StringEnumeration;
28 U_NAMESPACE_END
29 #endif
30 
41 struct UEnumeration;
43 typedef struct UEnumeration UEnumeration;
44 
52 U_STABLE void U_EXPORT2
54 
55 #if U_SHOW_CPLUSPLUS_API
56 
57 U_NAMESPACE_BEGIN
58 
69 
70 U_NAMESPACE_END
71 
72 #endif
73 
88 U_STABLE int32_t U_EXPORT2
89 uenum_count(UEnumeration* en, UErrorCode* status);
90 
112 U_STABLE const UChar* U_EXPORT2
114  int32_t* resultLength,
115  UErrorCode* status);
116 
145 U_STABLE const char* U_EXPORT2
147  int32_t* resultLength,
148  UErrorCode* status);
149 
159 U_STABLE void U_EXPORT2
160 uenum_reset(UEnumeration* en, UErrorCode* status);
161 
162 #if U_SHOW_CPLUSPLUS_API
163 
173 U_STABLE UEnumeration* U_EXPORT2
175 
176 #endif
177 
189 U_STABLE UEnumeration* U_EXPORT2
190 uenum_openUCharStringsEnumeration(const UChar* const strings[], int32_t count,
191  UErrorCode* ec);
192 
204 U_STABLE UEnumeration* U_EXPORT2
205 uenum_openCharStringsEnumeration(const char* const strings[], int32_t count,
206  UErrorCode* ec);
207 
208 #endif
void uenum_close(UEnumeration *en)
Disposes of resources in use by the iterator.
UEnumeration * uenum_openUCharStringsEnumeration(const UChar *const strings[], int32_t count, UErrorCode *ec)
Given an array of const UChar* strings, return a UEnumeration.
struct UEnumeration UEnumeration
structure representing an enumeration object instance
Definition: uenum.h:43
Base class for 'pure' C++ implementations of uenum api.
Definition: strenum.h:61
const char * uenum_next(UEnumeration *en, int32_t *resultLength, UErrorCode *status)
Returns the next element in the iterator's list.
const UChar * uenum_unext(UEnumeration *en, int32_t *resultLength, UErrorCode *status)
Returns the next element in the iterator's list.
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
Definition: localpointer.h:562
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
int32_t uenum_count(UEnumeration *en, UErrorCode *status)
Returns the number of elements that the iterator traverses.
UEnumeration * uenum_openCharStringsEnumeration(const char *const strings[], int32_t count, UErrorCode *ec)
Given an array of const char* strings (invariant chars only), return a UEnumeration.
uint16_t UChar
The base type for UTF-16 code units and pointers.
Definition: umachine.h:378
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:415
Basic definitions for ICU, for both C and C++ APIs.
"Smart pointer" class, closes a UEnumeration via uenum_close().
void uenum_reset(UEnumeration *en, UErrorCode *status)
Resets the iterator to the current list of service IDs.
UEnumeration * uenum_openFromStringEnumeration(icu::StringEnumeration *adopted, UErrorCode *ec)
Given a StringEnumeration, wrap it in a UEnumeration.
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
Definition: umachine.h:111