Sophie

Sophie

distrib > Mandriva > 8.2 > i586 > media > contrib > by-pkgid > 68d373e54fb21da3730c08bede406633 > files > 791

libCommonC++1.9_3-devel-1.9.4-2mdk.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta name="robots" content="noindex">
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>misc.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<!-- Generated by Doxygen 1.2.5 on Thu Oct 4 15:32:58 2001 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>misc.h</h1><a href="misc_h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">// Copyright (C) 1999-2001 Open Source Telecom Corporation.</font>
00002 <font class="comment">//  </font>
00003 <font class="comment">// This program is free software; you can redistribute it and/or modify</font>
00004 <font class="comment">// it under the terms of the GNU General Public License as published by</font>
00005 <font class="comment">// the Free Software Foundation; either version 2 of the License, or</font>
00006 <font class="comment">// (at your option) any later version.</font>
00007 <font class="comment">// </font>
00008 <font class="comment">// This program is distributed in the hope that it will be useful,</font>
00009 <font class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</font>
00010 <font class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</font>
00011 <font class="comment">// GNU General Public License for more details.</font>
00012 <font class="comment">// </font>
00013 <font class="comment">// You should have received a copy of the GNU General Public License</font>
00014 <font class="comment">// along with this program; if not, write to the Free Software </font>
00015 <font class="comment">// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.</font>
00016 <font class="comment">// </font>
00017 <font class="comment">// As a special exception to the GNU General Public License, permission is </font>
00018 <font class="comment">// granted for additional uses of the text contained in its release </font>
00019 <font class="comment">// of Common C++.</font>
00020 <font class="comment">// </font>
00021 <font class="comment">// The exception is that, if you link the Common C++ library with other</font>
00022 <font class="comment">// files to produce an executable, this does not by itself cause the</font>
00023 <font class="comment">// resulting executable to be covered by the GNU General Public License.</font>
00024 <font class="comment">// Your use of that executable is in no way restricted on account of</font>
00025 <font class="comment">// linking the Common C++ library code into it.</font>
00026 <font class="comment">// </font>
00027 <font class="comment">// This exception does not however invalidate any other reasons why</font>
00028 <font class="comment">// the executable file might be covered by the GNU General Public License.</font>
00029 <font class="comment">// </font>
00030 <font class="comment">// This exception applies only to the code released under the </font>
00031 <font class="comment">// name Common C++.  If you copy code from other releases into a copy of</font>
00032 <font class="comment">// Common C++, as the General Public License permits, the exception does</font>
00033 <font class="comment">// not apply to the code that you add in this way.  To avoid misleading</font>
00034 <font class="comment">// anyone as to the status of such modified files, you must delete</font>
00035 <font class="comment">// this exception notice from them.</font>
00036 <font class="comment">// </font>
00037 <font class="comment">// If you write modifications of your own for Common C++, it is your choice</font>
00038 <font class="comment">// whether to permit this exception to apply to your modifications.</font>
00039 <font class="comment">// If you do not wish that, delete this exception notice.  </font>
00040 
00041 <font class="preprocessor">#ifndef __CCXX_MISC_H__</font>
00042 <font class="preprocessor"></font><font class="preprocessor">#define __CCXX_MISC_H__</font>
00043 <font class="preprocessor"></font>
00044 <font class="preprocessor">#ifndef __CCXX_THREAD_H__</font>
00045 <font class="preprocessor"></font><font class="preprocessor">#include &lt;cc++/<a class="code" href="thread_h.html">thread.h</a>&gt;</font>
00046 <font class="preprocessor">#else</font>
00047 <font class="preprocessor"></font><font class="preprocessor">#ifdef  __CCXX_NAMESPACE_H__</font>
00048 <font class="preprocessor"></font><font class="preprocessor">#include &lt;cc++/<a class="code" href="macros_h.html">macros.h</a>&gt;</font>
00049 <font class="preprocessor">#endif</font>
00050 <font class="preprocessor"></font><font class="preprocessor">#endif</font>
00051 <font class="preprocessor"></font>
00052 <font class="preprocessor">#include &lt;fstream&gt;</font>
00053 <font class="preprocessor">#include &lt;iostream&gt;</font>
00054 
00055 <font class="preprocessor">#define KEYDATA_INDEX_SIZE      97</font>
00056 <font class="preprocessor"></font><font class="preprocessor">#define KEYDATA_PAGER_SIZE      512</font>
00057 <font class="preprocessor"></font><font class="preprocessor">#define KEYDATA_PATH_SIZE       256</font>
00058 <font class="preprocessor"></font>
00059 <font class="preprocessor">#pragma pack(1)</font>
00060 <font class="preprocessor"></font>
<a name="l00061"></a><a class="code" href="struct__keyval.html">00061</a> <font class="keyword">typedef</font> <font class="keyword">struct </font><a class="code" href="struct__keyval.html">_keyval</a>
00062 {
<a name="l00063"></a><a class="code" href="struct__keyval.html#m0">00063</a>         <font class="keyword">struct </font><a class="code" href="struct__keyval.html">_keyval</a> *next;
<a name="l00064"></a><a class="code" href="struct__keyval.html#m1">00064</a>         <font class="keywordtype">char</font> val[1];
00065 }       <a class="code" href="struct__keyval.html">keyval_t</a>;
00066 
<a name="l00067"></a><a class="code" href="struct__keysym.html">00067</a> <font class="keyword">typedef</font> <font class="keyword">struct </font><a class="code" href="struct__keysym.html">_keysym</a>
00068 {
<a name="l00069"></a><a class="code" href="struct__keysym.html#m0">00069</a>         <font class="keyword">struct </font><a class="code" href="struct__keysym.html">_keysym</a> *next;
<a name="l00070"></a><a class="code" href="struct__keysym.html#m1">00070</a>         <font class="keyword">struct </font><a class="code" href="struct__keyval.html">_keyval</a> *data;
<a name="l00071"></a><a class="code" href="struct__keysym.html#m2">00071</a>         <font class="keyword">const</font> <font class="keywordtype">char</font> **list;
<a name="l00072"></a><a class="code" href="struct__keysym.html#m3">00072</a>         <font class="keywordtype">short</font> count;
<a name="l00073"></a><a class="code" href="struct__keysym.html#m4">00073</a>         <font class="keywordtype">char</font> sym[1];
00074 }       <a class="code" href="struct__keysym.html">keysym_t</a>;
00075 
<a name="l00076"></a><a class="code" href="struct_keydef.html">00076</a> <font class="keyword">typedef</font> <font class="keyword">struct</font>
00077 <font class="keyword"></font>{
<a name="l00078"></a><a class="code" href="struct_keydef.html#m0">00078</a>         <font class="keywordtype">char</font> *keyword;
<a name="l00079"></a><a class="code" href="struct_keydef.html#m1">00079</a>         <font class="keywordtype">char</font> *value;
00080 } <a class="code" href="struct_keydef.html">KEYDEF</a>;
00081 
00082 <font class="preprocessor">#pragma pack()</font>
00083 <font class="preprocessor"></font>
00084 <font class="preprocessor">#ifdef  __WIN32__</font>
<a name="l00085"></a><a class="code" href="misc_h.html#a2">00085</a> <font class="preprocessor"></font><font class="keyword">class </font>__EXPORT <a class="code" href="class_mempager.html">MemPager</a>;
<a name="l00086"></a><a class="code" href="misc_h.html#a3">00086</a> <font class="keyword">class </font>__EXPORT <a class="code" href="class_sharedmempager.html">SharedMemPager</a>;
<a name="l00087"></a><a class="code" href="misc_h.html#a4">00087</a> <font class="keyword">class </font>__EXPORT <a class="code" href="class_keydata.html">Keydata</a>;
00088 <font class="preprocessor">#endif</font>
00089 <font class="preprocessor"></font>
<a name="l00105"></a><a class="code" href="class_mempager.html">00105</a> <font class="keyword">class </font><a class="code" href="class_mempager.html">MemPager</a>
00106 {
00107 <font class="keyword">private</font>:
00108         <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> pagesize;
00109         <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> pages;
00110 
00111         <font class="keyword">struct </font>_page
00112         {
00113                 <font class="keyword">struct </font>_page *next;
00114                 <font class="keywordtype">int</font> used;
00115         } *page;
00116 
00117 <font class="keyword">protected</font>:
00127         <font class="keyword">virtual</font> <font class="keywordtype">void</font> *<a class="code" href="class_mempager.html#b0">first</a>(size_t size);
00128 
00136         <font class="keyword">virtual</font> <font class="keywordtype">void</font> *<a class="code" href="class_mempager.html#b1">alloc</a>(size_t size);
00137 
00147         <font class="keywordtype">char</font> *<a class="code" href="class_mempager.html#b0">first</a>(<font class="keywordtype">char</font> *str);
00148 
00158         <font class="keywordtype">char</font> *<a class="code" href="class_mempager.html#b1">alloc</a>(<font class="keywordtype">char</font> *str);
00159 
00169         <a class="code" href="class_mempager.html#b4">MemPager</a>(<font class="keywordtype">int</font> pagesize = 4096);
00170 
00174         <font class="keywordtype">void</font> <a class="code" href="class_mempager.html#b5">purge</a>(<font class="keywordtype">void</font>);
00175 
00179         <font class="keyword">virtual</font> <a class="code" href="class_mempager.html#b6">~MemPager</a>();
00180 
00181 <font class="keyword">public</font>:
<a name="l00188"></a><a class="code" href="class_mempager.html#a0">00188</a>         <font class="keyword">inline</font> <font class="keywordtype">int</font> <a class="code" href="class_mempager.html#a0">getPages</a>(<font class="keywordtype">void</font>)<font class="keyword"></font>
00189 <font class="keyword">                </font>{<font class="keywordflow">return</font> pages;};
00190 };
00191 
<a name="l00200"></a><a class="code" href="class_sharedmempager.html">00200</a> <font class="keyword">class </font><a class="code" href="class_sharedmempager.html">SharedMemPager</a> : <font class="keyword">public</font> <a class="code" href="class_mempager.html">MemPager</a>, <font class="keyword">public</font> <a class="code" href="class_mutex.html">Mutex</a>
00201 {
00202 <font class="keyword">protected</font>:
00208         <a class="code" href="misc_h.html#a3">SharedMemPager</a>(<font class="keywordtype">int</font> pg = 4096);
00209 
00213         <font class="keywordtype">void</font> <a class="code" href="class_mempager.html#b5">purge</a>(<font class="keywordtype">void</font>);
00214 
00221         <font class="keywordtype">void</font> *<a class="code" href="class_mempager.html#b0">first</a>(size_t size);
00222 
00229         <font class="keywordtype">void</font> *<a class="code" href="class_mempager.html#b1">alloc</a>(size_t size);
00230 };
00231 
<a name="l00280"></a><a class="code" href="class_keydata.html">00280</a> <font class="keyword">class </font><a class="code" href="class_keydata.html">Keydata</a> : <font class="keyword">protected</font> <a class="code" href="class_mempager.html">MemPager</a>
00281 {
00282 <font class="keyword">private</font>:
00283         <font class="keyword">static</font> std::ifstream cfgFile;
00284         <font class="keyword">static</font> <font class="keywordtype">char</font> lastpath[KEYDATA_PATH_SIZE + 1];
00285         <font class="keyword">static</font> <font class="keywordtype">int</font> count, sequence;
00286 
00287         <font class="keywordtype">int</font> link;
00288 
00289         <a class="code" href="struct__keysym.html">keysym_t</a> *keys[KEYDATA_INDEX_SIZE];
00290 
00297         <font class="keywordtype">unsigned</font> <a class="code" href="class_keydata.html#a7">getIndex</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *sym);
00298 
00299 <font class="keyword">protected</font>:
00300         <a class="code" href="struct__keysym.html">keysym_t</a> *<a class="code" href="class_keydata.html#b0">getSymbol</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *sym, <font class="keywordtype">bool</font> create);
00301 
00313         <font class="keywordtype">void</font> <a class="code" href="class_keydata.html#b1">Load</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *keypath, 
00314                   <font class="keyword">const</font> <font class="keywordtype">char</font> *environment = <font class="stringliteral">"CONFIG_KEYDATA"</font>);
00315 
00324         <font class="keywordtype">void</font> <a class="code" href="class_keydata.html#b1">Load</a>(<a class="code" href="struct_keydef.html">KEYDEF</a> *pairs);
00325         
00326 <font class="keyword">public</font>:
00330         <a class="code" href="misc_h.html#a4">Keydata</a>();
00331 
00338         <a class="code" href="misc_h.html#a4">Keydata</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *keypath, <font class="keyword">const</font> <font class="keywordtype">char</font> *environment=<font class="stringliteral">"CONFIG_KEYDATA"</font>);
00339 
00345         <font class="keyword">virtual</font> <a class="code" href="class_keydata.html#a2">~Keydata</a>();
00346 
00354         <font class="keywordtype">void</font> <a class="code" href="class_keydata.html#a3">Unlink</a>(<font class="keywordtype">void</font>);
00355 
00364         <font class="keywordtype">int</font> <a class="code" href="class_keydata.html#a4">getCount</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *sym);
00365 
00373         <font class="keyword">const</font> <font class="keywordtype">char</font> *<a class="code" href="class_keydata.html#a5">getFirst</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *sym);
00374 
00382         <font class="keyword">const</font> <font class="keywordtype">char</font> *<a class="code" href="class_keydata.html#a6">getLast</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *sym);
00383 
00392         <font class="keywordtype">int</font> <a class="code" href="class_keydata.html#a7">getIndex</a>(<font class="keywordtype">char</font> **data, <font class="keywordtype">int</font> max);
00393 
00402         <font class="keywordtype">void</font> <a class="code" href="class_keydata.html#a8">setValue</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *sym, <font class="keyword">const</font> <font class="keywordtype">char</font> *data);
00403 
00411         <font class="keyword">const</font> <font class="keywordtype">char</font> * <font class="keyword">const</font> *<a class="code" href="class_keydata.html#a9">getList</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *sym);
00412 
00419         <font class="keywordtype">void</font> <a class="code" href="class_keydata.html#a10">clrValue</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *sym);
00420 
<a name="l00425"></a><a class="code" href="class_keydata.html#a11">00425</a>         <font class="keyword">inline</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *<a class="code" href="class_keydata.html#a11">operator[]</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *keyword)<font class="keyword"></font>
00426 <font class="keyword">                </font>{<font class="keywordflow">return</font> <a class="code" href="class_keydata.html#a6">getLast</a>(keyword);};
00427 
00432         <font class="keyword">friend</font> <font class="keywordtype">void</font> <a class="code" href="class_keydata.html#l0">endKeydata</a>(<font class="keywordtype">void</font>);   
00433 };
00434 
<a name="l00478"></a><a class="code" href="class_stringtokenizer.html">00478</a> <font class="keyword">class </font><a class="code" href="class_stringtokenizer.html">StringTokenizer</a> {
00479 <font class="keyword">public</font>:
<a name="l00485"></a><a class="code" href="class_stringtokenizer.html#p0">00485</a>         <font class="keyword">static</font> <font class="keyword">const</font> <font class="keywordtype">char</font> * <font class="keyword">const</font> SPACE;
00486 
00496         <font class="comment">// maybe move more global ?</font>
<a name="l00497"></a><a class="code" href="class_stringtokenizer__nosuchelementexception.html">00497</a>         <font class="keyword">class </font>NoSuchElementException { };
00498 
<a name="l00503"></a><a class="code" href="class_stringtokenizer__iterator.html">00503</a>         <font class="keyword">class </font>iterator {
<a name="l00504"></a><a class="code" href="class_stringtokenizer__iterator.html#l0">00504</a>                 <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_stringtokenizer.html">StringTokenizer</a>;  <font class="comment">// access our private constructors</font>
00505         <font class="keyword">private</font>:
00506                 <font class="keyword">const</font> <a class="code" href="class_stringtokenizer.html">StringTokenizer</a> *myTok; <font class="comment">// my StringTokenizer</font>
00507                 <font class="keyword">const</font> <font class="keywordtype">char</font> *start;      <font class="comment">// start of current token</font>
00508                 <font class="keyword">const</font> <font class="keywordtype">char</font> *tokEnd;     <font class="comment">// end of current token (-&gt;nxDelimiter)</font>
00509                 <font class="keyword">const</font> <font class="keywordtype">char</font> *endp;       <font class="comment">// one before next token</font>
00510                 <font class="keywordtype">char</font> *token;            <font class="comment">// allocated token, if requested</font>
00511 
00512                 <font class="comment">// for initialization of the itEnd iterator</font>
00513                 <a class="code" href="class_stringtokenizer__iterator.html#a0">iterator</a>(<font class="keyword">const</font> <a class="code" href="class_stringtokenizer.html">StringTokenizer</a> &amp;tok, <font class="keyword">const</font> <font class="keywordtype">char</font> *end) 
00514                         : myTok(&amp;tok),tokEnd(0),endp(end),token(0) {}
00515 
00516                 <a class="code" href="class_stringtokenizer__iterator.html#a0">iterator</a>(<font class="keyword">const</font> <a class="code" href="class_stringtokenizer.html">StringTokenizer</a> &amp;tok)
00517                         : myTok(&amp;tok),tokEnd(0),endp(myTok-&gt;str-1),token(0) {
00518                         ++(*this); <font class="comment">// init first token.</font>
00519                 }
00520         <font class="keyword">public</font>:
<a name="l00521"></a><a class="code" href="class_stringtokenizer__iterator.html#a0">00521</a>                 <a class="code" href="class_stringtokenizer__iterator.html#a0">iterator</a>() : myTok(0),start(0),tokEnd(0),endp(0),token(0) {}
00522                 
00523                 <font class="comment">// see also: comment in implementation of operator++</font>
<a name="l00524"></a><a class="code" href="class_stringtokenizer__iterator.html#a1">00524</a>                 <a class="code" href="class_stringtokenizer__iterator.html#a1">~iterator</a>()<font class="keyword"> </font>{ <font class="keywordflow">if</font> (token) *token=<font class="charliteral">'\0'</font>; <font class="keyword">delete</font> token; }
00525                 
00529                 <font class="comment">// everything, but not responsible for the allocated token.</font>
<a name="l00530"></a><a class="code" href="class_stringtokenizer__iterator.html#a2">00530</a>                 <a class="code" href="class_stringtokenizer__iterator.html#a0">iterator</a>(<font class="keyword">const</font> iterator&amp; i) :
00531                         myTok(i.myTok),start(i.start),tokEnd(i.tokEnd),
00532                         endp(i.endp),token(0) {}
00533                 
00537                 <font class="comment">// everything, but not responsible for the allocated token.</font>
<a name="l00538"></a><a class="code" href="class_stringtokenizer__iterator.html#a3">00538</a>                 iterator &amp;<a class="code" href="class_stringtokenizer__iterator.html#a3">operator = </a>(<font class="keyword">const</font> iterator &amp;i)<font class="keyword"> </font>{
00539                         myTok = i.myTok; 
00540                         start = i.start; endp = i.endp; tokEnd = i.tokEnd;
00541                         token = 0;
00542                         <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00543                 }
00544 
00548                 iterator &amp;<a class="code" href="class_stringtokenizer__iterator.html#a4">operator ++ </a>() THROWS (NoSuchElementException);
00549 
00558                 <font class="keyword">const</font> <font class="keywordtype">char</font>*  <a class="code" href="class_stringtokenizer__iterator.html#a5">operator *  </a>() THROWS (NoSuchElementException);
00559                 
<a name="l00566"></a><a class="code" href="class_stringtokenizer__iterator.html#a6">00566</a>                 <font class="keyword">inline</font> <font class="keywordtype">char</font> <a class="code" href="class_stringtokenizer__iterator.html#a6">nextDelimiter</a>()<font class="keyword"> const </font>{
00567                         <font class="keywordflow">return</font> (tokEnd) ? *tokEnd : <font class="charliteral">'\0'</font>;
00568                 }
00569                 
00574                 <font class="comment">// only compare the end-position. speed.</font>
<a name="l00575"></a><a class="code" href="class_stringtokenizer__iterator.html#a7">00575</a>                 <font class="keyword">inline</font> <font class="keywordtype">bool</font> <a class="code" href="class_stringtokenizer__iterator.html#a7">operator == </a>(<font class="keyword">const</font> iterator &amp;other)<font class="keyword"> const </font>{ 
00576                         <font class="keywordflow">return</font> (endp == other.endp);
00577                 }
00578 
00583                 <font class="comment">// only compare the end position. speed.</font>
<a name="l00584"></a><a class="code" href="class_stringtokenizer__iterator.html#a8">00584</a>                 <font class="keyword">inline</font> <font class="keywordtype">bool</font> <a class="code" href="class_stringtokenizer__iterator.html#a8">operator != </a>(<font class="keyword">const</font> iterator &amp;other)<font class="keyword"> const </font>{ 
00585                         <font class="keywordflow">return</font> (endp != other.endp);
00586                 }
00587         };
00588 <font class="keyword">private</font>:
00589         <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_stringtokenizer.html">StringTokenizer</a>::iterator;
00590         const char *str;
00591         const char *delim;
00592         bool skipAll, trim;
00593         iterator itEnd;
00594 
00595 <font class="keyword">public</font>:
00634         <a class="code" href="class_stringtokenizer.html">StringTokenizer</a> (const char *str,
00635                          const char *delim,
00636                          bool skipAllDelim = false,
00637                          bool trim = false);
00638         
00648         <a class="code" href="class_stringtokenizer.html">StringTokenizer</a> (const char *s);
00649 
<a name="l00653"></a><a class="code" href="class_stringtokenizer.html#a2">00653</a>         iterator begin() const { 
00654                 <font class="keywordflow">return</font> iterator(*<font class="keyword">this</font>); 
00655         }
00656         
<a name="l00661"></a><a class="code" href="class_stringtokenizer.html#a3">00661</a>         <font class="keywordtype">void</font> <a class="code" href="class_stringtokenizer.html#a3">setDelimiters</a> (<font class="keyword">const</font> <font class="keywordtype">char</font> *d)<font class="keyword"> </font>{
00662                 delim = d;
00663         }
00664         
<a name="l00669"></a><a class="code" href="class_stringtokenizer.html#a4">00669</a>         iterator <a class="code" href="class_stringtokenizer.html#a2">begin</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *d)<font class="keyword"> </font>{ 
00670                 delim = d;
00671                 <font class="keywordflow">return</font> iterator(*<font class="keyword">this</font>);
00672         }
00673 
<a name="l00677"></a><a class="code" href="class_stringtokenizer.html#a5">00677</a>         <font class="keyword">const</font> iterator&amp; <a class="code" href="class_stringtokenizer.html#a5">end</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> itEnd; }
00678 };
00679 
00680 <font class="preprocessor">#ifdef  __CCXX_NAMESPACE_H__</font>
00681 <font class="preprocessor"></font><font class="preprocessor">#undef  __CCXX_NAMESPACE_H__</font>
00682 <font class="preprocessor"></font><font class="preprocessor">#include &lt;cc++/<a class="code" href="namespace_h.html">namespace.h</a>&gt;</font>
00683 <font class="preprocessor">#endif</font>
00684 <font class="preprocessor"></font>
00685 <font class="preprocessor">#endif</font>
00686 <font class="preprocessor"></font>
</div></pre><hr><address><small>Generated at Thu Oct 4 15:32:58 2001 for CommonC++ by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.gif" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.5 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
 &copy;&nbsp;1997-2001</small></address>
</body>
</html>