aboutsummaryrefslogblamecommitdiffstats
path: root/doc/api-documentation/html/swmodule_8h-source.html
blob: 30dbe9e229125219514acf768408f674e7a67c05 (plain) (tree)


























































































































































































































































































                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>swmodule.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.15 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</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; </center>
<hr><h1>swmodule.h</h1><div class="fragment"><pre>00001 <font class="comment">/******************************************************************************</font>
00002 <font class="comment"> *  swmodule.h  - code for base class 'module'.  Module is the basis for all</font>
00003 <font class="comment"> *                types of modules (e.g. texts, commentaries, maps, lexicons,</font>
00004 <font class="comment"> *                etc.)</font>
00005 <font class="comment"> *</font>
00006 <font class="comment"> * $Id: swmodule_8h-source.html,v 1.7 2002/06/20 20:23:10 mgruner Exp $</font>
00007 <font class="comment"> *</font>
00008 <font class="comment"> * Copyright 1998 CrossWire Bible Society (http://www.crosswire.org)</font>
00009 <font class="comment"> *      CrossWire Bible Society</font>
00010 <font class="comment"> *      P. O. Box 2528</font>
00011 <font class="comment"> *      Tempe, AZ  85280-2528</font>
00012 <font class="comment"> *</font>
00013 <font class="comment"> * This program is free software; you can redistribute it and/or modify it</font>
00014 <font class="comment"> * under the terms of the GNU General Public License as published by the</font>
00015 <font class="comment"> * Free Software Foundation version 2.</font>
00016 <font class="comment"> *</font>
00017 <font class="comment"> * This program is distributed in the hope that it will be useful, but</font>
00018 <font class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of</font>
00019 <font class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</font>
00020 <font class="comment"> * General Public License for more details.</font>
00021 <font class="comment"> *</font>
00022 <font class="comment"> */</font>
00023 
00024 <font class="preprocessor">#ifndef SWMODULE_H</font>
00025 <font class="preprocessor"></font><font class="preprocessor">#define SWMODULE_H</font>
00026 <font class="preprocessor"></font>
00027 <font class="preprocessor">#include &lt;swdisp.h&gt;</font>
00028 <font class="preprocessor">#include &lt;swkey.h&gt;</font>
00029 <font class="preprocessor">#include &lt;listkey.h&gt;</font>
00030 <font class="preprocessor">#include &lt;swfilter.h&gt;</font>
00031 <font class="preprocessor">#include &lt;swconfig.h&gt;</font>
00032 <font class="preprocessor">#include &lt;swcacher.h&gt;</font>
00033 <font class="preprocessor">#include &lt;list&gt;</font>
00034 
00035 <font class="preprocessor">#include &lt;defs.h&gt;</font>
00036 <font class="preprocessor">#include &lt;multimapwdef.h&gt;</font>
00037 
00038 <font class="preprocessor">#define FILTERPAD 80</font>
00039 <font class="preprocessor"></font>
00040 <font class="keyword">using</font> <font class="keyword">namespace </font>std;
00041 
00042 <font class="keyword">typedef</font> list &lt; SWFilter * &gt;FilterList;
00043 
00044 <font class="keyword">typedef</font> map &lt; string, string, less &lt; string &gt; &gt; AttributeValue;
00045 <font class="keyword">typedef</font> map &lt; string, AttributeValue, less &lt; string &gt; &gt; AttributeList;
00046 <font class="keyword">typedef</font> map &lt; string, AttributeList, less &lt; string &gt; &gt; AttributeTypeList;
00047 
00048 <font class="preprocessor">#define SWTextDirection char</font>
00049 <font class="preprocessor"></font><font class="preprocessor">#define SWTextEncoding char</font>
00050 <font class="preprocessor"></font><font class="preprocessor">#define SWTextMarkup char</font>
00051 <font class="preprocessor"></font>
00052 <font class="keyword">enum</font> {DIRECTION_LTR = 0, DIRECTION_RTL, DIRECTION_BIDI};
00053 <font class="keyword">enum</font> {FMT_UNKNOWN = 0, FMT_PLAIN, FMT_THML, FMT_GBF, FMT_HTML, FMT_HTMLHREF, FMT_RTF, FMT_OSIS};
00054 <font class="keyword">enum</font> {ENC_UNKNOWN = 0, ENC_LATIN1, ENC_UTF8, ENC_SCSU, ENC_UTF16, ENC_RTF, ENC_HTML};
00055 
<a name="l00064"></a><a class="code" href="class_s_w_module.html">00064</a> <font class="keyword">class </font>SWDLLEXPORT <a class="code" href="class_s_w_module.html">SWModule</a> : <font class="keyword">public</font> SWCacher {
00065 
00066 <font class="keyword">protected</font>:
00067 
00068   ConfigEntMap ownConfig;
00069   ConfigEntMap *config;
00070   <font class="keyword">mutable</font> AttributeTypeList entryAttributes;
00071   <font class="keyword">mutable</font> <font class="keywordtype">bool</font> procEntAttr;
00072 
00073   <font class="keywordtype">char</font> error;
00074   <font class="keywordtype">bool</font> skipConsecutiveLinks;
00075 
<a name="l00077"></a><a class="code" href="class_s_w_module.html#n6">00077</a>   <a class="code" href="class_s_w_key.html">SWKey</a> *key;
00078 
00079   <a class="code" href="class_list_key.html">ListKey</a> listkey;
00080   <font class="keywordtype">char</font> *modname;
00081   <font class="keywordtype">char</font> *moddesc;
00082   <font class="keywordtype">char</font> *modtype;
00083   <font class="keywordtype">char</font> *modlang;  
00084 
00085   <font class="keywordtype">char</font> direction;
00086   <font class="keywordtype">char</font> markup;
00087   <font class="keywordtype">char</font> encoding;
00088 
<a name="l00090"></a><a class="code" href="class_s_w_module.html#n15">00090</a>   <a class="code" href="class_s_w_display.html">SWDisplay</a> *disp;
00091 
00092   <font class="keyword">static</font> <a class="code" href="class_s_w_display.html">SWDisplay</a> rawdisp;
00093   <font class="keywordtype">char</font> *entrybuf;
00094   <font class="keywordtype">unsigned</font> <font class="keywordtype">long</font> entrybufallocsize;
00095 
<a name="l00097"></a><a class="code" href="class_s_w_module.html#n18">00097</a>   FilterList *stripFilters;
00098 
<a name="l00100"></a><a class="code" href="class_s_w_module.html#n19">00100</a>   FilterList *rawFilters;
00101 
<a name="l00103"></a><a class="code" href="class_s_w_module.html#n20">00103</a>   FilterList *renderFilters;
00104 
<a name="l00106"></a><a class="code" href="class_s_w_module.html#n21">00106</a>   FilterList *optionFilters;
00107 
<a name="l00109"></a><a class="code" href="class_s_w_module.html#n22">00109</a>   FilterList *encodingFilters;
00110 
00111   <font class="keywordtype">int</font> entrySize;
00112 
00113 <font class="keyword">public</font>:
00120   <font class="keyword">static</font> <font class="keywordtype">void</font> nullPercent (<font class="keywordtype">char</font> percent, <font class="keywordtype">void</font> *userData);
<a name="l00125"></a><a class="code" href="class_s_w_module.html#m0">00125</a>   <font class="keywordtype">bool</font> terminateSearch;
00138   <a class="code" href="class_s_w_module.html">SWModule</a> (<font class="keyword">const</font> <font class="keywordtype">char</font> *imodname = 0, <font class="keyword">const</font> <font class="keywordtype">char</font> *imoddesc = 0, <a class="code" href="class_s_w_display.html">SWDisplay</a> * idisp = 0, <font class="keywordtype">char</font> *imodtype = 0, SWTextEncoding encoding = ENC_UNKNOWN, SWTextDirection dir = DIRECTION_LTR, SWTextMarkup markup = FMT_UNKNOWN, <font class="keyword">const</font> <font class="keywordtype">char</font>* modlang = 0);
00141   <font class="keyword">virtual</font> ~ SWModule ();
00146   <font class="keyword">virtual</font> <font class="keywordtype">char</font> Error ();
<a name="l00150"></a><a class="code" href="class_s_w_module.html#a3">00150</a>   <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">bool</font> isUnicode()<font class="keyword"> const </font>{<font class="keywordflow">return</font> (encoding == (char)ENC_UTF8 || encoding == (char)ENC_SCSU);}
00151 
00152   <font class="comment">// These methods are useful for modules that come from a standard SWORD install (most do).</font>
00153   <font class="comment">// SWMgr will call setConfig.  The user may use getConfig and getConfigEntry (if they</font>
00154   <font class="comment">// are not comfortable with, or don't wish to use  stl maps).</font>
00155   <font class="keyword">virtual</font> <font class="keyword">const</font> ConfigEntMap &amp;getConfig()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> *config; }
00156   <font class="keyword">virtual</font> <font class="keywordtype">void</font> setConfig(ConfigEntMap *config);
00157   <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *getConfigEntry(<font class="keyword">const</font> <font class="keywordtype">char</font> *key) <font class="keyword">const</font>;
00158 
<a name="l00162"></a><a class="code" href="class_s_w_module.html#a7">00162</a>   <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">int</font> getEntrySize()<font class="keyword"> const </font>{<font class="keywordflow">return</font> entrySize;}
00170   <font class="keyword">virtual</font> <font class="keywordtype">char</font> SetKey (<font class="keyword">const</font> <a class="code" href="class_s_w_key.html">SWKey</a> *ikey);
00176   <font class="keyword">virtual</font> <font class="keywordtype">char</font> SetKey (<font class="keyword">const</font> <a class="code" href="class_s_w_key.html">SWKey</a> &amp;ikey);
<a name="l00180"></a><a class="code" href="class_s_w_module.html#a10">00180</a>   <font class="keyword">virtual</font> <a class="code" href="class_s_w_key.html">SWKey</a> &amp; Key ()<font class="keyword"> const </font>{
00181     <font class="keywordflow">return</font> *key;
00182   }
<a name="l00189"></a><a class="code" href="class_s_w_module.html#a11">00189</a>   <font class="keyword">virtual</font> <font class="keywordtype">char</font> Key (<font class="keyword">const</font> <a class="code" href="class_s_w_key.html">SWKey</a> &amp; ikey) {
00190     <font class="keywordflow">return</font> SetKey (ikey);
00191   }
00198   <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *KeyText (<font class="keyword">const</font> <font class="keywordtype">char</font> *imodtype = 0);
00203   <font class="keyword">virtual</font> <font class="keywordtype">char</font> Display ();
00210   <font class="keyword">virtual</font> <a class="code" href="class_s_w_display.html">SWDisplay</a> *Disp (<a class="code" href="class_s_w_display.html">SWDisplay</a> * idisp = 0);
00217   <font class="keyword">virtual</font> <font class="keywordtype">char</font> *Name (<font class="keyword">const</font> <font class="keywordtype">char</font> *imodname = 0);
00224   <font class="keyword">virtual</font> <font class="keywordtype">char</font> *Description (<font class="keyword">const</font> <font class="keywordtype">char</font> *imoddesc = 0);
00231   <font class="keyword">virtual</font> <font class="keywordtype">char</font> *Type (<font class="keyword">const</font> <font class="keywordtype">char</font> *imodtype = 0);
00238   <font class="keyword">virtual</font> <font class="keywordtype">char</font> Direction(<font class="keywordtype">signed</font> <font class="keywordtype">char</font> newdir = -1);
00245   <font class="keyword">virtual</font> <font class="keywordtype">char</font> Encoding(<font class="keywordtype">signed</font> <font class="keywordtype">char</font> enc = -1);
00252   <font class="keyword">virtual</font> <font class="keywordtype">char</font> Markup(<font class="keywordtype">signed</font> <font class="keywordtype">char</font> enc = -1);
00259   <font class="keyword">virtual</font> <font class="keywordtype">char</font> *Lang (<font class="keyword">const</font> <font class="keywordtype">char</font> *imodlang = 0);
00260 
00261   <font class="comment">// search methods</font>
00262 
00274   <font class="keyword">virtual</font> <a class="code" href="class_list_key.html">ListKey</a> &amp; Search (<font class="keyword">const</font> <font class="keywordtype">char</font> *istr, <font class="keywordtype">int</font> searchType = 0, <font class="keywordtype">int</font> flags = 0,
00275                   <a class="code" href="class_s_w_key.html">SWKey</a> * scope = 0,
00276                   <font class="keywordtype">bool</font> * justCheckIfSupported = 0,
00277                   <font class="keywordtype">void</font> (*percent) (<font class="keywordtype">char</font>, <font class="keywordtype">void</font> *) = &amp;nullPercent,
00278                   <font class="keywordtype">void</font> *percentUserData = 0);
00282   <font class="keyword">virtual</font> <font class="keywordtype">signed</font> <font class="keywordtype">char</font> createSearchFramework () {
00283     <font class="keywordflow">return</font> 0;
00284   }                             <font class="comment">// special search framework</font>
00288 <font class="comment"></font>  <font class="keyword">virtual</font> <font class="keywordtype">bool</font> hasSearchFramework () {
00289     <font class="keywordflow">return</font> <font class="keyword">false</font>;
00290   }                             <font class="comment">// special search framework</font>
<a name="l00295"></a><a class="code" href="class_s_w_module.html#a25">00295</a> <font class="comment"></font>  <font class="keyword">virtual</font> <font class="keywordtype">bool</font> isSearchOptimallySupported (<font class="keyword">const</font> <font class="keywordtype">char</font> *istr, <font class="keywordtype">int</font> searchType,
00296                                            <font class="keywordtype">int</font> flags, <a class="code" href="class_s_w_key.html">SWKey</a> * scope) {
00297       <font class="keywordtype">bool</font> retVal = <font class="keyword">false</font>;
00298       Search (istr, searchType, flags, scope, &amp;retVal);
00299       <font class="keywordflow">return</font> retVal;
00300   }
00307   <font class="keyword">virtual</font> <a class="code" href="class_s_w_key.html">SWKey</a> *CreateKey ();
00311   <font class="keyword">virtual</font> operator const char *();
00316   <font class="keyword">virtual</font> <font class="keywordtype">char</font> *getRawEntry () = 0;
<a name="l00322"></a><a class="code" href="class_s_w_module.html#a29">00322</a>   <font class="keyword">virtual</font> operator SWKey &amp; () {
00323     <font class="keywordflow">return</font> *key;
00324   }
<a name="l00333"></a><a class="code" href="class_s_w_module.html#a30">00333</a>   <font class="keyword">virtual</font> operator SWKey *() {
00334     <font class="keywordflow">return</font> key;
00335   }
00336 
00337 
00338   <font class="comment">// write interface ----------------------------</font>
<a name="l00342"></a><a class="code" href="class_s_w_module.html#a31">00342</a> <font class="comment"></font>  <font class="keyword">virtual</font> <font class="keywordtype">bool</font> isWritable () {
00343     <font class="keywordflow">return</font> <font class="keyword">false</font>;
00344   }
<a name="l00349"></a><a class="code" href="class_s_w_module.html#d1">00349</a>   <font class="keyword">static</font> <font class="keywordtype">signed</font> <font class="keywordtype">char</font> createModule (<font class="keyword">const</font> <font class="keywordtype">char</font> *) {
00350     <font class="keywordflow">return</font> -1;
00351   }
<a name="l00356"></a><a class="code" href="class_s_w_module.html#a32">00356</a>   <font class="keyword">virtual</font> <a class="code" href="class_s_w_module.html">SWModule</a> &amp; setentry (<font class="keyword">const</font> <font class="keywordtype">char</font> *inbuf, <font class="keywordtype">long</font> len) {
00357     <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00358   }
<a name="l00363"></a><a class="code" href="class_s_w_module.html#a33">00363</a>   <font class="keyword">virtual</font> <a class="code" href="class_s_w_module.html">SWModule</a> &amp; operator &lt;&lt; (<font class="keyword">const</font> <font class="keywordtype">char</font> *) {
00364     <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00365   }
<a name="l00370"></a><a class="code" href="class_s_w_module.html#a34">00370</a>   <font class="keyword">virtual</font> <a class="code" href="class_s_w_module.html">SWModule</a> &amp; operator &lt;&lt; (<font class="keyword">const</font> <a class="code" href="class_s_w_key.html">SWKey</a> *) {
00371     <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00372   }
<a name="l00376"></a><a class="code" href="class_s_w_module.html#a35">00376</a>   <font class="keyword">virtual</font> <font class="keywordtype">void</font> deleteEntry () {
00377   }
00378   <font class="comment">// end write interface ------------------------</font>
00379 
00385   <font class="keyword">virtual</font> <a class="code" href="class_s_w_module.html">SWModule</a> &amp; operator -= (<font class="keywordtype">int</font> decrement);
00391   <font class="keyword">virtual</font> <a class="code" href="class_s_w_module.html">SWModule</a> &amp; operator += (<font class="keywordtype">int</font> increment);
<a name="l00395"></a><a class="code" href="class_s_w_module.html#a38">00395</a>   <font class="keyword">virtual</font> <a class="code" href="class_s_w_module.html">SWModule</a> &amp; operator++ (<font class="keywordtype">int</font>) {
00396     <font class="keywordflow">return</font> *<font class="keyword">this</font> += 1;
00397   }
<a name="l00401"></a><a class="code" href="class_s_w_module.html#a39">00401</a>   <font class="keyword">virtual</font> <a class="code" href="class_s_w_module.html">SWModule</a> &amp; operator-- (<font class="keywordtype">int</font>) {
00402     <font class="keywordflow">return</font> *<font class="keyword">this</font> -= 1;
00403   }
00409   <font class="keyword">virtual</font> <a class="code" href="class_s_w_module.html">SWModule</a> &amp; operator = (SW_POSITION p);
<a name="l00414"></a><a class="code" href="class_s_w_module.html#a41">00414</a>   <font class="keyword">virtual</font> <a class="code" href="class_s_w_module.html">SWModule</a> &amp; AddRenderFilter (SWFilter * newfilter) {
00415     renderFilters-&gt;push_back (newfilter);
00416     <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00417   }
<a name="l00422"></a><a class="code" href="class_s_w_module.html#a42">00422</a>   <font class="keyword">virtual</font> <a class="code" href="class_s_w_module.html">SWModule</a> &amp; RemoveRenderFilter (SWFilter * oldfilter) {
00423     renderFilters-&gt;remove (oldfilter);
00424     <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00425   }
<a name="l00431"></a><a class="code" href="class_s_w_module.html#a43">00431</a>   <font class="keyword">virtual</font> <a class="code" href="class_s_w_module.html">SWModule</a> &amp; ReplaceRenderFilter (SWFilter * oldfilter, SWFilter * newfilter) {
00432     FilterList::iterator iter;
00433     <font class="keywordflow">for</font> (iter = renderFilters-&gt;begin(); iter != renderFilters-&gt;end(); iter++)
00434         <font class="keywordflow">if</font> (*iter == oldfilter)
00435                 *iter = newfilter;
00436     <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00437   }
<a name="l00444"></a><a class="code" href="class_s_w_module.html#a44">00444</a>   <font class="keyword">virtual</font> <font class="keywordtype">void</font> renderFilter (<font class="keywordtype">char</font> *buf, <font class="keywordtype">long</font> size, <a class="code" href="class_s_w_key.html">SWKey</a> *key) {
00445         filterBuffer(renderFilters, buf, size, key);
00446   }
<a name="l00451"></a><a class="code" href="class_s_w_module.html#a45">00451</a>   <font class="keyword">virtual</font> <a class="code" href="class_s_w_module.html">SWModule</a> &amp; AddEncodingFilter (SWFilter * newfilter) {
00452     encodingFilters-&gt;push_back (newfilter);
00453     <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00454   }
<a name="l00459"></a><a class="code" href="class_s_w_module.html#a46">00459</a>   <font class="keyword">virtual</font> <a class="code" href="class_s_w_module.html">SWModule</a> &amp; RemoveEncodingFilter (SWFilter * oldfilter) {
00460     encodingFilters-&gt;remove (oldfilter);
00461     <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00462   }
<a name="l00468"></a><a class="code" href="class_s_w_module.html#a47">00468</a>   <font class="keyword">virtual</font> <a class="code" href="class_s_w_module.html">SWModule</a> &amp; ReplaceEncodingFilter (SWFilter * oldfilter, SWFilter * newfilter) {
00469     FilterList::iterator iter;
00470     <font class="keywordflow">for</font> (iter = encodingFilters-&gt;begin(); iter != encodingFilters-&gt;end(); iter++)
00471         <font class="keywordflow">if</font> (*iter == oldfilter)
00472                 *iter = newfilter;
00473     <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00474   }
<a name="l00481"></a><a class="code" href="class_s_w_module.html#a48">00481</a>   <font class="keyword">virtual</font> <font class="keywordtype">void</font> encodingFilter (<font class="keywordtype">char</font> *buf, <font class="keywordtype">long</font> size, <a class="code" href="class_s_w_key.html">SWKey</a> *key) {
00482         filterBuffer(encodingFilters, buf, size, key);
00483   }
<a name="l00488"></a><a class="code" href="class_s_w_module.html#a49">00488</a>   <font class="keyword">virtual</font> <a class="code" href="class_s_w_module.html">SWModule</a> &amp; AddStripFilter (SWFilter * newfilter) {
00489     stripFilters-&gt;push_back (newfilter);
00490     <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00491   }
<a name="l00498"></a><a class="code" href="class_s_w_module.html#a50">00498</a>   <font class="keyword">virtual</font> <font class="keywordtype">void</font> stripFilter (<font class="keywordtype">char</font> *buf, <font class="keywordtype">long</font> size, <a class="code" href="class_s_w_key.html">SWKey</a> *key) {
00499         filterBuffer(stripFilters, buf, size, key);
00500   }
<a name="l00505"></a><a class="code" href="class_s_w_module.html#a51">00505</a>   <font class="keyword">virtual</font> <a class="code" href="class_s_w_module.html">SWModule</a> &amp; AddRawFilter (SWFilter * newfilter) {
00506     rawFilters-&gt;push_back (newfilter);
00507     <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00508   }
<a name="l00516"></a><a class="code" href="class_s_w_module.html#a52">00516</a>   <font class="keyword">virtual</font> <font class="keywordtype">void</font> filterBuffer (FilterList *filters, <font class="keywordtype">char</font> *buf, <font class="keywordtype">long</font> size, <a class="code" href="class_s_w_key.html">SWKey</a> *key) {
00517         FilterList::iterator it;
00518         <font class="keywordflow">for</font> (it = filters-&gt;begin(); it != filters-&gt;end(); it++) {
00519                 (*it)-&gt;ProcessText(buf, size, key, <font class="keyword">this</font>);
00520         }
00521   }
<a name="l00528"></a><a class="code" href="class_s_w_module.html#a53">00528</a>   <font class="keyword">virtual</font> <font class="keywordtype">void</font> rawFilter (<font class="keywordtype">char</font> *buf, <font class="keywordtype">long</font> size, <a class="code" href="class_s_w_key.html">SWKey</a> *key) {
00529         buf[size] = 0;
00530         filterBuffer(rawFilters, buf, size, key);
00531   }
<a name="l00536"></a><a class="code" href="class_s_w_module.html#a54">00536</a>   <font class="keyword">virtual</font> <a class="code" href="class_s_w_module.html">SWModule</a> &amp; AddOptionFilter (SWFilter * newfilter) {
00537     optionFilters-&gt;push_back (newfilter);
00538     <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00539   }
<a name="l00546"></a><a class="code" href="class_s_w_module.html#a55">00546</a>   <font class="keyword">virtual</font> <font class="keywordtype">void</font> optionFilter (<font class="keywordtype">char</font> *buf, <font class="keywordtype">long</font> size, <a class="code" href="class_s_w_key.html">SWKey</a> *key) {
00547         filterBuffer(optionFilters, buf, size, key);
00548   }
00556   <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *StripText (<font class="keywordtype">char</font> *buf = 0, <font class="keywordtype">int</font> len = -1);
00564   <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *RenderText (<font class="keywordtype">char</font> *buf = 0, <font class="keywordtype">int</font> len = -1, <font class="keywordtype">bool</font> render = <font class="keyword">true</font>);
00570   <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *StripText (<a class="code" href="class_s_w_key.html">SWKey</a> * tmpKey);
00576   <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *RenderText (<a class="code" href="class_s_w_key.html">SWKey</a> * tmpKey);
00577 
<a name="l00584"></a><a class="code" href="class_s_w_module.html#a60">00584</a>   <font class="keyword">virtual</font> <font class="keywordtype">void</font> setSkipConsecutiveLinks(<font class="keywordtype">bool</font> val) { skipConsecutiveLinks = val; }
00585   <font class="keyword">virtual</font> <font class="keywordtype">bool</font> getSkipConsecutiveLinks() { <font class="keywordflow">return</font> skipConsecutiveLinks; }
00586   <font class="keyword">virtual</font> AttributeTypeList &amp;getEntryAttributes()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> entryAttributes; }
00587   <font class="keyword">virtual</font> <font class="keywordtype">void</font> processEntryAttributes(<font class="keywordtype">bool</font> val)<font class="keyword"> const </font>{ procEntAttr = val; }
00588   <font class="keyword">virtual</font> <font class="keywordtype">bool</font> isProcessEntryAttributes()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> procEntAttr; }
00589 };
00590 
00591 
00592 <font class="preprocessor">#endif</font>
</pre></div><hr><address align="right"><small>Generated on Thu Jun 20 22:13:00 2002 for The Sword Project by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.15 </small></address>
</body>
</html>