- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

# uset.h

Go to the documentation of this file.

    00001 /*
    00002 *******************************************************************************
    00003 *
    00004 *   Copyright (C) 2002-2010, International Business Machines
    00005 *   Corporation and others.  All Rights Reserved.
    00006 *
    00007 *******************************************************************************
    00008 *   file name:  uset.h
    00009 *   encoding:   US-ASCII
    00010 *   tab size:   8 (not used)
    00011 *   indentation:4
    00012 *
    00013 *   created on: 2002mar07
    00014 *   created by: Markus W. Scherer
    00015 *
    00016 *   C version of UnicodeSet.
    00017 */
    00018
    00019
    00027 #ifndef __USET_H__
    00028 #define __USET_H__
    00029
    00030 #include "unicode/utypes.h"
    00031 #include "unicode/uchar.h"
    00032 #include "unicode/localpointer.h"
    00033
    00034 #ifndef UCNV_H
    00035 struct USet;
    00041 typedef struct USet USet;
    00042 #endif
    00043
    00049 enum {
    00054     USET_IGNORE_SPACE = 1,
    00055
    00082     USET_CASE_INSENSITIVE = 2,
    00083
    00092     USET_ADD_CASE_MAPPINGS = 4,
    00093
    00098     USET_SERIALIZED_STATIC_ARRAY_CAPACITY=8
    00099 };
    00100
    00156 typedef enum USetSpanCondition {
    00168     USET_SPAN_NOT_CONTAINED = 0,
    00183     USET_SPAN_CONTAINED = 1,
    00202     USET_SPAN_SIMPLE = 2,
    00207     USET_SPAN_CONDITION_COUNT
    00208 } USetSpanCondition;
    00209
    00215 typedef struct USerializedSet {
    00220     const uint16_t *array;
    00225     int32_t bmpLength;
    00230     int32_t length;
    00235     uint16_t staticArray[USET_SERIALIZED_STATIC_ARRAY_CAPACITY];
    00236 } USerializedSet;
    00237
    00238 /*********************************************************************
    00239  * USet API
    00240  *********************************************************************/
    00241
    00249 U_STABLE USet* U_EXPORT2
    00250 uset_openEmpty();
    00251
    00262 U_STABLE USet* U_EXPORT2
    00263 uset_open(UChar32 start, UChar32 end);
    00264
    00274 U_STABLE USet* U_EXPORT2
    00275 uset_openPattern(const UChar* pattern, int32_t patternLength,
    00276                  UErrorCode* ec);
    00277
    00289 U_STABLE USet* U_EXPORT2
    00290 uset_openPatternOptions(const UChar* pattern, int32_t patternLength,
    00291                  uint32_t options,
    00292                  UErrorCode* ec);
    00293
    00300 U_STABLE void U_EXPORT2
    00301 uset_close(USet* set);
    00302
    00303 #if U_SHOW_CPLUSPLUS_API
    00304
    00305 U_NAMESPACE_BEGIN
    00306
    00316 U_DEFINE_LOCAL_OPEN_POINTER(LocalUSetPointer, USet, uset_close);
    00317
    00318 U_NAMESPACE_END
    00319
    00320 #endif
    00321
    00331 U_STABLE USet * U_EXPORT2
    00332 uset_clone(const USet *set);
    00333
    00343 U_STABLE UBool U_EXPORT2
    00344 uset_isFrozen(const USet *set);
    00345
    00360 U_STABLE void U_EXPORT2
    00361 uset_freeze(USet *set);
    00362
    00373 U_STABLE USet * U_EXPORT2
    00374 uset_cloneAsThawed(const USet *set);
    00375
    00385 U_STABLE void U_EXPORT2
    00386 uset_set(USet* set,
    00387          UChar32 start, UChar32 end);
    00388
    00410 U_STABLE int32_t U_EXPORT2
    00411 uset_applyPattern(USet *set,
    00412                   const UChar *pattern, int32_t patternLength,
    00413                   uint32_t options,
    00414                   UErrorCode *status);
    00415
    00438 U_STABLE void U_EXPORT2
    00439 uset_applyIntPropertyValue(USet* set,
    00440                            UProperty prop, int32_t value, UErrorCode* ec);
    00441
    00477 U_STABLE void U_EXPORT2
    00478 uset_applyPropertyAlias(USet* set,
    00479                         const UChar *prop, int32_t propLength,
    00480                         const UChar *value, int32_t valueLength,
    00481                         UErrorCode* ec);
    00482
    00492 U_STABLE UBool U_EXPORT2
    00493 uset_resemblesPattern(const UChar *pattern, int32_t patternLength,
    00494                       int32_t pos);
    00495
    00511 U_STABLE int32_t U_EXPORT2
    00512 uset_toPattern(const USet* set,
    00513                UChar* result, int32_t resultCapacity,
    00514                UBool escapeUnprintable,
    00515                UErrorCode* ec);
    00516
    00525 U_STABLE void U_EXPORT2
    00526 uset_add(USet* set, UChar32 c);
    00527
    00540 U_STABLE void U_EXPORT2
    00541 uset_addAll(USet* set, const USet *additionalSet);
    00542
    00552 U_STABLE void U_EXPORT2
    00553 uset_addRange(USet* set, UChar32 start, UChar32 end);
    00554
    00564 U_STABLE void U_EXPORT2
    00565 uset_addString(USet* set, const UChar* str, int32_t strLen);
    00566
    00576 U_STABLE void U_EXPORT2
    00577 uset_addAllCodePoints(USet* set, const UChar *str, int32_t strLen);
    00578
    00587 U_STABLE void U_EXPORT2
    00588 uset_remove(USet* set, UChar32 c);
    00589
    00599 U_STABLE void U_EXPORT2
    00600 uset_removeRange(USet* set, UChar32 start, UChar32 end);
    00601
    00611 U_STABLE void U_EXPORT2
    00612 uset_removeString(USet* set, const UChar* str, int32_t strLen);
    00613
    00625 U_STABLE void U_EXPORT2
    00626 uset_removeAll(USet* set, const USet* removeSet);
    00627
    00642 U_STABLE void U_EXPORT2
    00643 uset_retain(USet* set, UChar32 start, UChar32 end);
    00644
    00657 U_STABLE void U_EXPORT2
    00658 uset_retainAll(USet* set, const USet* retain);
    00659
    00668 U_STABLE void U_EXPORT2
    00669 uset_compact(USet* set);
    00670
    00679 U_STABLE void U_EXPORT2
    00680 uset_complement(USet* set);
    00681
    00693 U_STABLE void U_EXPORT2
    00694 uset_complementAll(USet* set, const USet* complement);
    00695
    00703 U_STABLE void U_EXPORT2
    00704 uset_clear(USet* set);
    00705
    00732 U_STABLE void U_EXPORT2
    00733 uset_closeOver(USet* set, int32_t attributes);
    00734
    00741 U_STABLE void U_EXPORT2
    00742 uset_removeAllStrings(USet* set);
    00743
    00751 U_STABLE UBool U_EXPORT2
    00752 uset_isEmpty(const USet* set);
    00753
    00762 U_STABLE UBool U_EXPORT2
    00763 uset_contains(const USet* set, UChar32 c);
    00764
    00774 U_STABLE UBool U_EXPORT2
    00775 uset_containsRange(const USet* set, UChar32 start, UChar32 end);
    00776
    00785 U_STABLE UBool U_EXPORT2
    00786 uset_containsString(const USet* set, const UChar* str, int32_t strLen);
    00787
    00798 U_STABLE int32_t U_EXPORT2
    00799 uset_indexOf(const USet* set, UChar32 c);
    00800
    00811 U_STABLE UChar32 U_EXPORT2
    00812 uset_charAt(const USet* set, int32_t charIndex);
    00813
    00822 U_STABLE int32_t U_EXPORT2
    00823 uset_size(const USet* set);
    00824
    00833 U_STABLE int32_t U_EXPORT2
    00834 uset_getItemCount(const USet* set);
    00835
    00854 U_STABLE int32_t U_EXPORT2
    00855 uset_getItem(const USet* set, int32_t itemIndex,
    00856              UChar32* start, UChar32* end,
    00857              UChar* str, int32_t strCapacity,
    00858              UErrorCode* ec);
    00859
    00868 U_STABLE UBool U_EXPORT2
    00869 uset_containsAll(const USet* set1, const USet* set2);
    00870
    00881 U_STABLE UBool U_EXPORT2
    00882 uset_containsAllCodePoints(const USet* set, const UChar *str, int32_t strLen);
    00883
    00892 U_STABLE UBool U_EXPORT2
    00893 uset_containsNone(const USet* set1, const USet* set2);
    00894
    00903 U_STABLE UBool U_EXPORT2
    00904 uset_containsSome(const USet* set1, const USet* set2);
    00905
    00925 U_STABLE int32_t U_EXPORT2
    00926 uset_span(const USet *set, const UChar *s, int32_t length, USetSpanCondition spanCondition);
    00927
    00946 U_STABLE int32_t U_EXPORT2
    00947 uset_spanBack(const USet *set, const UChar *s, int32_t length, USetSpanCondition spanCondition);
    00948
    00968 U_STABLE int32_t U_EXPORT2
    00969 uset_spanUTF8(const USet *set, const char *s, int32_t length, USetSpanCondition spanCondition);
    00970
    00989 U_STABLE int32_t U_EXPORT2
    00990 uset_spanBackUTF8(const USet *set, const char *s, int32_t length, USetSpanCondition spanCondition);
    00991
    01000 U_STABLE UBool U_EXPORT2
    01001 uset_equals(const USet* set1, const USet* set2);
    01002
    01003 /*********************************************************************
    01004  * Serialized set API
    01005  *********************************************************************/
    01006
    01056 U_STABLE int32_t U_EXPORT2
    01057 uset_serialize(const USet* set, uint16_t* dest, int32_t destCapacity, UErrorCode* pErrorCode);
    01058
    01067 U_STABLE UBool U_EXPORT2
    01068 uset_getSerializedSet(USerializedSet* fillSet, const uint16_t* src, int32_t srcLength);
    01069
    01077 U_STABLE void U_EXPORT2
    01078 uset_setSerializedToOne(USerializedSet* fillSet, UChar32 c);
    01079
    01088 U_STABLE UBool U_EXPORT2
    01089 uset_serializedContains(const USerializedSet* set, UChar32 c);
    01090
    01100 U_STABLE int32_t U_EXPORT2
    01101 uset_getSerializedRangeCount(const USerializedSet* set);
    01102
    01116 U_STABLE UBool U_EXPORT2
    01117 uset_getSerializedRange(const USerializedSet* set, int32_t rangeIndex,
    01118                         UChar32* pStart, UChar32* pEnd);
    01119
    01120 #endif

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines