ICU 64.2  64.2
umutablecptrie.h
Go to the documentation of this file.
1 // © 2017 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 
4 // umutablecptrie.h (split out of ucptrie.h)
5 // created: 2018jan24 Markus W. Scherer
6 
7 #ifndef __UMUTABLECPTRIE_H__
8 #define __UMUTABLECPTRIE_H__
9 
10 #include "unicode/utypes.h"
11 
12 #ifndef U_HIDE_DRAFT_API
13 
14 #include "unicode/localpointer.h"
15 #include "unicode/ucpmap.h"
16 #include "unicode/ucptrie.h"
17 #include "unicode/utf8.h"
18 
20 
50 
64 U_CAPI UMutableCPTrie * U_EXPORT2
65 umutablecptrie_open(uint32_t initialValue, uint32_t errorValue, UErrorCode *pErrorCode);
66 
76 U_CAPI UMutableCPTrie * U_EXPORT2
77 umutablecptrie_clone(const UMutableCPTrie *other, UErrorCode *pErrorCode);
78 
85 U_CAPI void U_EXPORT2
87 
88 #if U_SHOW_CPLUSPLUS_API
89 
91 
102 
104 
105 #endif
106 
116 U_CAPI UMutableCPTrie * U_EXPORT2
117 umutablecptrie_fromUCPMap(const UCPMap *map, UErrorCode *pErrorCode);
118 
128 U_CAPI UMutableCPTrie * U_EXPORT2
129 umutablecptrie_fromUCPTrie(const UCPTrie *trie, UErrorCode *pErrorCode);
130 
139 U_CAPI uint32_t U_EXPORT2
141 
171 U_CAPI UChar32 U_EXPORT2
173  UCPMapRangeOption option, uint32_t surrogateValue,
174  UCPMapValueFilter *filter, const void *context, uint32_t *pValue);
175 
185 U_CAPI void U_EXPORT2
186 umutablecptrie_set(UMutableCPTrie *trie, UChar32 c, uint32_t value, UErrorCode *pErrorCode);
187 
199 U_CAPI void U_EXPORT2
201  UChar32 start, UChar32 end,
202  uint32_t value, UErrorCode *pErrorCode);
203 
234 U_CAPI UCPTrie * U_EXPORT2
236  UErrorCode *pErrorCode);
237 
239 
240 #endif // U_HIDE_DRAFT_API
241 #endif
U_CAPI UMutableCPTrie * umutablecptrie_open(uint32_t initialValue, uint32_t errorValue, UErrorCode *pErrorCode)
Creates a mutable trie that initially maps each Unicode code point to the same value.
UCPMapRangeOption
Selectors for how ucpmap_getRange() etc.
Definition: ucpmap.h:44
struct UCPMap UCPMap
Abstract map from Unicode code points (U+0000..U+10FFFF) to integer values.
Definition: ucpmap.h:33
#define U_CAPI
This is used to declare a function as a public ICU C API.
Definition: umachine.h:109
U_CAPI void umutablecptrie_set(UMutableCPTrie *trie, UChar32 c, uint32_t value, UErrorCode *pErrorCode)
Sets a value for a code point.
UCPTrieValueWidth
Selectors for the number of bits in a UCPTrie data value.
Definition: ucptrie.h:150
Immutable Unicode code point trie structure.
Definition: ucptrie.h:60
This file defines an abstract map from Unicode code points to integer values.
U_CAPI UCPTrie * umutablecptrie_buildImmutable(UMutableCPTrie *trie, UCPTrieType type, UCPTrieValueWidth valueWidth, UErrorCode *pErrorCode)
Compacts the data and builds an immutable UCPTrie according to the parameters.
C API: 8-bit Unicode handling macros.
U_CAPI void umutablecptrie_setRange(UMutableCPTrie *trie, UChar32 start, UChar32 end, uint32_t value, UErrorCode *pErrorCode)
Sets a value for each code point [start..end].
#define U_CDECL_BEGIN
This is used to begin a declaration of a library private ICU C API.
Definition: umachine.h:84
U_CAPI UMutableCPTrie * umutablecptrie_fromUCPTrie(const UCPTrie *trie, UErrorCode *pErrorCode)
Creates a mutable trie with the same contents as the immutable one.
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:137
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
Definition: localpointer.h:562
U_CAPI UMutableCPTrie * umutablecptrie_fromUCPMap(const UCPMap *map, UErrorCode *pErrorCode)
Creates a mutable trie with the same contents as the UCPMap.
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
uint32_t UCPMapValueFilter(const void *context, uint32_t value)
Callback function type: Modifies a map value.
Definition: ucpmap.h:116
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
Definition: umachine.h:389
This file defines an immutable Unicode code point trie.
#define U_CDECL_END
This is used to end a declaration of a library private ICU C API.
Definition: umachine.h:85
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition: uversion.h:138
U_CAPI UMutableCPTrie * umutablecptrie_clone(const UMutableCPTrie *other, UErrorCode *pErrorCode)
Clones a mutable trie.
U_CAPI UChar32 umutablecptrie_getRange(const UMutableCPTrie *trie, UChar32 start, UCPMapRangeOption option, uint32_t surrogateValue, UCPMapValueFilter *filter, const void *context, uint32_t *pValue)
Returns the last code point such that all those from start to there have the same value...
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
Definition: utypes.h:401
"Smart pointer" class, closes a UMutableCPTrie via umutablecptrie_close().
struct UMutableCPTrie UMutableCPTrie
Mutable Unicode code point trie.
Basic definitions for ICU, for both C and C++ APIs.
UCPTrieType
Selectors for the type of a UCPTrie.
Definition: ucptrie.h:120
U_CAPI uint32_t umutablecptrie_get(const UMutableCPTrie *trie, UChar32 c)
Returns the value for a code point as stored in the trie.
U_CAPI void umutablecptrie_close(UMutableCPTrie *trie)
Closes a mutable trie and releases associated memory.