OLD | NEW |
1 /* | 1 /* |
2 *************************************************************************** | 2 *************************************************************************** |
3 * Copyright (C) 1999-2013, International Business Machines Corporation | 3 * Copyright (C) 1999-2014, International Business Machines Corporation |
4 * and others. All Rights Reserved. | 4 * and others. All Rights Reserved. |
5 *************************************************************************** | 5 *************************************************************************** |
6 * Date Name Description | 6 * Date Name Description |
7 * 10/20/99 alan Creation. | 7 * 10/20/99 alan Creation. |
8 *************************************************************************** | 8 *************************************************************************** |
9 */ | 9 */ |
10 | 10 |
11 #ifndef UNICODESET_H | 11 #ifndef UNICODESET_H |
12 #define UNICODESET_H | 12 #define UNICODESET_H |
13 | 13 |
14 #include "unicode/unifilt.h" | 14 #include "unicode/unifilt.h" |
15 #include "unicode/unistr.h" | 15 #include "unicode/unistr.h" |
16 #include "unicode/uset.h" | 16 #include "unicode/uset.h" |
17 | 17 |
18 /** | 18 /** |
19 * \file | 19 * \file |
20 * \brief C++ API: Unicode Set | 20 * \brief C++ API: Unicode Set |
21 */ | 21 */ |
22 | 22 |
23 U_NAMESPACE_BEGIN | 23 U_NAMESPACE_BEGIN |
24 | 24 |
25 // Forward Declarations. | 25 // Forward Declarations. |
26 void UnicodeSet_initInclusion(int32_t src, UErrorCode &status); /**< @internal *
/ | 26 void U_CALLCONV UnicodeSet_initInclusion(int32_t src, UErrorCode &status); /**<
@internal */ |
27 | 27 |
28 class BMPSet; | 28 class BMPSet; |
29 class ParsePosition; | 29 class ParsePosition; |
30 class RBBIRuleScanner; | 30 class RBBIRuleScanner; |
31 class SymbolTable; | 31 class SymbolTable; |
32 class UnicodeSetStringSpan; | 32 class UnicodeSetStringSpan; |
33 class UVector; | 33 class UVector; |
34 class RuleCharacterIterator; | 34 class RuleCharacterIterator; |
35 | 35 |
36 /** | 36 /** |
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
266 * there are usually very few opportunities for failure other than a shortage | 266 * there are usually very few opportunities for failure other than a shortage |
267 * of memory, error codes in low-level C++ string methods would be inconvenien
t, | 267 * of memory, error codes in low-level C++ string methods would be inconvenien
t, |
268 * and the error code as the last parameter (ICU convention) would prevent | 268 * and the error code as the last parameter (ICU convention) would prevent |
269 * the use of default parameter values. | 269 * the use of default parameter values. |
270 * Instead, such methods set the UnicodeSet into a "bogus" state | 270 * Instead, such methods set the UnicodeSet into a "bogus" state |
271 * (see isBogus()) if an error occurs. | 271 * (see isBogus()) if an error occurs. |
272 * | 272 * |
273 * @author Alan Liu | 273 * @author Alan Liu |
274 * @stable ICU 2.0 | 274 * @stable ICU 2.0 |
275 */ | 275 */ |
276 class U_COMMON_API UnicodeSet : public UnicodeFilter { | 276 class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter { |
277 | 277 |
278 int32_t len; // length of list used; 0 <= len <= capacity | 278 int32_t len; // length of list used; 0 <= len <= capacity |
279 int32_t capacity; // capacity of list | 279 int32_t capacity; // capacity of list |
280 UChar32* list; // MUST be terminated with HIGH | 280 UChar32* list; // MUST be terminated with HIGH |
281 BMPSet *bmpSet; // The set is frozen iff either bmpSet or stringSpan is not
NULL. | 281 BMPSet *bmpSet; // The set is frozen iff either bmpSet or stringSpan is not
NULL. |
282 UChar32* buffer; // internal buffer, may be NULL | 282 UChar32* buffer; // internal buffer, may be NULL |
283 int32_t bufferCapacity; // capacity of buffer | 283 int32_t bufferCapacity; // capacity of buffer |
284 int32_t patLen; | 284 int32_t patLen; |
285 | 285 |
286 /** | 286 /** |
(...skipping 1295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1582 * @return a reference to this. | 1582 * @return a reference to this. |
1583 */ | 1583 */ |
1584 UnicodeSet& applyPropertyPattern(const UnicodeString& pattern, | 1584 UnicodeSet& applyPropertyPattern(const UnicodeString& pattern, |
1585 ParsePosition& ppos, | 1585 ParsePosition& ppos, |
1586 UErrorCode &ec); | 1586 UErrorCode &ec); |
1587 | 1587 |
1588 void applyPropertyPattern(RuleCharacterIterator& chars, | 1588 void applyPropertyPattern(RuleCharacterIterator& chars, |
1589 UnicodeString& rebuiltPat, | 1589 UnicodeString& rebuiltPat, |
1590 UErrorCode& ec); | 1590 UErrorCode& ec); |
1591 | 1591 |
1592 friend void UnicodeSet_initInclusion(int32_t src, UErrorCode &status); | 1592 friend void U_CALLCONV UnicodeSet_initInclusion(int32_t src, UErrorCode &sta
tus); |
1593 static const UnicodeSet* getInclusions(int32_t src, UErrorCode &status); | 1593 static const UnicodeSet* getInclusions(int32_t src, UErrorCode &status); |
1594 | 1594 |
1595 /** | 1595 /** |
1596 * A filter that returns TRUE if the given code point should be | 1596 * A filter that returns TRUE if the given code point should be |
1597 * included in the UnicodeSet being constructed. | 1597 * included in the UnicodeSet being constructed. |
1598 */ | 1598 */ |
1599 typedef UBool (*Filter)(UChar32 codePoint, void* context); | 1599 typedef UBool (*Filter)(UChar32 codePoint, void* context); |
1600 | 1600 |
1601 /** | 1601 /** |
1602 * Given a filter, set this UnicodeSet to the code points | 1602 * Given a filter, set this UnicodeSet to the code points |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1682 limit=0; | 1682 limit=0; |
1683 } else if(limit>sLength) { | 1683 } else if(limit>sLength) { |
1684 limit=sLength; | 1684 limit=sLength; |
1685 } | 1685 } |
1686 return spanBack(s.getBuffer(), limit, spanCondition); | 1686 return spanBack(s.getBuffer(), limit, spanCondition); |
1687 } | 1687 } |
1688 | 1688 |
1689 U_NAMESPACE_END | 1689 U_NAMESPACE_END |
1690 | 1690 |
1691 #endif | 1691 #endif |
OLD | NEW |