<!-- This comment will put IE 6, 7 and 8 in quirks mode --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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"/> <title>ICU 4.4.1: rbbi.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javaScript" src="search/search.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body onload='searchBox.OnSelectItem(0);'> <!-- Generated by Doxygen 1.6.2-20100208 --> <script type="text/javascript"><!-- var searchBox = new SearchBox("searchBox", "search",false,'Search'); --></script> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li> <div id="MSearchBox" class="MSearchBoxInactive"> <img id="MSearchSelect" src="search/search.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </div> </li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <h1>rbbi.h</h1><a href="rbbi_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span> <a name="l00002"></a>00002 <span class="comment">***************************************************************************</span> <a name="l00003"></a>00003 <span class="comment">* Copyright (C) 1999-2008 International Business Machines Corporation *</span> <a name="l00004"></a>00004 <span class="comment">* and others. All rights reserved. *</span> <a name="l00005"></a>00005 <span class="comment">***************************************************************************</span> <a name="l00006"></a>00006 <span class="comment"></span> <a name="l00007"></a>00007 <span class="comment">**********************************************************************</span> <a name="l00008"></a>00008 <span class="comment">* Date Name Description</span> <a name="l00009"></a>00009 <span class="comment">* 10/22/99 alan Creation.</span> <a name="l00010"></a>00010 <span class="comment">* 11/11/99 rgillam Complete port from Java.</span> <a name="l00011"></a>00011 <span class="comment">**********************************************************************</span> <a name="l00012"></a>00012 <span class="comment">*/</span> <a name="l00013"></a>00013 <a name="l00014"></a>00014 <span class="preprocessor">#ifndef RBBI_H</span> <a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#define RBBI_H</span> <a name="l00016"></a>00016 <span class="preprocessor"></span> <a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="utypes_8h.html" title="Basic definitions for ICU, for both C and C++ APIs.">unicode/utypes.h</a>"</span> <a name="l00018"></a>00018 <a name="l00024"></a>00024 <span class="preprocessor">#if !UCONFIG_NO_BREAK_ITERATION</span> <a name="l00025"></a>00025 <span class="preprocessor"></span> <a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="brkiter_8h.html" title="C++ API: Break Iterator.">unicode/brkiter.h</a>"</span> <a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="udata_8h.html" title="C API: Data loading interface.">unicode/udata.h</a>"</span> <a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="parseerr_8h.html" title="C API: Parse Error Information.">unicode/parseerr.h</a>"</span> <a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="schriter_8h.html" title="C++ API: String Character Iterator.">unicode/schriter.h</a>"</span> <a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="uchriter_8h.html" title="C++ API: UChar Character Iterator.">unicode/uchriter.h</a>"</span> <a name="l00031"></a>00031 <a name="l00032"></a>00032 <a name="l00033"></a>00033 <span class="keyword">struct </span>UTrie; <a name="l00034"></a>00034 <a name="l00035"></a>00035 <a class="code" href="uversion_8h.html#a7d9374e037299886d4192b763b4c5e8b" title="This is used to begin a declaration of a public ICU C++ API.">U_NAMESPACE_BEGIN</a> <a name="l00036"></a>00036 <a name="l00038"></a>00038 <span class="keyword">struct </span>RBBIDataHeader; <a name="l00039"></a>00039 <span class="keyword">class </span>RuleBasedBreakIteratorTables; <a name="l00040"></a>00040 <span class="keyword">class </span><a class="code" href="classBreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries...">BreakIterator</a>; <a name="l00041"></a>00041 <span class="keyword">class </span>RBBIDataWrapper; <a name="l00042"></a>00042 <span class="keyword">class </span>UStack; <a name="l00043"></a>00043 <span class="keyword">class </span>LanguageBreakEngine; <a name="l00044"></a>00044 <span class="keyword">class </span>UnhandledEngine; <a name="l00045"></a>00045 <span class="keyword">struct </span>RBBIStateTable; <a name="l00046"></a>00046 <a name="l00047"></a>00047 <a name="l00048"></a>00048 <a name="l00049"></a>00049 <a name="l00065"></a><a class="code" href="classRuleBasedBreakIterator.html">00065</a> <span class="keyword">class </span><a class="code" href="utypes_8h.html#a559955ec3bc692657c5d8b1c6de8e334" title="Set to export library symbols from inside the common library, and to import them...">U_COMMON_API</a> <a class="code" href="classRuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a> : <span class="keyword">public</span> <a class="code" href="classBreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries...">BreakIterator</a> { <a name="l00066"></a>00066 <a name="l00067"></a>00067 <span class="keyword">protected</span>: <a name="l00072"></a><a class="code" href="classRuleBasedBreakIterator.html#a419b7e787fe701da59edf938ec338348">00072</a> <a class="code" href="structUText.html" title="UText struct.">UText</a> *fText; <a name="l00073"></a>00073 <a name="l00079"></a><a class="code" href="classRuleBasedBreakIterator.html#ae31cd176a5f569eeaad260232078e1c4">00079</a> <a class="code" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a> *fCharIter; <a name="l00080"></a>00080 <a name="l00086"></a><a class="code" href="classRuleBasedBreakIterator.html#ab167d8622058e5c0d417dd43ef83edda">00086</a> <a class="code" href="classStringCharacterIterator.html" title="A concrete subclass of CharacterIterator that iterates over the characters (code...">StringCharacterIterator</a> *fSCharIter; <a name="l00087"></a>00087 <a name="l00093"></a><a class="code" href="classRuleBasedBreakIterator.html#ad276784df08fcac79d039533a1341cdb">00093</a> <a class="code" href="classUCharCharacterIterator.html" title="A concrete subclass of CharacterIterator that iterates over the characters (code...">UCharCharacterIterator</a> *fDCharIter; <a name="l00094"></a>00094 <a name="l00099"></a><a class="code" href="classRuleBasedBreakIterator.html#a9e4c4ce2df8bd5ec86eb24029f536fc1">00099</a> RBBIDataWrapper *fData; <a name="l00100"></a>00100 <a name="l00104"></a><a class="code" href="classRuleBasedBreakIterator.html#a0334069f3c4a9384836be7e76f8553a3">00104</a> int32_t fLastRuleStatusIndex; <a name="l00105"></a>00105 <a name="l00112"></a><a class="code" href="classRuleBasedBreakIterator.html#a724ee27f3375cb4a18a0268ddddc4e78">00112</a> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> fLastStatusIndexValid; <a name="l00113"></a>00113 <a name="l00119"></a><a class="code" href="classRuleBasedBreakIterator.html#a7491e4622823085f822618797ac62643">00119</a> uint32_t fDictionaryCharCount; <a name="l00120"></a>00120 <a name="l00128"></a><a class="code" href="classRuleBasedBreakIterator.html#a56b061a55c91c2f45263213b4188e19d">00128</a> int32_t* fCachedBreakPositions; <a name="l00129"></a>00129 <a name="l00134"></a><a class="code" href="classRuleBasedBreakIterator.html#ae592ba2301f6064f2f50d70196517886">00134</a> int32_t fNumCachedBreakPositions; <a name="l00135"></a>00135 <a name="l00141"></a><a class="code" href="classRuleBasedBreakIterator.html#a65ae2b4eadd5389543d7b69d2c965c9f">00141</a> int32_t fPositionInCache; <a name="l00142"></a>00142 <a name="l00150"></a><a class="code" href="classRuleBasedBreakIterator.html#af7beaa3fd16091bd2dec10e67ccec22f">00150</a> UStack *fLanguageBreakEngines; <a name="l00151"></a>00151 <a name="l00159"></a><a class="code" href="classRuleBasedBreakIterator.html#a6f39d4df45fbf35c61ac58df2746f1e9">00159</a> UnhandledEngine *fUnhandledBreakEngine; <a name="l00160"></a>00160 <a name="l00166"></a><a class="code" href="classRuleBasedBreakIterator.html#af2304ecb86e7e4e50c3aab9f4b0c1aef">00166</a> int32_t fBreakType; <a name="l00167"></a>00167 <a name="l00168"></a>00168 <span class="keyword">protected</span>: <a name="l00169"></a>00169 <span class="comment">//=======================================================================</span> <a name="l00170"></a>00170 <span class="comment">// constructors</span> <a name="l00171"></a>00171 <span class="comment">//=======================================================================</span> <a name="l00172"></a>00172 <a name="l00181"></a><a class="code" href="classRuleBasedBreakIterator.html#a9c2fe7d0ff5c34db34f68ffd1013d970">00181</a> <span class="keyword">enum</span> <a class="code" href="classRuleBasedBreakIterator.html#a9c2fe7d0ff5c34db34f68ffd1013d970" title="Constant to be used in the constructor RuleBasedBreakIterator(RBBIDataHeader*, EDontAdopt...">EDontAdopt</a> { <a name="l00182"></a>00182 kDontAdopt <a name="l00183"></a>00183 }; <a name="l00184"></a>00184 <a name="l00195"></a>00195 <a class="code" href="classRuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>(RBBIDataHeader* data, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &status); <a name="l00196"></a>00196 <a name="l00205"></a>00205 <a class="code" href="classRuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>(<span class="keyword">const</span> RBBIDataHeader* data, <span class="keyword">enum</span> EDontAdopt dontAdopt, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &status); <a name="l00206"></a>00206 <a name="l00207"></a>00207 <a name="l00208"></a>00208 <span class="keyword">friend</span> <span class="keyword">class </span>RBBIRuleBuilder; <a name="l00210"></a><a class="code" href="classRuleBasedBreakIterator.html#a5fbb7407696454879cf016b20a0380f0">00210</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classBreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries...">BreakIterator</a>; <a name="l00211"></a>00211 <a name="l00212"></a>00212 <a name="l00213"></a>00213 <a name="l00214"></a>00214 <span class="keyword">public</span>: <a name="l00215"></a>00215 <a name="l00220"></a>00220 <a class="code" href="classRuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>(); <a name="l00221"></a>00221 <a name="l00228"></a>00228 <a class="code" href="classRuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>(<span class="keyword">const</span> <a class="code" href="classRuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>& that); <a name="l00229"></a>00229 <a name="l00238"></a>00238 <a class="code" href="classRuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>( <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &rules, <a name="l00239"></a>00239 <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors...">UParseError</a> &parseError, <a name="l00240"></a>00240 <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &status); <a name="l00241"></a>00241 <a name="l00242"></a>00242 <a name="l00255"></a>00255 <a class="code" href="classRuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>(<a class="code" href="udata_8h.html#acffec83601fda29bd4750b24f829f56b" title="Forward declaration of the data memory type.">UDataMemory</a>* image, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &status); <a name="l00256"></a>00256 <a name="l00261"></a>00261 <span class="keyword">virtual</span> ~<a class="code" href="classRuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>(); <a name="l00262"></a>00262 <a name="l00270"></a>00270 <a class="code" href="classRuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>& operator=(<span class="keyword">const</span> <a class="code" href="classRuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>& that); <a name="l00271"></a>00271 <a name="l00280"></a>00280 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="classBreakIterator.html#adef035120a8805b350ae7ec789b43093" title="Return true if another object is semantically equal to this one.">operator==</a>(<span class="keyword">const</span> <a class="code" href="classBreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries...">BreakIterator</a>& that) <span class="keyword">const</span>; <a name="l00281"></a>00281 <a name="l00289"></a>00289 <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="classBreakIterator.html#a188fb5d54bae55e4f9ea9730e44919a5" title="Returns the complement of the result of operator==.">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classBreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries...">BreakIterator</a>& that) <span class="keyword">const</span>; <a name="l00290"></a>00290 <a name="l00301"></a>00301 <span class="keyword">virtual</span> <a class="code" href="classBreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries...">BreakIterator</a>* <a class="code" href="classBreakIterator.html#aa17a81d41fa791049a10c37594dad88f" title="Return a polymorphic copy of this object.">clone</a>() <span class="keyword">const</span>; <a name="l00302"></a>00302 <a name="l00308"></a>00308 <span class="keyword">virtual</span> int32_t hashCode(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00309"></a>00309 <a name="l00315"></a>00315 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& getRules(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00316"></a>00316 <a name="l00317"></a>00317 <span class="comment">//=======================================================================</span> <a name="l00318"></a>00318 <span class="comment">// BreakIterator overrides</span> <a name="l00319"></a>00319 <span class="comment">//=======================================================================</span> <a name="l00320"></a>00320 <a name="l00346"></a>00346 <span class="keyword">virtual</span> <a class="code" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a>& <a class="code" href="classBreakIterator.html#ab12b76622eaa6df7d0df48778f5de1aa" title="Return a CharacterIterator over the text being analyzed.">getText</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00347"></a>00347 <a name="l00348"></a>00348 <a name="l00363"></a>00363 <span class="keyword">virtual</span> <a class="code" href="structUText.html" title="UText struct.">UText</a> *<a class="code" href="classBreakIterator.html#a724d55795f3edb7748e6d6dffd80d926" title="Get a UText for the text being analyzed.">getUText</a>(<a class="code" href="structUText.html" title="UText struct.">UText</a> *fillIn, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &status) <span class="keyword">const</span>; <a name="l00364"></a>00364 <a name="l00372"></a>00372 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classBreakIterator.html#a729dbe9a6437070d9fb056c6c7589563" title="Change the text over which this operates.">adoptText</a>(<a class="code" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a>* newText); <a name="l00373"></a>00373 <a name="l00380"></a>00380 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classBreakIterator.html#ac50a6618fe83b9b96a7a9213c5da3f21" title="Change the text over which this operates.">setText</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>& newText); <a name="l00381"></a>00381 <a name="l00395"></a>00395 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classBreakIterator.html#ac50a6618fe83b9b96a7a9213c5da3f21" title="Change the text over which this operates.">setText</a>(<a class="code" href="structUText.html" title="UText struct.">UText</a> *text, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &status); <a name="l00396"></a>00396 <a name="l00402"></a>00402 <span class="keyword">virtual</span> int32_t <a class="code" href="classBreakIterator.html#ae09bd26e3559e18e8e46699075f477e4" title="Return the index of the first character in the text being scanned.">first</a>(<span class="keywordtype">void</span>); <a name="l00403"></a>00403 <a name="l00409"></a>00409 <span class="keyword">virtual</span> int32_t <a class="code" href="classBreakIterator.html#ab21a3083a947dd4b4f3653a0a51080c2" title="Return the index immediately BEYOND the last character in the text being scanned...">last</a>(<span class="keywordtype">void</span>); <a name="l00410"></a>00410 <a name="l00421"></a>00421 <span class="keyword">virtual</span> int32_t <a class="code" href="classBreakIterator.html#a68f3b6be789195b55204a6d86d58a8ad" title="Return the boundary following the current boundary.">next</a>(int32_t n); <a name="l00422"></a>00422 <a name="l00428"></a>00428 <span class="keyword">virtual</span> int32_t <a class="code" href="classBreakIterator.html#a68f3b6be789195b55204a6d86d58a8ad" title="Return the boundary following the current boundary.">next</a>(<span class="keywordtype">void</span>); <a name="l00429"></a>00429 <a name="l00435"></a>00435 <span class="keyword">virtual</span> int32_t <a class="code" href="classBreakIterator.html#ac4f27d685b8c1bacbad7e27a6af141f2" title="Return the boundary preceding the current boundary.">previous</a>(<span class="keywordtype">void</span>); <a name="l00436"></a>00436 <a name="l00444"></a>00444 <span class="keyword">virtual</span> int32_t <a class="code" href="classBreakIterator.html#a57f98a77f67b2ca34c26ee2e77d76e09" title="Return the first boundary following the specified offset.">following</a>(int32_t offset); <a name="l00445"></a>00445 <a name="l00453"></a>00453 <span class="keyword">virtual</span> int32_t <a class="code" href="classBreakIterator.html#a9230e330fd08bad1b6c278d322ef2385" title="Return the first boundary preceding the specified offset.">preceding</a>(int32_t offset); <a name="l00454"></a>00454 <a name="l00463"></a>00463 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="classBreakIterator.html#a9ac740557f08c879cceffdbb4a15fe7b" title="Return true if the specfied position is a boundary position.">isBoundary</a>(int32_t offset); <a name="l00464"></a>00464 <a name="l00470"></a>00470 <span class="keyword">virtual</span> int32_t <a class="code" href="classBreakIterator.html#a36835a8123d823f333af822d9c7cb8a6" title="Return character index of the current interator position within the text.">current</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00471"></a>00471 <a name="l00472"></a>00472 <a name="l00505"></a>00505 <span class="keyword">virtual</span> int32_t getRuleStatus() <span class="keyword">const</span>; <a name="l00506"></a>00506 <a name="l00530"></a>00530 <span class="keyword">virtual</span> int32_t getRuleStatusVec(int32_t *fillInVec, int32_t capacity, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &status); <a name="l00531"></a>00531 <a name="l00543"></a>00543 <span class="keyword">virtual</span> <a class="code" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f" title="UClassID is used to identify classes without using RTTI, since RTTI is not yet supported...">UClassID</a> <a class="code" href="classBreakIterator.html#aeaf98baae1d91e224ef8ccced5d2266c" title="Return a polymorphic class ID for this object.">getDynamicClassID</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00544"></a>00544 <a name="l00556"></a>00556 <span class="keyword">static</span> <a class="code" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f" title="UClassID is used to identify classes without using RTTI, since RTTI is not yet supported...">UClassID</a> <a class="code" href="platform_8h.html#a72bf6d8ec0640a37b1915e5d853b2016">U_EXPORT2</a> getStaticClassID(<span class="keywordtype">void</span>); <a name="l00557"></a>00557 <a name="l00558"></a>00558 <span class="comment">/*</span> <a name="l00559"></a>00559 <span class="comment"> * Create a clone (copy) of this break iterator in memory provided</span> <a name="l00560"></a>00560 <span class="comment"> * by the caller. The idea is to increase performance by avoiding</span> <a name="l00561"></a>00561 <span class="comment"> * a storage allocation. Use of this functoin is NOT RECOMMENDED.</span> <a name="l00562"></a>00562 <span class="comment"> * Performance gains are minimal, and correct buffer management is</span> <a name="l00563"></a>00563 <span class="comment"> * tricky. Use clone() instead.</span> <a name="l00564"></a>00564 <span class="comment"> *</span> <a name="l00565"></a>00565 <span class="comment"> * @param stackBuffer The pointer to the memory into which the cloned object</span> <a name="l00566"></a>00566 <span class="comment"> * should be placed. If NULL, allocate heap memory</span> <a name="l00567"></a>00567 <span class="comment"> * for the cloned object.</span> <a name="l00568"></a>00568 <span class="comment"> * @param BufferSize The size of the buffer. If zero, return the required</span> <a name="l00569"></a>00569 <span class="comment"> * buffer size, but do not clone the object. If the</span> <a name="l00570"></a>00570 <span class="comment"> * size was too small (but not zero), allocate heap</span> <a name="l00571"></a>00571 <span class="comment"> * storage for the cloned object.</span> <a name="l00572"></a>00572 <span class="comment"> *</span> <a name="l00573"></a>00573 <span class="comment"> * @param status Error status. U_SAFECLONE_ALLOCATED_WARNING will be</span> <a name="l00574"></a>00574 <span class="comment"> * returned if the the provided buffer was too small, and</span> <a name="l00575"></a>00575 <span class="comment"> * the clone was therefore put on the heap.</span> <a name="l00576"></a>00576 <span class="comment"> *</span> <a name="l00577"></a>00577 <span class="comment"> * @return Pointer to the clone object. This may differ from the stackBuffer</span> <a name="l00578"></a>00578 <span class="comment"> * address if the byte alignment of the stack buffer was not suitable</span> <a name="l00579"></a>00579 <span class="comment"> * or if the stackBuffer was too small to hold the clone.</span> <a name="l00580"></a>00580 <span class="comment"> * @stable ICU 2.0</span> <a name="l00581"></a>00581 <span class="comment"> */</span> <a name="l00582"></a>00582 <span class="keyword">virtual</span> <a class="code" href="classBreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries...">BreakIterator</a> * <a class="code" href="classBreakIterator.html#a6ea0e9828c9ef650086f4d3a17ce5c61" title="Thread safe client-buffer-based cloning operation Do NOT call delete on a safeclone...">createBufferClone</a>(<span class="keywordtype">void</span> *stackBuffer, <a name="l00583"></a>00583 int32_t &BufferSize, <a name="l00584"></a>00584 <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &status); <a name="l00585"></a>00585 <a name="l00586"></a>00586 <a name="l00604"></a>00604 <span class="keyword">virtual</span> <span class="keyword">const</span> uint8_t *getBinaryRules(uint32_t &length); <a name="l00605"></a>00605 <a name="l00606"></a>00606 <a name="l00607"></a>00607 <span class="keyword">protected</span>: <a name="l00608"></a>00608 <span class="comment">//=======================================================================</span> <a name="l00609"></a>00609 <span class="comment">// implementation</span> <a name="l00610"></a>00610 <span class="comment">//=======================================================================</span> <a name="l00616"></a>00616 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset(<span class="keywordtype">void</span>); <a name="l00617"></a>00617 <a name="l00618"></a>00618 <span class="preprocessor">#if 0</span> <a name="l00619"></a>00619 <span class="preprocessor"></span> <a name="l00627"></a>00627 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> isDictionaryChar(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a>); <a name="l00628"></a>00628 <a name="l00633"></a>00633 <span class="keyword">virtual</span> int32_t getBreakType() <span class="keyword">const</span>; <a name="l00634"></a>00634 <span class="preprocessor">#endif</span> <a name="l00635"></a>00635 <span class="preprocessor"></span> <a name="l00640"></a>00640 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setBreakType(int32_t type); <a name="l00641"></a>00641 <a name="l00647"></a>00647 <span class="keywordtype">void</span> init(); <a name="l00648"></a>00648 <a name="l00649"></a>00649 <span class="keyword">private</span>: <a name="l00650"></a>00650 <a name="l00660"></a>00660 int32_t handlePrevious(<span class="keyword">const</span> RBBIStateTable *statetable); <a name="l00661"></a>00661 <a name="l00671"></a>00671 int32_t handleNext(<span class="keyword">const</span> RBBIStateTable *statetable); <a name="l00672"></a>00672 <a name="l00673"></a>00673 <span class="keyword">protected</span>: <a name="l00674"></a>00674 <a name="l00689"></a>00689 int32_t checkDictionary(int32_t startPos, int32_t endPos, <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> reverse); <a name="l00690"></a>00690 <a name="l00691"></a>00691 <span class="keyword">private</span>: <a name="l00692"></a>00692 <a name="l00699"></a>00699 <span class="keyword">const</span> LanguageBreakEngine *getLanguageBreakEngine(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c); <a name="l00700"></a>00700 <a name="l00704"></a>00704 <span class="keywordtype">void</span> makeRuleStatusValid(); <a name="l00705"></a>00705 <a name="l00706"></a>00706 }; <a name="l00707"></a>00707 <a name="l00708"></a>00708 <span class="comment">//------------------------------------------------------------------------------</span> <a name="l00709"></a>00709 <span class="comment">//</span> <a name="l00710"></a>00710 <span class="comment">// Inline Functions Definitions ...</span> <a name="l00711"></a>00711 <span class="comment">//</span> <a name="l00712"></a>00712 <span class="comment">//------------------------------------------------------------------------------</span> <a name="l00713"></a>00713 <a name="l00714"></a><a class="code" href="classRuleBasedBreakIterator.html#a830c4be152a82f2a80e6059c00ad3451">00714</a> <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="classRuleBasedBreakIterator.html#a830c4be152a82f2a80e6059c00ad3451" title="Not-equal operator.">RuleBasedBreakIterator::operator!=</a>(<span class="keyword">const</span> <a class="code" href="classBreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries...">BreakIterator</a>& that)<span class="keyword"> const </span>{ <a name="l00715"></a>00715 <span class="keywordflow">return</span> !<a class="code" href="classRuleBasedBreakIterator.html#af1e72eda19a90fd2a729bddd824345d7" title="Equality operator.">operator==</a>(that); <a name="l00716"></a>00716 } <a name="l00717"></a>00717 <a name="l00718"></a>00718 <a class="code" href="uversion_8h.html#a3da1f00f3b02976ac53c014a3e4c0933" title="This is used to end a declaration of a public ICU C++ API.">U_NAMESPACE_END</a> <a name="l00719"></a>00719 <a name="l00720"></a>00720 <span class="preprocessor">#endif </span><span class="comment">/* #if !UCONFIG_NO_BREAK_ITERATION */</span> <a name="l00721"></a>00721 <a name="l00722"></a>00722 <span class="preprocessor">#endif</span> </pre></div></div> <!--- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Defines</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address> </body> </html>