00001
00002
00003
00004
00005
00006
00007 #ifndef __UMUTABLECPTRIE_H__
00008 #define __UMUTABLECPTRIE_H__
00009
00010 #include "unicode/utypes.h"
00011
00012 #ifndef U_HIDE_DRAFT_API
00013
00014 #include "unicode/localpointer.h"
00015 #include "unicode/ucpmap.h"
00016 #include "unicode/ucptrie.h"
00017 #include "unicode/utf8.h"
00018
00019 U_CDECL_BEGIN
00020
00049 typedef struct UMutableCPTrie UMutableCPTrie;
00050
00064 U_CAPI UMutableCPTrie * U_EXPORT2
00065 umutablecptrie_open(uint32_t initialValue, uint32_t errorValue, UErrorCode *pErrorCode);
00066
00076 U_CAPI UMutableCPTrie * U_EXPORT2
00077 umutablecptrie_clone(const UMutableCPTrie *other, UErrorCode *pErrorCode);
00078
00085 U_CAPI void U_EXPORT2
00086 umutablecptrie_close(UMutableCPTrie *trie);
00087
00088 #if U_SHOW_CPLUSPLUS_API
00089
00090 U_NAMESPACE_BEGIN
00091
00101 U_DEFINE_LOCAL_OPEN_POINTER(LocalUMutableCPTriePointer, UMutableCPTrie, umutablecptrie_close);
00102
00103 U_NAMESPACE_END
00104
00105 #endif
00106
00116 U_CAPI UMutableCPTrie * U_EXPORT2
00117 umutablecptrie_fromUCPMap(const UCPMap *map, UErrorCode *pErrorCode);
00118
00128 U_CAPI UMutableCPTrie * U_EXPORT2
00129 umutablecptrie_fromUCPTrie(const UCPTrie *trie, UErrorCode *pErrorCode);
00130
00139 U_CAPI uint32_t U_EXPORT2
00140 umutablecptrie_get(const UMutableCPTrie *trie, UChar32 c);
00141
00171 U_CAPI UChar32 U_EXPORT2
00172 umutablecptrie_getRange(const UMutableCPTrie *trie, UChar32 start,
00173 UCPMapRangeOption option, uint32_t surrogateValue,
00174 UCPMapValueFilter *filter, const void *context, uint32_t *pValue);
00175
00185 U_CAPI void U_EXPORT2
00186 umutablecptrie_set(UMutableCPTrie *trie, UChar32 c, uint32_t value, UErrorCode *pErrorCode);
00187
00199 U_CAPI void U_EXPORT2
00200 umutablecptrie_setRange(UMutableCPTrie *trie,
00201 UChar32 start, UChar32 end,
00202 uint32_t value, UErrorCode *pErrorCode);
00203
00234 U_CAPI UCPTrie * U_EXPORT2
00235 umutablecptrie_buildImmutable(UMutableCPTrie *trie, UCPTrieType type, UCPTrieValueWidth valueWidth,
00236 UErrorCode *pErrorCode);
00237
00238 U_CDECL_END
00239
00240 #endif // U_HIDE_DRAFT_API
00241 #endif