<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>ICU 3.8: tblcoll.h Source File</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.1 --> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="classes.html"><span>Data Structures</span></a></li> <li id="current"><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li> <form action="search.php" method="get"> <table cellspacing="0" cellpadding="0" border="0"> <tr> <td><label> <u>S</u>earch for </label></td> <td><input type="text" name="query" value="" size="20" accesskey="s"/></td> </tr> </table> </form> </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>tblcoll.h</h1><a href="tblcoll_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) 1996-2007, International Business Machines Corporation and</span> <a name="l00004"></a>00004 <span class="comment">* 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 <a name="l00054"></a>00054 <span class="preprocessor">#ifndef TBLCOLL_H</span> <a name="l00055"></a>00055 <span class="preprocessor"></span><span class="preprocessor">#define TBLCOLL_H</span> <a name="l00056"></a>00056 <span class="preprocessor"></span> <a name="l00057"></a>00057 <span class="preprocessor">#include "<a class="code" href="utypes_8h.html">unicode/utypes.h</a>"</span> <a name="l00058"></a>00058 <a name="l00064"></a>00064 <span class="preprocessor">#if !UCONFIG_NO_COLLATION</span> <a name="l00065"></a>00065 <span class="preprocessor"></span> <a name="l00066"></a>00066 <span class="preprocessor">#include "<a class="code" href="coll_8h.html">unicode/coll.h</a>"</span> <a name="l00067"></a>00067 <span class="preprocessor">#include "<a class="code" href="ucol_8h.html">unicode/ucol.h</a>"</span> <a name="l00068"></a>00068 <span class="preprocessor">#include "<a class="code" href="sortkey_8h.html">unicode/sortkey.h</a>"</span> <a name="l00069"></a>00069 <span class="preprocessor">#include "<a class="code" href="normlzr_8h.html">unicode/normlzr.h</a>"</span> <a name="l00070"></a>00070 <a name="l00071"></a>00071 <a class="code" href="uversion_8h.html#7d9374e037299886d4192b763b4c5e8b">U_NAMESPACE_BEGIN</a> <a name="l00072"></a>00072 <a name="l00076"></a>00076 <span class="keyword">class </span><a class="code" href="classStringSearch.html">StringSearch</a>; <a name="l00080"></a>00080 <span class="keyword">class </span><a class="code" href="classCollationElementIterator.html">CollationElementIterator</a>; <a name="l00081"></a>00081 <a name="l00110"></a><a class="code" href="classRuleBasedCollator.html">00110</a> <span class="keyword">class </span><a class="code" href="utypes_8h.html#b9d90a30137b6ec046fe59e79b09745a">U_I18N_API</a> <a class="code" href="classRuleBasedCollator.html">RuleBasedCollator</a> : <span class="keyword">public</span> <a class="code" href="classCollator.html">Collator</a> <a name="l00111"></a>00111 { <a name="l00112"></a>00112 <span class="keyword">public</span>: <a name="l00113"></a>00113 <a name="l00114"></a>00114 <span class="comment">// constructor -------------------------------------------------------------</span> <a name="l00115"></a>00115 <a name="l00125"></a>00125 <a class="code" href="classRuleBasedCollator.html">RuleBasedCollator</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html">UnicodeString</a>& rules, <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a>& status); <a name="l00126"></a>00126 <a name="l00137"></a>00137 <a class="code" href="classRuleBasedCollator.html">RuleBasedCollator</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html">UnicodeString</a>& rules, <a name="l00138"></a>00138 <a class="code" href="classCollator.html#2872c36ad74fc1100331783afe6b38d5">ECollationStrength</a> collationStrength, <a name="l00139"></a>00139 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a>& status); <a name="l00140"></a>00140 <a name="l00151"></a>00151 <a class="code" href="classRuleBasedCollator.html">RuleBasedCollator</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html">UnicodeString</a>& rules, <a name="l00152"></a>00152 <a class="code" href="ucol_8h.html#cc801048729e684bcabed328be85f77a">UColAttributeValue</a> decompositionMode, <a name="l00153"></a>00153 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a>& status); <a name="l00154"></a>00154 <a name="l00166"></a>00166 <a class="code" href="classRuleBasedCollator.html">RuleBasedCollator</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html">UnicodeString</a>& rules, <a name="l00167"></a>00167 <a class="code" href="classCollator.html#2872c36ad74fc1100331783afe6b38d5">ECollationStrength</a> collationStrength, <a name="l00168"></a>00168 <a class="code" href="ucol_8h.html#cc801048729e684bcabed328be85f77a">UColAttributeValue</a> decompositionMode, <a name="l00169"></a>00169 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a>& status); <a name="l00170"></a>00170 <a name="l00177"></a>00177 <a class="code" href="classRuleBasedCollator.html">RuleBasedCollator</a>(<span class="keyword">const</span> <a class="code" href="classRuleBasedCollator.html">RuleBasedCollator</a>& other); <a name="l00178"></a>00178 <a name="l00179"></a>00179 <a name="l00197"></a>00197 <a class="code" href="classRuleBasedCollator.html">RuleBasedCollator</a>(<span class="keyword">const</span> <a class="code" href="platform_8h.html#ba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *bin, <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> <a class="code" href="ucnv_8h.html#c2d59ccd7e4666434391eab17b0e304f">length</a>, <a name="l00198"></a>00198 <span class="keyword">const</span> <a class="code" href="classRuleBasedCollator.html">RuleBasedCollator</a> *base, <a name="l00199"></a>00199 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &status); <a name="l00200"></a>00200 <span class="comment">// destructor --------------------------------------------------------------</span> <a name="l00201"></a>00201 <a name="l00206"></a>00206 <span class="keyword">virtual</span> ~<a class="code" href="classRuleBasedCollator.html">RuleBasedCollator</a>(); <a name="l00207"></a>00207 <a name="l00208"></a>00208 <span class="comment">// public methods ----------------------------------------------------------</span> <a name="l00209"></a>00209 <a name="l00215"></a>00215 <a class="code" href="classRuleBasedCollator.html">RuleBasedCollator</a>& operator=(<span class="keyword">const</span> <a class="code" href="classRuleBasedCollator.html">RuleBasedCollator</a>& other); <a name="l00216"></a>00216 <a name="l00223"></a>00223 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#349ef00011f20ccd1d3b424445681aa5">UBool</a> <a class="code" href="classCollator.html#58fa13068a2e4e07a8835f6c0f8c18b6">operator==</a>(<span class="keyword">const</span> <a class="code" href="classCollator.html">Collator</a>& other) <span class="keyword">const</span>; <a name="l00224"></a>00224 <a name="l00231"></a>00231 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#349ef00011f20ccd1d3b424445681aa5">UBool</a> <a class="code" href="classCollator.html#8c79adc0d04be5a7b82ac1991d445909">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classCollator.html">Collator</a>& other) <span class="keyword">const</span>; <a name="l00232"></a>00232 <a name="l00239"></a>00239 <span class="keyword">virtual</span> <a class="code" href="classCollator.html">Collator</a>* <a class="code" href="classCollator.html#5b7873505ee31c3745c207cf45d114b4">clone</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00240"></a>00240 <a name="l00251"></a>00251 <span class="keyword">virtual</span> <a class="code" href="classCollationElementIterator.html">CollationElementIterator</a>* createCollationElementIterator( <a name="l00252"></a>00252 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html">UnicodeString</a>& source) <span class="keyword">const</span>; <a name="l00253"></a>00253 <a name="l00263"></a>00263 <span class="keyword">virtual</span> <a class="code" href="classCollationElementIterator.html">CollationElementIterator</a>* createCollationElementIterator( <a name="l00264"></a>00264 <span class="keyword">const</span> <a class="code" href="classCharacterIterator.html">CharacterIterator</a>& source) <span class="keyword">const</span>; <a name="l00265"></a>00265 <a name="l00278"></a>00278 <span class="keyword">virtual</span> <a class="code" href="classCollator.html#05f22f81363f2613bea18a632b67686f">EComparisonResult</a> <a class="code" href="classCollator.html#ca611b586fa47a756d2b29996f713182">compare</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html">UnicodeString</a>& source, <a name="l00279"></a>00279 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html">UnicodeString</a>& target) <span class="keyword">const</span>; <a name="l00280"></a>00280 <a name="l00281"></a>00281 <a name="l00294"></a>00294 <span class="keyword">virtual</span> <a class="code" href="ucol_8h.html#8b4e71db8109af87f84ac1576e2b245d">UCollationResult</a> <a class="code" href="classCollator.html#ca611b586fa47a756d2b29996f713182">compare</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html">UnicodeString</a>& source, <a name="l00295"></a>00295 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html">UnicodeString</a>& target, <a name="l00296"></a>00296 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &status) <span class="keyword">const</span>; <a name="l00297"></a>00297 <a name="l00311"></a>00311 <span class="keyword">virtual</span> <a class="code" href="classCollator.html#05f22f81363f2613bea18a632b67686f">EComparisonResult</a> <a class="code" href="classCollator.html#ca611b586fa47a756d2b29996f713182">compare</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html">UnicodeString</a>& source, <a name="l00312"></a>00312 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html">UnicodeString</a>& target, <a name="l00313"></a>00313 <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> length) <span class="keyword">const</span>; <a name="l00314"></a>00314 <a name="l00328"></a>00328 <span class="keyword">virtual</span> <a class="code" href="ucol_8h.html#8b4e71db8109af87f84ac1576e2b245d">UCollationResult</a> <a class="code" href="classCollator.html#ca611b586fa47a756d2b29996f713182">compare</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html">UnicodeString</a>& source, <a name="l00329"></a>00329 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html">UnicodeString</a>& target, <a name="l00330"></a>00330 <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> length, <a name="l00331"></a>00331 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &status) <span class="keyword">const</span>; <a name="l00332"></a>00332 <a name="l00366"></a>00366 <span class="keyword">virtual</span> <a class="code" href="classCollator.html#05f22f81363f2613bea18a632b67686f">EComparisonResult</a> <a class="code" href="classCollator.html#ca611b586fa47a756d2b29996f713182">compare</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#6bb9fad572d65b305324ef288165e2ac">UChar</a>* source, <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> sourceLength, <a name="l00367"></a>00367 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#6bb9fad572d65b305324ef288165e2ac">UChar</a>* target, <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> targetLength) <a name="l00368"></a>00368 <span class="keyword">const</span>; <a name="l00369"></a>00369 <a name="l00386"></a>00386 <span class="keyword">virtual</span> <a class="code" href="ucol_8h.html#8b4e71db8109af87f84ac1576e2b245d">UCollationResult</a> <a class="code" href="classCollator.html#ca611b586fa47a756d2b29996f713182">compare</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#6bb9fad572d65b305324ef288165e2ac">UChar</a>* source, <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> sourceLength, <a name="l00387"></a>00387 <span class="keyword">const</span> <a class="code" href="umachine_8h.html#6bb9fad572d65b305324ef288165e2ac">UChar</a>* target, <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> targetLength, <a name="l00388"></a>00388 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &status) <span class="keyword">const</span>; <a name="l00389"></a>00389 <a name="l00402"></a>00402 <span class="keyword">virtual</span> <a class="code" href="classCollationKey.html">CollationKey</a>& <a class="code" href="classCollator.html#b48ddb212e12b9ef4ffa7163e2d7810a">getCollationKey</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html">UnicodeString</a>& source, <a name="l00403"></a>00403 <a class="code" href="classCollationKey.html">CollationKey</a>& key, <a name="l00404"></a>00404 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a>& status) <span class="keyword">const</span>; <a name="l00405"></a>00405 <a name="l00419"></a>00419 <span class="keyword">virtual</span> <a class="code" href="classCollationKey.html">CollationKey</a>& <a class="code" href="classCollator.html#b48ddb212e12b9ef4ffa7163e2d7810a">getCollationKey</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#6bb9fad572d65b305324ef288165e2ac">UChar</a> *source, <a name="l00420"></a>00420 <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> sourceLength, <a name="l00421"></a>00421 <a class="code" href="classCollationKey.html">CollationKey</a>& key, <a name="l00422"></a>00422 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a>& status) <span class="keyword">const</span>; <a name="l00423"></a>00423 <a name="l00429"></a>00429 <span class="keyword">virtual</span> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> <a class="code" href="classCollator.html#989efcbd6664efd0a8e738a2c1d3f357">hashCode</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00430"></a>00430 <a name="l00441"></a>00441 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classLocale.html">Locale</a> <a class="code" href="classCollator.html#3a871f1b08787fde0a9a4fef135d2928">getLocale</a>(<a class="code" href="uloc_8h.html#df053345d343f8d82ae080f7a5871f34">ULocDataLocaleType</a> type, <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a>& status) <span class="keyword">const</span>; <a name="l00442"></a>00442 <a name="l00449"></a>00449 <span class="keyword">const</span> <a class="code" href="classUnicodeString.html">UnicodeString</a>& getRules(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00450"></a>00450 <a name="l00456"></a>00456 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCollator.html#a0be92c2d066910f88b27d914b4fb117">getVersion</a>(<a class="code" href="uversion_8h.html#61caef96ba86d8e86a4031925ea44e94">UVersionInfo</a> info) <span class="keyword">const</span>; <a name="l00457"></a>00457 <a name="l00468"></a>00468 <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> getMaxExpansion(<a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> order) <span class="keyword">const</span>; <a name="l00469"></a>00469 <a name="l00480"></a>00480 <span class="keyword">virtual</span> <a class="code" href="utypes_8h.html#22af10545208a455a6e884008df48e9f">UClassID</a> <a class="code" href="classCollator.html#eaf10ab8b08d195a294a9b15aa7195da">getDynamicClassID</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00481"></a>00481 <a name="l00493"></a>00493 <span class="keyword">static</span> <a class="code" href="utypes_8h.html#22af10545208a455a6e884008df48e9f">UClassID</a> <a class="code" href="platform_8h.html#72bf6d8ec0640a37b1915e5d853b2016">U_EXPORT2</a> getStaticClassID(<span class="keywordtype">void</span>); <a name="l00494"></a>00494 <a name="l00503"></a>00503 <a class="code" href="platform_8h.html#ba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *cloneRuleData(<a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> &length, <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &status); <a name="l00504"></a>00504 <a name="l00505"></a>00505 <a name="l00516"></a>00516 <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> cloneBinary(<a class="code" href="platform_8h.html#ba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *buffer, <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> capacity, <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &status); <a name="l00517"></a>00517 <a name="l00525"></a>00525 <span class="keywordtype">void</span> getRules(<a class="code" href="ucol_8h.html#46363290036b8dffd6862c35e7b5872f">UColRuleOption</a> delta, <a class="code" href="classUnicodeString.html">UnicodeString</a> &buffer); <a name="l00526"></a>00526 <a name="l00534"></a>00534 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCollator.html#132f1d7ad918bc1f4dcb956fd74ea808">setAttribute</a>(<a class="code" href="ucol_8h.html#583fbe7fc4a850e2fcc692e766d2826c">UColAttribute</a> attr, <a class="code" href="ucol_8h.html#cc801048729e684bcabed328be85f77a">UColAttributeValue</a> value, <a name="l00535"></a>00535 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &status); <a name="l00536"></a>00536 <a name="l00544"></a>00544 <span class="keyword">virtual</span> <a class="code" href="ucol_8h.html#cc801048729e684bcabed328be85f77a">UColAttributeValue</a> <a class="code" href="classCollator.html#84c6c013a46196d829f71fa843ae7933">getAttribute</a>(<a class="code" href="ucol_8h.html#583fbe7fc4a850e2fcc692e766d2826c">UColAttribute</a> attr, <a name="l00545"></a>00545 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &status); <a name="l00546"></a>00546 <a name="l00557"></a>00557 <span class="keyword">virtual</span> <a class="code" href="platform_8h.html#435d1572bf3f880d55459d9805097f62">uint32_t</a> <a class="code" href="classCollator.html#b6e4fc13e278beca8a39539dc326a913">setVariableTop</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#6bb9fad572d65b305324ef288165e2ac">UChar</a> *varTop, <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> len, <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &status); <a name="l00558"></a>00558 <a name="l00568"></a>00568 <span class="keyword">virtual</span> <a class="code" href="platform_8h.html#435d1572bf3f880d55459d9805097f62">uint32_t</a> <a class="code" href="classCollator.html#b6e4fc13e278beca8a39539dc326a913">setVariableTop</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html">UnicodeString</a> varTop, <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &status); <a name="l00569"></a>00569 <a name="l00577"></a>00577 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCollator.html#b6e4fc13e278beca8a39539dc326a913">setVariableTop</a>(<span class="keyword">const</span> <a class="code" href="platform_8h.html#435d1572bf3f880d55459d9805097f62">uint32_t</a> varTop, <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &status); <a name="l00578"></a>00578 <a name="l00585"></a>00585 <span class="keyword">virtual</span> <a class="code" href="platform_8h.html#435d1572bf3f880d55459d9805097f62">uint32_t</a> <a class="code" href="classCollator.html#f04197e6c46b619cb1afbd523c333643">getVariableTop</a>(<a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &status) <span class="keyword">const</span>; <a name="l00586"></a>00586 <a name="l00596"></a>00596 <span class="keyword">virtual</span> <a class="code" href="classUnicodeSet.html">UnicodeSet</a> *<a class="code" href="classCollator.html#a62e72fedfe466e279f4ebf6343c520e">getTailoredSet</a>(<a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &status) <span class="keyword">const</span>; <a name="l00597"></a>00597 <a name="l00603"></a>00603 <span class="keyword">virtual</span> <a class="code" href="classCollator.html">Collator</a>* <a class="code" href="classCollator.html#a97156a2a27c2e7fc0fccd0aee61de5a">safeClone</a>(<span class="keywordtype">void</span>); <a name="l00604"></a>00604 <a name="l00615"></a>00615 <span class="keyword">virtual</span> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> <a class="code" href="classCollator.html#e524fd43a06d4429e2c76bef35874d4c">getSortKey</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html">UnicodeString</a>& source, <a class="code" href="platform_8h.html#ba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *result, <a name="l00616"></a>00616 <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> resultLength) <span class="keyword">const</span>; <a name="l00617"></a>00617 <a name="l00630"></a>00630 <span class="keyword">virtual</span> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> <a class="code" href="classCollator.html#e524fd43a06d4429e2c76bef35874d4c">getSortKey</a>(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#6bb9fad572d65b305324ef288165e2ac">UChar</a> *source, <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> sourceLength, <a name="l00631"></a>00631 <a class="code" href="platform_8h.html#ba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *result, <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> resultLength) <span class="keyword">const</span>; <a name="l00632"></a>00632 <a name="l00643"></a>00643 <span class="keyword">virtual</span> <a class="code" href="classCollator.html#2872c36ad74fc1100331783afe6b38d5">ECollationStrength</a> <a class="code" href="classCollator.html#bbd68b496b6063c5a09a35ce96e4ce93">getStrength</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00644"></a>00644 <a name="l00651"></a>00651 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCollator.html#0337d30970c7b73a6885a31d6d7d2afa">setStrength</a>(<a class="code" href="classCollator.html#2872c36ad74fc1100331783afe6b38d5">ECollationStrength</a> newStrength); <a name="l00652"></a>00652 <a name="l00653"></a>00653 <span class="keyword">private</span>: <a name="l00654"></a>00654 <a name="l00655"></a>00655 <span class="comment">// private static constants -----------------------------------------------</span> <a name="l00656"></a>00656 <a name="l00657"></a>00657 <span class="keyword">enum</span> { <a name="l00658"></a>00658 <span class="comment">/* need look up in .commit() */</span> <a name="l00659"></a>00659 CHARINDEX = 0x70000000, <a name="l00660"></a>00660 <span class="comment">/* Expand index follows */</span> <a name="l00661"></a>00661 EXPANDCHARINDEX = 0x7E000000, <a name="l00662"></a>00662 <span class="comment">/* contract indexes follows */</span> <a name="l00663"></a>00663 CONTRACTCHARINDEX = 0x7F000000, <a name="l00664"></a>00664 <span class="comment">/* unmapped character values */</span> <a name="l00665"></a>00665 UNMAPPED = 0xFFFFFFFF, <a name="l00666"></a>00666 <span class="comment">/* primary strength increment */</span> <a name="l00667"></a>00667 PRIMARYORDERINCREMENT = 0x00010000, <a name="l00668"></a>00668 <span class="comment">/* secondary strength increment */</span> <a name="l00669"></a>00669 SECONDARYORDERINCREMENT = 0x00000100, <a name="l00670"></a>00670 <span class="comment">/* tertiary strength increment */</span> <a name="l00671"></a>00671 TERTIARYORDERINCREMENT = 0x00000001, <a name="l00672"></a>00672 <span class="comment">/* mask off anything but primary order */</span> <a name="l00673"></a>00673 PRIMARYORDERMASK = 0xffff0000, <a name="l00674"></a>00674 <span class="comment">/* mask off anything but secondary order */</span> <a name="l00675"></a>00675 SECONDARYORDERMASK = 0x0000ff00, <a name="l00676"></a>00676 <span class="comment">/* mask off anything but tertiary order */</span> <a name="l00677"></a>00677 TERTIARYORDERMASK = 0x000000ff, <a name="l00678"></a>00678 <span class="comment">/* mask off ignorable char order */</span> <a name="l00679"></a>00679 IGNORABLEMASK = 0x0000ffff, <a name="l00680"></a>00680 <span class="comment">/* use only the primary difference */</span> <a name="l00681"></a>00681 PRIMARYDIFFERENCEONLY = 0xffff0000, <a name="l00682"></a>00682 <span class="comment">/* use only the primary and secondary difference */</span> <a name="l00683"></a>00683 SECONDARYDIFFERENCEONLY = 0xffffff00, <a name="l00684"></a>00684 <span class="comment">/* primary order shift */</span> <a name="l00685"></a>00685 PRIMARYORDERSHIFT = 16, <a name="l00686"></a>00686 <span class="comment">/* secondary order shift */</span> <a name="l00687"></a>00687 SECONDARYORDERSHIFT = 8, <a name="l00688"></a>00688 <span class="comment">/* starting value for collation elements */</span> <a name="l00689"></a>00689 COLELEMENTSTART = 0x02020202, <a name="l00690"></a>00690 <span class="comment">/* testing mask for primary low element */</span> <a name="l00691"></a>00691 PRIMARYLOWZEROMASK = 0x00FF0000, <a name="l00692"></a>00692 <span class="comment">/* reseting value for secondaries and tertiaries */</span> <a name="l00693"></a>00693 RESETSECONDARYTERTIARY = 0x00000202, <a name="l00694"></a>00694 <span class="comment">/* reseting value for tertiaries */</span> <a name="l00695"></a>00695 RESETTERTIARY = 0x00000002, <a name="l00696"></a>00696 <a name="l00697"></a>00697 PRIMIGNORABLE = 0x0202 <a name="l00698"></a>00698 }; <a name="l00699"></a>00699 <a name="l00700"></a>00700 <span class="comment">// private data members ---------------------------------------------------</span> <a name="l00701"></a>00701 <a name="l00702"></a>00702 <a class="code" href="umachine_8h.html#349ef00011f20ccd1d3b424445681aa5">UBool</a> dataIsOwned; <a name="l00703"></a>00703 <a name="l00704"></a>00704 <a class="code" href="umachine_8h.html#349ef00011f20ccd1d3b424445681aa5">UBool</a> isWriteThroughAlias; <a name="l00705"></a>00705 <a name="l00710"></a>00710 <a class="code" href="ucol_8h.html#3c4eeb412a5fd72762e6245aa75ca081">UCollator</a> *ucollator; <a name="l00711"></a>00711 <a name="l00715"></a>00715 <a class="code" href="classUnicodeString.html">UnicodeString</a> urulestring; <a name="l00716"></a>00716 <a name="l00717"></a>00717 <span class="comment">// friend classes --------------------------------------------------------</span> <a name="l00718"></a>00718 <a name="l00722"></a><a class="code" href="classRuleBasedCollator.html#2493a8a45ec3ae69e1bec8355c948519">00722</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classCollationElementIterator.html">CollationElementIterator</a>; <a name="l00723"></a>00723 <a name="l00728"></a><a class="code" href="classRuleBasedCollator.html#f22e5ffabbf5a2d4d729daa0b5d3cafd">00728</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classCollator.html">Collator</a>; <a name="l00729"></a>00729 <a name="l00733"></a><a class="code" href="classRuleBasedCollator.html#421a131b6330b132d67ac9582acb9886">00733</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classStringSearch.html">StringSearch</a>; <a name="l00734"></a>00734 <a name="l00735"></a>00735 <span class="comment">// private constructors --------------------------------------------------</span> <a name="l00736"></a>00736 <a name="l00740"></a>00740 <a class="code" href="classRuleBasedCollator.html">RuleBasedCollator</a>(); <a name="l00741"></a>00741 <a name="l00752"></a>00752 <a class="code" href="classRuleBasedCollator.html">RuleBasedCollator</a>(<span class="keyword">const</span> <a class="code" href="classLocale.html">Locale</a>& desiredLocale, <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a>& status); <a name="l00753"></a>00753 <a name="l00762"></a>00762 <span class="keywordtype">void</span> <a name="l00763"></a>00763 construct(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html">UnicodeString</a>& rules, <a name="l00764"></a>00764 <a class="code" href="ucol_8h.html#cc801048729e684bcabed328be85f77a">UColAttributeValue</a> collationStrength, <a name="l00765"></a>00765 <a class="code" href="ucol_8h.html#cc801048729e684bcabed328be85f77a">UColAttributeValue</a> decompositionMode, <a name="l00766"></a>00766 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a>& status); <a name="l00767"></a>00767 <a name="l00768"></a>00768 <span class="comment">// private methods -------------------------------------------------------</span> <a name="l00769"></a>00769 <a name="l00775"></a>00775 <span class="keywordtype">void</span> setUCollator(<span class="keyword">const</span> <a class="code" href="classLocale.html">Locale</a>& locale, <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a>& status); <a name="l00776"></a>00776 <a name="l00782"></a>00782 <span class="keywordtype">void</span> setUCollator(<span class="keyword">const</span> <span class="keywordtype">char</span>* locale, <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a>& status); <a name="l00783"></a>00783 <a name="l00791"></a>00791 <span class="keywordtype">void</span> setUCollator(<a class="code" href="ucol_8h.html#3c4eeb412a5fd72762e6245aa75ca081">UCollator</a> *collator); <a name="l00792"></a>00792 <a name="l00793"></a>00793 <span class="keyword">public</span>: <a name="l00799"></a>00799 <span class="keyword">const</span> <a class="code" href="ucol_8h.html#3c4eeb412a5fd72762e6245aa75ca081">UCollator</a> * getUCollator(); <a name="l00800"></a>00800 <a name="l00801"></a>00801 <span class="keyword">protected</span>: <a name="l00808"></a>00808 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCollator.html#da9ebd7bfb43f664a1ac43dd7b78967d">setLocales</a>(<span class="keyword">const</span> <a class="code" href="classLocale.html">Locale</a>& requestedLocale, <span class="keyword">const</span> <a class="code" href="classLocale.html">Locale</a>& validLocale); <a name="l00809"></a>00809 <a name="l00810"></a>00810 <span class="keyword">private</span>: <a name="l00811"></a>00811 <a name="l00812"></a>00812 <span class="comment">// if not owned and not a write through alias, copy the ucollator</span> <a name="l00813"></a>00813 <span class="keywordtype">void</span> checkOwned(<span class="keywordtype">void</span>); <a name="l00814"></a>00814 <a name="l00815"></a>00815 <span class="comment">// utility to init rule string used by checkOwned and construct</span> <a name="l00816"></a>00816 <span class="keywordtype">void</span> setRuleStringFromCollator(); <a name="l00817"></a>00817 <a name="l00824"></a>00824 <a class="code" href="classCollator.html#05f22f81363f2613bea18a632b67686f">Collator::EComparisonResult</a> getEComparisonResult( <a name="l00825"></a>00825 <span class="keyword">const</span> <a class="code" href="ucol_8h.html#8b4e71db8109af87f84ac1576e2b245d">UCollationResult</a> &result) <span class="keyword">const</span>; <a name="l00826"></a>00826 <a name="l00832"></a>00832 <a class="code" href="classCollator.html#2872c36ad74fc1100331783afe6b38d5">Collator::ECollationStrength</a> getECollationStrength( <a name="l00833"></a>00833 <span class="keyword">const</span> <a class="code" href="ucol_8h.html#cc801048729e684bcabed328be85f77a">UCollationStrength</a> &strength) <span class="keyword">const</span>; <a name="l00834"></a>00834 <a name="l00840"></a>00840 <a class="code" href="ucol_8h.html#cc801048729e684bcabed328be85f77a">UCollationStrength</a> getUCollationStrength( <a name="l00841"></a>00841 <span class="keyword">const</span> <a class="code" href="classCollator.html#2872c36ad74fc1100331783afe6b38d5">Collator::ECollationStrength</a> &strength) <span class="keyword">const</span>; <a name="l00842"></a>00842 }; <a name="l00843"></a>00843 <a name="l00844"></a>00844 <span class="comment">// inline method implementation ---------------------------------------------</span> <a name="l00845"></a>00845 <a name="l00846"></a>00846 <span class="keyword">inline</span> <span class="keywordtype">void</span> RuleBasedCollator::setUCollator(<span class="keyword">const</span> <a class="code" href="classLocale.html">Locale</a> &locale, <a name="l00847"></a>00847 <a class="code" href="utypes_8h.html#3343c1c8a8377277046774691c98d78c">UErrorCode</a> &status) <a name="l00848"></a>00848 { <a name="l00849"></a>00849 setUCollator(locale.<a class="code" href="classLocale.html#f8b5b6d6367062eda70c4a2cade02a67">getName</a>(), status); <a name="l00850"></a>00850 } <a name="l00851"></a>00851 <a name="l00852"></a>00852 <a name="l00853"></a>00853 <span class="keyword">inline</span> <span class="keywordtype">void</span> RuleBasedCollator::setUCollator(<a class="code" href="ucol_8h.html#3c4eeb412a5fd72762e6245aa75ca081">UCollator</a> *collator) <a name="l00854"></a>00854 { <a name="l00855"></a>00855 <a name="l00856"></a>00856 <span class="keywordflow">if</span> (ucollator && dataIsOwned) { <a name="l00857"></a>00857 <a class="code" href="ucol_8h.html#68fce4fae47371bfece8a288ef05f11f">ucol_close</a>(ucollator); <a name="l00858"></a>00858 } <a name="l00859"></a>00859 ucollator = collator; <a name="l00860"></a>00860 dataIsOwned = <a class="code" href="umachine_8h.html#a93f0eb578d23995850d61f7d61c55c1">FALSE</a>; <a name="l00861"></a>00861 isWriteThroughAlias = <a class="code" href="umachine_8h.html#a8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>; <a name="l00862"></a>00862 setRuleStringFromCollator(); <a name="l00863"></a>00863 } <a name="l00864"></a>00864 <a name="l00865"></a><a class="code" href="classRuleBasedCollator.html#6333a2d290fb5e3d005c60ebcd4a89e0">00865</a> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="ucol_8h.html#3c4eeb412a5fd72762e6245aa75ca081">UCollator</a> * <a class="code" href="classRuleBasedCollator.html#6333a2d290fb5e3d005c60ebcd4a89e0">RuleBasedCollator::getUCollator</a>() <a name="l00866"></a>00866 { <a name="l00867"></a>00867 <span class="keywordflow">return</span> ucollator; <a name="l00868"></a>00868 } <a name="l00869"></a>00869 <a name="l00870"></a>00870 <span class="keyword">inline</span> <a class="code" href="classCollator.html#05f22f81363f2613bea18a632b67686f">Collator::EComparisonResult</a> RuleBasedCollator::getEComparisonResult( <a name="l00871"></a>00871 <span class="keyword">const</span> <a class="code" href="ucol_8h.html#8b4e71db8109af87f84ac1576e2b245d">UCollationResult</a> &result)<span class="keyword"> const</span> <a name="l00872"></a>00872 <span class="keyword"></span>{ <a name="l00873"></a>00873 <span class="keywordflow">switch</span> (result) <a name="l00874"></a>00874 { <a name="l00875"></a>00875 <span class="keywordflow">case</span> <a class="code" href="ucol_8h.html#8b4e71db8109af87f84ac1576e2b245d3ff43a44b34460a1ca53bbe88b35a624">UCOL_LESS</a> : <a name="l00876"></a>00876 <span class="keywordflow">return</span> Collator::LESS; <a name="l00877"></a>00877 <span class="keywordflow">case</span> <a class="code" href="ucol_8h.html#8b4e71db8109af87f84ac1576e2b245dd62021a93c87f18e7d7400aeae76afbe">UCOL_EQUAL</a> : <a name="l00878"></a>00878 <span class="keywordflow">return</span> Collator::EQUAL; <a name="l00879"></a>00879 <span class="keywordflow">default</span> : <a name="l00880"></a>00880 <span class="keywordflow">return</span> Collator::GREATER; <a name="l00881"></a>00881 } <a name="l00882"></a>00882 } <a name="l00883"></a>00883 <a name="l00884"></a>00884 <span class="keyword">inline</span> <a class="code" href="classCollator.html#2872c36ad74fc1100331783afe6b38d5">Collator::ECollationStrength</a> RuleBasedCollator::getECollationStrength( <a name="l00885"></a>00885 <span class="keyword">const</span> <a class="code" href="ucol_8h.html#cc801048729e684bcabed328be85f77a">UCollationStrength</a> &strength)<span class="keyword"> const</span> <a name="l00886"></a>00886 <span class="keyword"></span>{ <a name="l00887"></a>00887 <span class="keywordflow">switch</span> (strength) <a name="l00888"></a>00888 { <a name="l00889"></a>00889 <span class="keywordflow">case</span> <a class="code" href="ucol_8h.html#cc801048729e684bcabed328be85f77ab304299c75f57c98a7d7de36e226c36e">UCOL_PRIMARY</a> : <a name="l00890"></a>00890 <span class="keywordflow">return</span> Collator::PRIMARY; <a name="l00891"></a>00891 <span class="keywordflow">case</span> <a class="code" href="ucol_8h.html#cc801048729e684bcabed328be85f77ac4748251d9391c813bec59234e74efb6">UCOL_SECONDARY</a> : <a name="l00892"></a>00892 <span class="keywordflow">return</span> Collator::SECONDARY; <a name="l00893"></a>00893 <span class="keywordflow">case</span> <a class="code" href="ucol_8h.html#cc801048729e684bcabed328be85f77a3723e1767f0718b1a74a9dfdabd9de77">UCOL_TERTIARY</a> : <a name="l00894"></a>00894 <span class="keywordflow">return</span> Collator::TERTIARY; <a name="l00895"></a>00895 <span class="keywordflow">case</span> <a class="code" href="ucol_8h.html#cc801048729e684bcabed328be85f77a8a79d0941ea478c1360bd590748c9f41">UCOL_QUATERNARY</a> : <a name="l00896"></a>00896 <span class="keywordflow">return</span> Collator::QUATERNARY; <a name="l00897"></a>00897 <span class="keywordflow">default</span> : <a name="l00898"></a>00898 <span class="keywordflow">return</span> Collator::IDENTICAL; <a name="l00899"></a>00899 } <a name="l00900"></a>00900 } <a name="l00901"></a>00901 <a name="l00902"></a>00902 <span class="keyword">inline</span> <a class="code" href="ucol_8h.html#cc801048729e684bcabed328be85f77a">UCollationStrength</a> RuleBasedCollator::getUCollationStrength( <a name="l00903"></a>00903 <span class="keyword">const</span> <a class="code" href="classCollator.html#2872c36ad74fc1100331783afe6b38d5">Collator::ECollationStrength</a> &strength)<span class="keyword"> const</span> <a name="l00904"></a>00904 <span class="keyword"></span>{ <a name="l00905"></a>00905 <span class="keywordflow">switch</span> (strength) <a name="l00906"></a>00906 { <a name="l00907"></a>00907 <span class="keywordflow">case</span> Collator::PRIMARY : <a name="l00908"></a>00908 <span class="keywordflow">return</span> <a class="code" href="ucol_8h.html#cc801048729e684bcabed328be85f77ab304299c75f57c98a7d7de36e226c36e">UCOL_PRIMARY</a>; <a name="l00909"></a>00909 <span class="keywordflow">case</span> Collator::SECONDARY : <a name="l00910"></a>00910 <span class="keywordflow">return</span> <a class="code" href="ucol_8h.html#cc801048729e684bcabed328be85f77ac4748251d9391c813bec59234e74efb6">UCOL_SECONDARY</a>; <a name="l00911"></a>00911 <span class="keywordflow">case</span> Collator::TERTIARY : <a name="l00912"></a>00912 <span class="keywordflow">return</span> <a class="code" href="ucol_8h.html#cc801048729e684bcabed328be85f77a3723e1767f0718b1a74a9dfdabd9de77">UCOL_TERTIARY</a>; <a name="l00913"></a>00913 <span class="keywordflow">case</span> Collator::QUATERNARY : <a name="l00914"></a>00914 <span class="keywordflow">return</span> <a class="code" href="ucol_8h.html#cc801048729e684bcabed328be85f77a8a79d0941ea478c1360bd590748c9f41">UCOL_QUATERNARY</a>; <a name="l00915"></a>00915 <span class="keywordflow">default</span> : <a name="l00916"></a>00916 <span class="keywordflow">return</span> <a class="code" href="ucol_8h.html#cc801048729e684bcabed328be85f77a506f0c7653777a4b344f7a5f633af26c">UCOL_IDENTICAL</a>; <a name="l00917"></a>00917 } <a name="l00918"></a>00918 } <a name="l00919"></a>00919 <a name="l00920"></a>00920 <a class="code" href="uversion_8h.html#3da1f00f3b02976ac53c014a3e4c0933">U_NAMESPACE_END</a> <a name="l00921"></a>00921 <a name="l00922"></a>00922 <span class="preprocessor">#endif </span><span class="comment">/* #if !UCONFIG_NO_COLLATION */</span> <a name="l00923"></a>00923 <a name="l00924"></a>00924 <span class="preprocessor">#endif</span> </pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Sep 14 12:59:20 2007 for ICU 3.8 by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address> </body> </html>