forked from unicode-org/icu-docs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbytestriebuilder_8h_source.html
205 lines (203 loc) · 29.5 KB
/
bytestriebuilder_8h_source.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ICU 74.1: common/unicode/bytestriebuilder.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">ICU 74.1<span id="projectnumber"> 74.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_bdd9a5d540de89e9fe90efdfc6973a4f.html">common</a></li><li class="navelem"><a class="el" href="dir_f59c6450ff718ff1b085cfd1c36acbd7.html">unicode</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">bytestriebuilder.h</div></div>
</div><!--header-->
<div class="contents">
<a href="bytestriebuilder_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">// © 2016 and later: Unicode, Inc. and others.</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">// License & terms of use: http://www.unicode.org/copyright.html</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">/*</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">*******************************************************************************</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">* Copyright (C) 2010-2016, International Business Machines</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">* Corporation and others. All Rights Reserved.</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">*******************************************************************************</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">* file name: bytestriebuilder.h</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">* encoding: UTF-8</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">* tab size: 8 (not used)</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">* indentation:4</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment">*</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">* created on: 2010sep25</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">* created by: Markus W. Scherer</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">*/</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#ifndef __BYTESTRIEBUILDER_H__</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#define __BYTESTRIEBUILDER_H__</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include "<a class="code" href="utypes_8h.html">unicode/utypes.h</a>"</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#if U_SHOW_CPLUSPLUS_API</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#include "<a class="code" href="bytestrie_8h.html">unicode/bytestrie.h</a>"</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#include "<a class="code" href="stringpiece_8h.html">unicode/stringpiece.h</a>"</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#include "<a class="code" href="stringtriebuilder_8h.html">unicode/stringtriebuilder.h</a>"</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="keyword">class </span>BytesTrieTest;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span>U_NAMESPACE_BEGIN</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="keyword">class </span>BytesTrieElement;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="keyword">class </span>CharString;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="classicu_1_1BytesTrieBuilder.html"> 45</a></span><span class="keyword">class </span><a class="code hl_define" href="utypes_8h.html#a559955ec3bc692657c5d8b1c6de8e334">U_COMMON_API</a> <a class="code hl_class" href="classicu_1_1BytesTrieBuilder.html">BytesTrieBuilder</a> : <span class="keyword">public</span> StringTrieBuilder {</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="classicu_1_1BytesTrieBuilder.html#a36f4bdebf1028359705ca1467da7bf2e"> 52</a></span> <a class="code hl_function" href="classicu_1_1BytesTrieBuilder.html#a36f4bdebf1028359705ca1467da7bf2e">BytesTrieBuilder</a>(<a class="code hl_enumeration" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &errorCode);</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="classicu_1_1BytesTrieBuilder.html#a854862c66e6db2302ac8d477cabffd1b"> 58</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classicu_1_1BytesTrieBuilder.html#a854862c66e6db2302ac8d477cabffd1b">~BytesTrieBuilder</a>();</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="classicu_1_1BytesTrieBuilder.html#a0a1aaa7aa3dccd06866455c2a4eefad0"> 74</a></span> <a class="code hl_class" href="classicu_1_1BytesTrieBuilder.html">BytesTrieBuilder</a> &<a class="code hl_function" href="classicu_1_1BytesTrieBuilder.html#a0a1aaa7aa3dccd06866455c2a4eefad0">add</a>(<a class="code hl_class" href="classicu_1_1StringPiece.html">StringPiece</a> s, int32_t value, <a class="code hl_enumeration" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &errorCode);</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> </div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="classicu_1_1BytesTrieBuilder.html#a30966e27055e9baeb8d63548f8ee21ee"> 94</a></span> <a class="code hl_class" href="classicu_1_1BytesTrie.html">BytesTrie</a> *<a class="code hl_function" href="classicu_1_1BytesTrieBuilder.html#a30966e27055e9baeb8d63548f8ee21ee">build</a>(<a class="code hl_enumeration" href="stringtriebuilder_8h.html#ab557ad2f18077945b8b81cf44a9233e5">UStringTrieBuildOption</a> buildOption, <a class="code hl_enumeration" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &errorCode);</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="classicu_1_1BytesTrieBuilder.html#a2dc5080052f771043674930eae602f60"> 119</a></span> <a class="code hl_class" href="classicu_1_1StringPiece.html">StringPiece</a> <a class="code hl_function" href="classicu_1_1BytesTrieBuilder.html#a2dc5080052f771043674930eae602f60">buildStringPiece</a>(<a class="code hl_enumeration" href="stringtriebuilder_8h.html#ab557ad2f18077945b8b81cf44a9233e5">UStringTrieBuildOption</a> buildOption, <a class="code hl_enumeration" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &errorCode);</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="classicu_1_1BytesTrieBuilder.html#ad7235e5f67e4c691fea54e07e6b18e74"> 127</a></span> <a class="code hl_class" href="classicu_1_1BytesTrieBuilder.html">BytesTrieBuilder</a> &<a class="code hl_function" href="classicu_1_1BytesTrieBuilder.html#ad7235e5f67e4c691fea54e07e6b18e74">clear</a>();</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keyword">friend</span> class ::BytesTrieTest;</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <a class="code hl_class" href="classicu_1_1BytesTrieBuilder.html">BytesTrieBuilder</a>(<span class="keyword">const</span> <a class="code hl_class" href="classicu_1_1BytesTrieBuilder.html">BytesTrieBuilder</a> &other) = <span class="keyword">delete</span>; <span class="comment">// no copy constructor</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <a class="code hl_class" href="classicu_1_1BytesTrieBuilder.html">BytesTrieBuilder</a> &operator=(<span class="keyword">const</span> <a class="code hl_class" href="classicu_1_1BytesTrieBuilder.html">BytesTrieBuilder</a> &other) = <span class="keyword">delete</span>; <span class="comment">// no assignment operator</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordtype">void</span> buildBytes(<a class="code hl_enumeration" href="stringtriebuilder_8h.html#ab557ad2f18077945b8b81cf44a9233e5">UStringTrieBuildOption</a> buildOption, <a class="code hl_enumeration" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &errorCode);</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">virtual</span> int32_t getElementStringLength(int32_t i) <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">virtual</span> <span class="keywordtype">char16_t</span> getElementUnit(int32_t i, int32_t byteIndex) <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">virtual</span> int32_t getElementValue(int32_t i) <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">virtual</span> int32_t getLimitOfLinearMatch(int32_t first, int32_t last, int32_t byteIndex) <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">virtual</span> int32_t countElementUnits(int32_t start, int32_t limit, int32_t byteIndex) <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">virtual</span> int32_t skipElementsBySomeUnits(int32_t i, int32_t byteIndex, int32_t count) <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">virtual</span> int32_t indexOfElementWithNextUnit(int32_t i, int32_t byteIndex, <span class="keywordtype">char16_t</span> <span class="keywordtype">byte</span>) <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> </div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keyword">virtual</span> <a class="code hl_typedef" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> matchNodesCanHaveValues()<span class="keyword"> const override </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> </div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">virtual</span> int32_t getMaxBranchLinearSubNodeLength()<span class="keyword"> const override </span>{ <span class="keywordflow">return</span> BytesTrie::kMaxBranchLinearSubNodeLength; }</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">virtual</span> int32_t getMinLinearMatch()<span class="keyword"> const override </span>{ <span class="keywordflow">return</span> BytesTrie::kMinLinearMatch; }</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">virtual</span> int32_t getMaxLinearMatchLength()<span class="keyword"> const override </span>{ <span class="keywordflow">return</span> BytesTrie::kMaxLinearMatchLength; }</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> </div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">class </span>BTLinearMatchNode : <span class="keyword">public</span> LinearMatchNode {</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> BTLinearMatchNode(<span class="keyword">const</span> <span class="keywordtype">char</span> *units, int32_t len, Node *nextNode);</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceicu.html#a1c2f6ca43e636f38d1a3291eb851e9f0">operator==</a>(<span class="keyword">const</span> Node &other) <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> write(StringTrieBuilder &builder) <span class="keyword">override</span>;</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *s;</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> };</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">virtual</span> Node *createLinearMatchNode(int32_t i, int32_t byteIndex, int32_t length,</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> Node *nextNode) <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> </div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <a class="code hl_typedef" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> ensureCapacity(int32_t length);</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keyword">virtual</span> int32_t write(int32_t <span class="keywordtype">byte</span>) <span class="keyword">override</span>;</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> int32_t write(<span class="keyword">const</span> <span class="keywordtype">char</span> *b, int32_t length);</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">virtual</span> int32_t writeElementUnits(int32_t i, int32_t byteIndex, int32_t length) <span class="keyword">override</span>;</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">virtual</span> int32_t writeValueAndFinal(int32_t i, <a class="code hl_typedef" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> isFinal) <span class="keyword">override</span>;</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">virtual</span> int32_t writeValueAndType(<a class="code hl_typedef" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> hasValue, int32_t value, int32_t node) <span class="keyword">override</span>;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">virtual</span> int32_t writeDeltaTo(int32_t jumpTarget) <span class="keyword">override</span>;</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="keyword">static</span> int32_t internalEncodeDelta(int32_t i, <span class="keywordtype">char</span> intBytes[]);</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> CharString *strings; <span class="comment">// Pointer not object so we need not #include internal charstr.h.</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> BytesTrieElement *elements;</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> int32_t elementsCapacity;</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> int32_t elementsLength;</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> </div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="comment">// Byte serialization of the trie.</span></div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="comment">// Grows from the back: bytesLength measures from the end of the buffer!</span></div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <span class="keywordtype">char</span> *bytes;</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> int32_t bytesCapacity;</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> int32_t bytesLength;</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span>};</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> </div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span>U_NAMESPACE_END</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> </div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span><span class="preprocessor">#endif </span><span class="comment">/* U_SHOW_CPLUSPLUS_API */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> </div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span><span class="preprocessor">#endif </span><span class="comment">// __BYTESTRIEBUILDER_H__</span></div>
<div class="ttc" id="abytestrie_8h_html"><div class="ttname"><a href="bytestrie_8h.html">bytestrie.h</a></div><div class="ttdoc">C++ API: Trie for mapping byte sequences to integer values.</div></div>
<div class="ttc" id="aclassicu_1_1BytesTrieBuilder_html"><div class="ttname"><a href="classicu_1_1BytesTrieBuilder.html">icu::BytesTrieBuilder</a></div><div class="ttdoc">Builder class for BytesTrie.</div><div class="ttdef"><b>Definition:</b> <a href="bytestriebuilder_8h_source.html#l00045">bytestriebuilder.h:45</a></div></div>
<div class="ttc" id="aclassicu_1_1BytesTrieBuilder_html_a0a1aaa7aa3dccd06866455c2a4eefad0"><div class="ttname"><a href="classicu_1_1BytesTrieBuilder.html#a0a1aaa7aa3dccd06866455c2a4eefad0">icu::BytesTrieBuilder::add</a></div><div class="ttdeci">BytesTrieBuilder & add(StringPiece s, int32_t value, UErrorCode &errorCode)</div><div class="ttdoc">Adds a (byte sequence, value) pair.</div></div>
<div class="ttc" id="aclassicu_1_1BytesTrieBuilder_html_a2dc5080052f771043674930eae602f60"><div class="ttname"><a href="classicu_1_1BytesTrieBuilder.html#a2dc5080052f771043674930eae602f60">icu::BytesTrieBuilder::buildStringPiece</a></div><div class="ttdeci">StringPiece buildStringPiece(UStringTrieBuildOption buildOption, UErrorCode &errorCode)</div><div class="ttdoc">Builds a BytesTrie for the add()ed data and byte-serializes it.</div></div>
<div class="ttc" id="aclassicu_1_1BytesTrieBuilder_html_a30966e27055e9baeb8d63548f8ee21ee"><div class="ttname"><a href="classicu_1_1BytesTrieBuilder.html#a30966e27055e9baeb8d63548f8ee21ee">icu::BytesTrieBuilder::build</a></div><div class="ttdeci">BytesTrie * build(UStringTrieBuildOption buildOption, UErrorCode &errorCode)</div><div class="ttdoc">Builds a BytesTrie for the add()ed data.</div></div>
<div class="ttc" id="aclassicu_1_1BytesTrieBuilder_html_a36f4bdebf1028359705ca1467da7bf2e"><div class="ttname"><a href="classicu_1_1BytesTrieBuilder.html#a36f4bdebf1028359705ca1467da7bf2e">icu::BytesTrieBuilder::BytesTrieBuilder</a></div><div class="ttdeci">BytesTrieBuilder(UErrorCode &errorCode)</div><div class="ttdoc">Constructs an empty builder.</div></div>
<div class="ttc" id="aclassicu_1_1BytesTrieBuilder_html_a854862c66e6db2302ac8d477cabffd1b"><div class="ttname"><a href="classicu_1_1BytesTrieBuilder.html#a854862c66e6db2302ac8d477cabffd1b">icu::BytesTrieBuilder::~BytesTrieBuilder</a></div><div class="ttdeci">virtual ~BytesTrieBuilder()</div><div class="ttdoc">Destructor.</div></div>
<div class="ttc" id="aclassicu_1_1BytesTrieBuilder_html_ad7235e5f67e4c691fea54e07e6b18e74"><div class="ttname"><a href="classicu_1_1BytesTrieBuilder.html#ad7235e5f67e4c691fea54e07e6b18e74">icu::BytesTrieBuilder::clear</a></div><div class="ttdeci">BytesTrieBuilder & clear()</div><div class="ttdoc">Removes all (byte sequence, value) pairs.</div></div>
<div class="ttc" id="aclassicu_1_1BytesTrie_html"><div class="ttname"><a href="classicu_1_1BytesTrie.html">icu::BytesTrie</a></div><div class="ttdoc">Light-weight, non-const reader class for a BytesTrie.</div><div class="ttdef"><b>Definition:</b> <a href="bytestrie_8h_source.html#l00055">bytestrie.h:55</a></div></div>
<div class="ttc" id="aclassicu_1_1StringPiece_html"><div class="ttname"><a href="classicu_1_1StringPiece.html">icu::StringPiece</a></div><div class="ttdoc">A string-like object that points to a sized piece of memory.</div><div class="ttdef"><b>Definition:</b> <a href="stringpiece_8h_source.html#l00060">stringpiece.h:60</a></div></div>
<div class="ttc" id="anamespaceicu_html_a1c2f6ca43e636f38d1a3291eb851e9f0"><div class="ttname"><a href="namespaceicu.html#a1c2f6ca43e636f38d1a3291eb851e9f0">icu::operator==</a></div><div class="ttdeci">U_EXPORT UBool operator==(const StringPiece &x, const StringPiece &y)</div><div class="ttdoc">Global operator == for StringPiece.</div></div>
<div class="ttc" id="astringpiece_8h_html"><div class="ttname"><a href="stringpiece_8h.html">stringpiece.h</a></div><div class="ttdoc">C++ API: StringPiece: Read-only byte string wrapper class.</div></div>
<div class="ttc" id="astringtriebuilder_8h_html"><div class="ttname"><a href="stringtriebuilder_8h.html">stringtriebuilder.h</a></div><div class="ttdoc">C++ API: Builder API for trie builders.</div></div>
<div class="ttc" id="astringtriebuilder_8h_html_ab557ad2f18077945b8b81cf44a9233e5"><div class="ttname"><a href="stringtriebuilder_8h.html#ab557ad2f18077945b8b81cf44a9233e5">UStringTrieBuildOption</a></div><div class="ttdeci">UStringTrieBuildOption</div><div class="ttdoc">Build options for BytesTrieBuilder and CharsTrieBuilder.</div><div class="ttdef"><b>Definition:</b> <a href="stringtriebuilder_8h_source.html#l00041">stringtriebuilder.h:41</a></div></div>
<div class="ttc" id="aumachine_8h_html_a349ef00011f20ccd1d3b424445681aa5"><div class="ttname"><a href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a></div><div class="ttdeci">int8_t UBool</div><div class="ttdoc">The ICU boolean type, a signed-byte integer.</div><div class="ttdef"><b>Definition:</b> <a href="umachine_8h_source.html#l00247">umachine.h:247</a></div></div>
<div class="ttc" id="autypes_8h_html"><div class="ttname"><a href="utypes_8h.html">utypes.h</a></div><div class="ttdoc">Basic definitions for ICU, for both C and C++ APIs.</div></div>
<div class="ttc" id="autypes_8h_html_a3343c1c8a8377277046774691c98d78c"><div class="ttname"><a href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a></div><div class="ttdeci">UErrorCode</div><div class="ttdoc">Standard ICU4C error code type, a substitute for exceptions.</div><div class="ttdef"><b>Definition:</b> <a href="utypes_8h_source.html#l00415">utypes.h:415</a></div></div>
<div class="ttc" id="autypes_8h_html_a559955ec3bc692657c5d8b1c6de8e334"><div class="ttname"><a href="utypes_8h.html#a559955ec3bc692657c5d8b1c6de8e334">U_COMMON_API</a></div><div class="ttdeci">#define U_COMMON_API</div><div class="ttdoc">Set to export library symbols from inside the common library, and to import them from outside.</div><div class="ttdef"><b>Definition:</b> <a href="utypes_8h_source.html#l00300">utypes.h:300</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>