<!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: chariter.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>chariter.h</h1><a href="chariter_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">*</span> <a name="l00004"></a>00004 <span class="comment">* Copyright (C) 1997-2005, International Business Machines</span> <a name="l00005"></a>00005 <span class="comment">* Corporation and others. All Rights Reserved.</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">*/</span> <a name="l00009"></a>00009 <a name="l00010"></a>00010 <span class="preprocessor">#ifndef CHARITER_H</span> <a name="l00011"></a>00011 <span class="preprocessor"></span><span class="preprocessor">#define CHARITER_H</span> <a name="l00012"></a>00012 <span class="preprocessor"></span> <a name="l00013"></a>00013 <span class="preprocessor">#include "<a class="code" href="utypes_8h.html">unicode/utypes.h</a>"</span> <a name="l00014"></a>00014 <span class="preprocessor">#include "<a class="code" href="uobject_8h.html">unicode/uobject.h</a>"</span> <a name="l00015"></a>00015 <span class="preprocessor">#include "<a class="code" href="unistr_8h.html">unicode/unistr.h</a>"</span> <a name="l00021"></a>00021 <a class="code" href="uversion_8h.html#7d9374e037299886d4192b763b4c5e8b">U_NAMESPACE_BEGIN</a> <a name="l00089"></a><a class="code" href="classForwardCharacterIterator.html">00089</a> <span class="keyword">class </span><a class="code" href="utypes_8h.html#559955ec3bc692657c5d8b1c6de8e334">U_COMMON_API</a> <a class="code" href="classForwardCharacterIterator.html">ForwardCharacterIterator</a> : <span class="keyword">public</span> <a class="code" href="classUObject.html">UObject</a> { <a name="l00090"></a>00090 <span class="keyword">public</span>: <a name="l00096"></a>00096 <span class="keyword">enum</span> { DONE = 0xffff }; <a name="l00097"></a>00097 <a name="l00102"></a>00102 <span class="keyword">virtual</span> ~<a class="code" href="classForwardCharacterIterator.html">ForwardCharacterIterator</a>(); <a name="l00103"></a>00103 <a name="l00112"></a>00112 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#349ef00011f20ccd1d3b424445681aa5">UBool</a> operator==(<span class="keyword">const</span> <a class="code" href="classForwardCharacterIterator.html">ForwardCharacterIterator</a>& that) <span class="keyword">const </span>= 0; <a name="l00113"></a>00113 <a name="l00124"></a>00124 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#349ef00011f20ccd1d3b424445681aa5">UBool</a> operator!=(<span class="keyword">const</span> <a class="code" href="classForwardCharacterIterator.html">ForwardCharacterIterator</a>& that) <span class="keyword">const</span>; <a name="l00125"></a>00125 <a name="l00131"></a>00131 <span class="keyword">virtual</span> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> hashCode(<span class="keywordtype">void</span>) <span class="keyword">const </span>= 0; <a name="l00132"></a>00132 <a name="l00140"></a>00140 <span class="keyword">virtual</span> <a class="code" href="utypes_8h.html#22af10545208a455a6e884008df48e9f">UClassID</a> <a class="code" href="classUObject.html#ce1dd31fb2c6f2c07dfebe8fd240ec37">getDynamicClassID</a>(<span class="keywordtype">void</span>) <span class="keyword">const </span>= 0; <a name="l00141"></a>00141 <a name="l00150"></a>00150 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#6bb9fad572d65b305324ef288165e2ac">UChar</a> nextPostInc(<span class="keywordtype">void</span>) = 0; <a name="l00151"></a>00151 <a name="l00160"></a>00160 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> next32PostInc(<span class="keywordtype">void</span>) = 0; <a name="l00161"></a>00161 <a name="l00171"></a>00171 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#349ef00011f20ccd1d3b424445681aa5">UBool</a> hasNext() = 0; <a name="l00172"></a>00172 <a name="l00173"></a>00173 <span class="keyword">protected</span>: <a name="l00175"></a>00175 <a class="code" href="classForwardCharacterIterator.html">ForwardCharacterIterator</a>(); <a name="l00176"></a>00176 <a name="l00178"></a>00178 <a class="code" href="classForwardCharacterIterator.html">ForwardCharacterIterator</a>(<span class="keyword">const</span> <a class="code" href="classForwardCharacterIterator.html">ForwardCharacterIterator</a> &other); <a name="l00179"></a>00179 <a name="l00184"></a><a class="code" href="classForwardCharacterIterator.html#76c13ba2ac6386e2d46ad41df4b7b9a3">00184</a> <a class="code" href="classForwardCharacterIterator.html">ForwardCharacterIterator</a> &operator=(<span class="keyword">const</span> <a class="code" href="classForwardCharacterIterator.html">ForwardCharacterIterator</a>&) { <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00185"></a>00185 }; <a name="l00186"></a>00186 <a name="l00356"></a><a class="code" href="classCharacterIterator.html">00356</a> <span class="keyword">class </span><a class="code" href="utypes_8h.html#559955ec3bc692657c5d8b1c6de8e334">U_COMMON_API</a> CharacterIterator : <span class="keyword">public</span> <a class="code" href="classForwardCharacterIterator.html">ForwardCharacterIterator</a> { <a name="l00357"></a>00357 <span class="keyword">public</span>: <a name="l00362"></a><a class="code" href="classCharacterIterator.html#a400f3cff117a0e79ab4246c606c9141">00362</a> <span class="keyword">enum</span> <a class="code" href="classCharacterIterator.html#a400f3cff117a0e79ab4246c606c9141">EOrigin</a> { kStart, kCurrent, kEnd }; <a name="l00363"></a>00363 <a name="l00372"></a>00372 <span class="keyword">virtual</span> CharacterIterator* clone(<span class="keywordtype">void</span>) <span class="keyword">const </span>= 0; <a name="l00373"></a>00373 <a name="l00381"></a>00381 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#6bb9fad572d65b305324ef288165e2ac">UChar</a> first(<span class="keywordtype">void</span>) = 0; <a name="l00382"></a>00382 <a name="l00391"></a>00391 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#6bb9fad572d65b305324ef288165e2ac">UChar</a> firstPostInc(<span class="keywordtype">void</span>); <a name="l00392"></a>00392 <a name="l00402"></a>00402 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> first32(<span class="keywordtype">void</span>) = 0; <a name="l00403"></a>00403 <a name="l00412"></a>00412 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> first32PostInc(<span class="keywordtype">void</span>); <a name="l00413"></a>00413 <a name="l00421"></a>00421 <span class="keyword">inline</span> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> setToStart(); <a name="l00422"></a>00422 <a name="l00430"></a>00430 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#6bb9fad572d65b305324ef288165e2ac">UChar</a> last(<span class="keywordtype">void</span>) = 0; <a name="l00431"></a>00431 <a name="l00439"></a>00439 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> last32(<span class="keywordtype">void</span>) = 0; <a name="l00440"></a>00440 <a name="l00448"></a>00448 <span class="keyword">inline</span> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> setToEnd(); <a name="l00449"></a>00449 <a name="l00458"></a>00458 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#6bb9fad572d65b305324ef288165e2ac">UChar</a> setIndex(<a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> position) = 0; <a name="l00459"></a>00459 <a name="l00471"></a>00471 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> setIndex32(<a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> position) = 0; <a name="l00472"></a>00472 <a name="l00478"></a>00478 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#6bb9fad572d65b305324ef288165e2ac">UChar</a> current(<span class="keywordtype">void</span>) <span class="keyword">const </span>= 0; <a name="l00479"></a>00479 <a name="l00485"></a>00485 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> current32(<span class="keywordtype">void</span>) <span class="keyword">const </span>= 0; <a name="l00486"></a>00486 <a name="l00494"></a>00494 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#6bb9fad572d65b305324ef288165e2ac">UChar</a> next(<span class="keywordtype">void</span>) = 0; <a name="l00495"></a>00495 <a name="l00506"></a>00506 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> next32(<span class="keywordtype">void</span>) = 0; <a name="l00507"></a>00507 <a name="l00515"></a>00515 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#6bb9fad572d65b305324ef288165e2ac">UChar</a> previous(<span class="keywordtype">void</span>) = 0; <a name="l00516"></a>00516 <a name="l00524"></a>00524 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> previous32(<span class="keywordtype">void</span>) = 0; <a name="l00525"></a>00525 <a name="l00535"></a>00535 <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#349ef00011f20ccd1d3b424445681aa5">UBool</a> hasPrevious() = 0; <a name="l00536"></a>00536 <a name="l00547"></a>00547 <span class="keyword">inline</span> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> startIndex(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00548"></a>00548 <a name="l00558"></a>00558 <span class="keyword">inline</span> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> endIndex(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00559"></a>00559 <a name="l00568"></a>00568 <span class="keyword">inline</span> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> getIndex(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00569"></a>00569 <a name="l00576"></a>00576 <span class="keyword">inline</span> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> getLength() <span class="keyword">const</span>; <a name="l00577"></a>00577 <a name="l00589"></a>00589 <span class="keyword">virtual</span> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> move(<a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> delta, EOrigin origin) = 0; <a name="l00590"></a>00590 <a name="l00602"></a>00602 <span class="keyword">virtual</span> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> move32(<a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> delta, EOrigin origin) = 0; <a name="l00603"></a>00603 <a name="l00610"></a>00610 <span class="keyword">virtual</span> <span class="keywordtype">void</span> getText(<a class="code" href="classUnicodeString.html">UnicodeString</a>& result) = 0; <a name="l00611"></a>00611 <a name="l00612"></a>00612 <span class="keyword">protected</span>: <a name="l00617"></a>00617 CharacterIterator(); <a name="l00618"></a>00618 <a name="l00623"></a>00623 CharacterIterator(<a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> <a class="code" href="ucnv_8h.html#c2d59ccd7e4666434391eab17b0e304f">length</a>); <a name="l00624"></a>00624 <a name="l00629"></a>00629 CharacterIterator(<a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> <a class="code" href="ucnv_8h.html#c2d59ccd7e4666434391eab17b0e304f">length</a>, <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> position); <a name="l00630"></a>00630 <a name="l00635"></a>00635 CharacterIterator(<a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> <a class="code" href="ucnv_8h.html#c2d59ccd7e4666434391eab17b0e304f">length</a>, <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> textBegin, <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> textEnd, <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> position); <a name="l00636"></a>00636 <a name="l00643"></a>00643 CharacterIterator(<span class="keyword">const</span> CharacterIterator &that); <a name="l00644"></a>00644 <a name="l00652"></a>00652 CharacterIterator &<a class="code" href="classForwardCharacterIterator.html#76c13ba2ac6386e2d46ad41df4b7b9a3">operator=</a>(<span class="keyword">const</span> CharacterIterator &that); <a name="l00653"></a>00653 <a name="l00659"></a><a class="code" href="classCharacterIterator.html#a30eb2520df4a1737bb8716b07faebc7">00659</a> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> textLength; <a name="l00660"></a>00660 <a name="l00665"></a><a class="code" href="classCharacterIterator.html#31cf308271cffffd314e8e93e7e9518e">00665</a> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> pos; <a name="l00666"></a>00666 <a name="l00671"></a><a class="code" href="classCharacterIterator.html#c16ef20e110321b0a78a05193d845dbd">00671</a> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> begin; <a name="l00672"></a>00672 <a name="l00677"></a><a class="code" href="classCharacterIterator.html#fccadd77d7c4440b30816c302ece13d5">00677</a> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> end; <a name="l00678"></a>00678 }; <a name="l00679"></a>00679 <a name="l00680"></a>00680 <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#349ef00011f20ccd1d3b424445681aa5">UBool</a> <a name="l00681"></a><a class="code" href="classForwardCharacterIterator.html#b55ea12533e313565bef5d4b3b020f76">00681</a> <a class="code" href="classForwardCharacterIterator.html#b55ea12533e313565bef5d4b3b020f76">ForwardCharacterIterator::operator!=</a>(<span class="keyword">const</span> <a class="code" href="classForwardCharacterIterator.html">ForwardCharacterIterator</a>& that)<span class="keyword"> const </span>{ <a name="l00682"></a>00682 <span class="keywordflow">return</span> !<a class="code" href="classForwardCharacterIterator.html#3359b21f630495c271715decce6703f4">operator==</a>(that); <a name="l00683"></a>00683 } <a name="l00684"></a>00684 <a name="l00685"></a>00685 <span class="keyword">inline</span> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> <a name="l00686"></a><a class="code" href="classCharacterIterator.html#70bb6445dc7e7cafbd02852a8100cd9e">00686</a> <a class="code" href="classCharacterIterator.html#70bb6445dc7e7cafbd02852a8100cd9e">CharacterIterator::setToStart</a>() { <a name="l00687"></a>00687 <span class="keywordflow">return</span> <a class="code" href="classCharacterIterator.html#16d3fd1fd0cd893b48a0a5697192d634">move</a>(0, kStart); <a name="l00688"></a>00688 } <a name="l00689"></a>00689 <a name="l00690"></a>00690 <span class="keyword">inline</span> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> <a name="l00691"></a><a class="code" href="classCharacterIterator.html#38e0b6be47a35be38fc13172d67005f1">00691</a> <a class="code" href="classCharacterIterator.html#38e0b6be47a35be38fc13172d67005f1">CharacterIterator::setToEnd</a>() { <a name="l00692"></a>00692 <span class="keywordflow">return</span> <a class="code" href="classCharacterIterator.html#16d3fd1fd0cd893b48a0a5697192d634">move</a>(0, kEnd); <a name="l00693"></a>00693 } <a name="l00694"></a>00694 <a name="l00695"></a>00695 <span class="keyword">inline</span> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> <a name="l00696"></a><a class="code" href="classCharacterIterator.html#9183d23e57ab5571c907295f5a45893d">00696</a> <a class="code" href="classCharacterIterator.html#9183d23e57ab5571c907295f5a45893d">CharacterIterator::startIndex</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <a name="l00697"></a>00697 <span class="keywordflow">return</span> <a class="code" href="classCharacterIterator.html#c16ef20e110321b0a78a05193d845dbd">begin</a>; <a name="l00698"></a>00698 } <a name="l00699"></a>00699 <a name="l00700"></a>00700 <span class="keyword">inline</span> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> <a name="l00701"></a><a class="code" href="classCharacterIterator.html#3a4f8b46a10f11f0b2d1a393c02d84e0">00701</a> <a class="code" href="classCharacterIterator.html#3a4f8b46a10f11f0b2d1a393c02d84e0">CharacterIterator::endIndex</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <a name="l00702"></a>00702 <span class="keywordflow">return</span> <a class="code" href="classCharacterIterator.html#fccadd77d7c4440b30816c302ece13d5">end</a>; <a name="l00703"></a>00703 } <a name="l00704"></a>00704 <a name="l00705"></a>00705 <span class="keyword">inline</span> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> <a name="l00706"></a><a class="code" href="classCharacterIterator.html#522cefaae2a07cd2b2f3282e7da60fdb">00706</a> <a class="code" href="classCharacterIterator.html#522cefaae2a07cd2b2f3282e7da60fdb">CharacterIterator::getIndex</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <a name="l00707"></a>00707 <span class="keywordflow">return</span> <a class="code" href="classCharacterIterator.html#31cf308271cffffd314e8e93e7e9518e">pos</a>; <a name="l00708"></a>00708 } <a name="l00709"></a>00709 <a name="l00710"></a>00710 <span class="keyword">inline</span> <a class="code" href="platform_8h.html#b1967d8591af1a4e48c37fd2b0f184d0">int32_t</a> <a name="l00711"></a><a class="code" href="classCharacterIterator.html#baf5f351fcf8867b80d9812bcf70a831">00711</a> <a class="code" href="classCharacterIterator.html#baf5f351fcf8867b80d9812bcf70a831">CharacterIterator::getLength</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <a name="l00712"></a>00712 <span class="keywordflow">return</span> <a class="code" href="classCharacterIterator.html#a30eb2520df4a1737bb8716b07faebc7">textLength</a>; <a name="l00713"></a>00713 } <a name="l00714"></a>00714 <a name="l00715"></a>00715 <a class="code" href="uversion_8h.html#3da1f00f3b02976ac53c014a3e4c0933">U_NAMESPACE_END</a> <a name="l00716"></a>00716 <span class="preprocessor">#endif</span> </pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Sep 14 12:59:19 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>