diff options
Diffstat (limited to 'doc/api-documentation/html/swmodule_8h-source.html')
-rw-r--r-- | doc/api-documentation/html/swmodule_8h-source.html | 548 |
1 files changed, 282 insertions, 266 deletions
diff --git a/doc/api-documentation/html/swmodule_8h-source.html b/doc/api-documentation/html/swmodule_8h-source.html index 30dbe9e..d6e9fa7 100644 --- a/doc/api-documentation/html/swmodule_8h-source.html +++ b/doc/api-documentation/html/swmodule_8h-source.html @@ -3,281 +3,297 @@ <title>swmodule.h Source File</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> -<!-- Generated by Doxygen 1.2.15 --> +<!-- Generated by Doxygen 1.2.17 --> <center> -<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="namespaces.html">Namespace List</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </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> +<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="namespaces.html">Namespace List</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="namespacemembers.html">Namespace Members</a> <a class="qindex" href="functions.html">Compound Members</a> </center> +<hr><h1>swmodule.h</h1><div class="fragment"><pre>00001 <span class="comment">/******************************************************************************</span> +00002 <span class="comment">* swmodule.h - code for base class 'module'. Module is the basis for all</span> +00003 <span class="comment">* types of modules (e.g. texts, commentaries, maps, lexicons,</span> +00004 <span class="comment">* etc.)</span> +00005 <span class="comment">*</span> +00006 <span class="comment">* $Id: swmodule_8h-source.html,v 1.9 2002/10/31 11:30:16 joachim Exp $</span> +00007 <span class="comment">*</span> +00008 <span class="comment">* Copyright 1998 CrossWire Bible Society (http://www.crosswire.org)</span> +00009 <span class="comment">* CrossWire Bible Society</span> +00010 <span class="comment">* P. O. Box 2528</span> +00011 <span class="comment">* Tempe, AZ 85280-2528</span> +00012 <span class="comment">*</span> +00013 <span class="comment">* This program is free software; you can redistribute it and/or modify it</span> +00014 <span class="comment">* under the terms of the GNU General Public License as published by the</span> +00015 <span class="comment">* Free Software Foundation version 2.</span> +00016 <span class="comment">*</span> +00017 <span class="comment">* This program is distributed in the hope that it will be useful, but</span> +00018 <span class="comment">* WITHOUT ANY WARRANTY; without even the implied warranty of</span> +00019 <span class="comment">* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span> +00020 <span class="comment">* General Public License for more details.</span> +00021 <span class="comment">*</span> +00022 <span class="comment">*/</span> 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 <swdisp.h></font> -00028 <font class="preprocessor">#include <swkey.h></font> -00029 <font class="preprocessor">#include <listkey.h></font> -00030 <font class="preprocessor">#include <swfilter.h></font> -00031 <font class="preprocessor">#include <swconfig.h></font> -00032 <font class="preprocessor">#include <swcacher.h></font> -00033 <font class="preprocessor">#include <list></font> +00024 <span class="preprocessor">#ifndef SWMODULE_H</span> +00025 <span class="preprocessor"></span><span class="preprocessor">#define SWMODULE_H</span> +00026 <span class="preprocessor"></span> +00027 <span class="preprocessor">#include <swdisp.h></span> +00028 <span class="preprocessor">#include <swkey.h></span> +00029 <span class="preprocessor">#include <listkey.h></span> +00030 <span class="preprocessor">#include <swfilter.h></span> +00031 <span class="preprocessor">#include <swconfig.h></span> +00032 <span class="preprocessor">#include <swcacher.h></span> +00033 <span class="preprocessor">#include <list></span> 00034 -00035 <font class="preprocessor">#include <defs.h></font> -00036 <font class="preprocessor">#include <multimapwdef.h></font> +00035 <span class="preprocessor">#include <defs.h></span> +00036 <span class="preprocessor">#include <multimapwdef.h></span> 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 < SWFilter * >FilterList; -00043 -00044 <font class="keyword">typedef</font> map < string, string, less < string > > AttributeValue; -00045 <font class="keyword">typedef</font> map < string, AttributeValue, less < string > > AttributeList; -00046 <font class="keyword">typedef</font> map < string, AttributeList, less < string > > 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; +00038 SWORD_NAMESPACE_START +00039 +00040 <span class="preprocessor">#define SWMODULE_OPERATORS \</span> +00041 <span class="preprocessor"> operator const char *() { return RenderText(); } \</span> +00042 <span class="preprocessor"> operator SWKey &() { return *getKey(); } \</span> +00043 <span class="preprocessor"> operator SWKey *() { return getKey(); } \</span> +00044 <span class="preprocessor"> SWModule &operator <<(const char *inbuf) { setEntry(inbuf); return *this; } \</span> +00045 <span class="preprocessor"> SWModule &operator <<(const SWKey *sourceKey) { linkEntry(sourceKey); return *this; } \</span> +00046 <span class="preprocessor"> SWModule &operator -=(int steps) { decrement(steps); return *this; } \</span> +00047 <span class="preprocessor"> SWModule &operator +=(int steps) { increment(steps); return *this; } \</span> +00048 <span class="preprocessor"> SWModule &operator ++(int) { return *this += 1; } \</span> +00049 <span class="preprocessor"> SWModule &operator --(int) { return *this -= 1; } \</span> +00050 <span class="preprocessor"> SWModule &operator =(SW_POSITION p) { setPosition(p); return *this; }</span> +00051 <span class="preprocessor"></span> +00052 +00053 <span class="keyword">typedef</span> std::list < SWFilter * >FilterList; +00054 +00055 <span class="keyword">typedef</span> std::map < std::string, std::string, std::less < std::string > > AttributeValue; +00056 <span class="keyword">typedef</span> std::map < std::string, AttributeValue, std::less < std::string > > AttributeList; +00057 <span class="keyword">typedef</span> std::map < std::string, AttributeList, std::less < std::string > > AttributeTypeList; +00058 +00059 <span class="preprocessor">#define SWTextDirection char</span> +00060 <span class="preprocessor"></span><span class="preprocessor">#define SWTextEncoding char</span> +00061 <span class="preprocessor"></span><span class="preprocessor">#define SWTextMarkup char</span> +00062 <span class="preprocessor"></span> +00063 <span class="keyword">enum</span> {DIRECTION_LTR = 0, DIRECTION_RTL, DIRECTION_BIDI}; +00064 <span class="keyword">enum</span> {FMT_UNKNOWN = 0, FMT_PLAIN, FMT_THML, FMT_GBF, FMT_HTML, FMT_HTMLHREF, FMT_RTF, FMT_OSIS}; +00065 <span class="keyword">enum</span> {ENC_UNKNOWN = 0, ENC_LATIN1, ENC_UTF8, ENC_SCSU, ENC_UTF16, ENC_RTF, ENC_HTML}; +00066 +<a name="l00075"></a><a class="code" href="classsword_1_1_s_w_module.html">00075</a> <span class="keyword">class </span>SWDLLEXPORT <a class="code" href="classsword_1_1_s_w_module.html">SWModule</a> : <span class="keyword">public</span> SWCacher { +00076 +00077 <span class="keyword">protected</span>: 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; +00079 ConfigEntMap ownConfig; +00080 ConfigEntMap *config; +00081 <span class="keyword">mutable</span> AttributeTypeList entryAttributes; +00082 <span class="keyword">mutable</span> <span class="keywordtype">bool</span> procEntAttr; +00083 +00084 <span class="keywordtype">char</span> error; +00085 <span class="keywordtype">bool</span> skipConsecutiveLinks; +00086 +<a name="l00088"></a><a class="code" href="classsword_1_1_s_w_module.html#n6">00088</a> <a class="code" href="classsword_1_1_s_w_key.html">SWKey</a> *key; +00089 +00090 <a class="code" href="classsword_1_1_list_key.html">ListKey</a> listkey; +00091 <span class="keywordtype">char</span> *modname; +00092 <span class="keywordtype">char</span> *moddesc; +00093 <span class="keywordtype">char</span> *modtype; +00094 <span class="keywordtype">char</span> *modlang; 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; +00096 <span class="keywordtype">char</span> direction; +00097 <span class="keywordtype">char</span> markup; +00098 <span class="keywordtype">char</span> encoding; +00099 +<a name="l00101"></a><a class="code" href="classsword_1_1_s_w_module.html#n15">00101</a> <a class="code" href="classsword_1_1_s_w_display.html">SWDisplay</a> *disp; +00102 +00103 <span class="keyword">static</span> <a class="code" href="classsword_1_1_s_w_display.html">SWDisplay</a> rawdisp; +00104 <span class="keywordtype">char</span> *entrybuf; +00105 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> entrybufallocsize; +00106 +<a name="l00108"></a><a class="code" href="classsword_1_1_s_w_module.html#n18">00108</a> FilterList *stripFilters; +00109 +<a name="l00111"></a><a class="code" href="classsword_1_1_s_w_module.html#n19">00111</a> FilterList *rawFilters; 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 &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> &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> & 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> & 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> & 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> *) = &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, &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 & () { -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> & 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> & operator << (<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> & operator << (<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> & operator -= (<font class="keywordtype">int</font> decrement); -00391 <font class="keyword">virtual</font> <a class="code" href="class_s_w_module.html">SWModule</a> & 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> & 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> & 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> & 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> & AddRenderFilter (SWFilter * newfilter) { -00415 renderFilters->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> & RemoveRenderFilter (SWFilter * oldfilter) { -00423 renderFilters->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> & ReplaceRenderFilter (SWFilter * oldfilter, SWFilter * newfilter) { -00432 FilterList::iterator iter; -00433 <font class="keywordflow">for</font> (iter = renderFilters->begin(); iter != renderFilters->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> & AddEncodingFilter (SWFilter * newfilter) { -00452 encodingFilters->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> & RemoveEncodingFilter (SWFilter * oldfilter) { -00460 encodingFilters->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> & ReplaceEncodingFilter (SWFilter * oldfilter, SWFilter * newfilter) { -00469 FilterList::iterator iter; -00470 <font class="keywordflow">for</font> (iter = encodingFilters->begin(); iter != encodingFilters->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> & AddStripFilter (SWFilter * newfilter) { -00489 stripFilters->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> & AddRawFilter (SWFilter * newfilter) { -00506 rawFilters->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->begin(); it != filters->end(); it++) { -00519 (*it)->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> & AddOptionFilter (SWFilter * newfilter) { -00537 optionFilters->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); +<a name="l00114"></a><a class="code" href="classsword_1_1_s_w_module.html#n20">00114</a> FilterList *renderFilters; +00115 +<a name="l00117"></a><a class="code" href="classsword_1_1_s_w_module.html#n21">00117</a> FilterList *optionFilters; +00118 +<a name="l00120"></a><a class="code" href="classsword_1_1_s_w_module.html#n22">00120</a> FilterList *encodingFilters; +00121 +00122 <span class="keywordtype">int</span> entrySize; +00123 <span class="keyword">mutable</span> <span class="keywordtype">long</span> entryIndex; <span class="comment">// internal common storage for index</span> +00124 +00125 <span class="keyword">public</span>: +00132 <span class="keyword">static</span> <span class="keywordtype">void</span> nullPercent(<span class="keywordtype">char</span> percent, <span class="keywordtype">void</span> *userData); +<a name="l00137"></a><a class="code" href="classsword_1_1_s_w_module.html#m0">00137</a> <span class="keywordtype">bool</span> terminateSearch; +00150 <a class="code" href="classsword_1_1_s_w_module.html">SWModule</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *imodname = 0, <span class="keyword">const</span> <span class="keywordtype">char</span> *imoddesc = 0, <a class="code" href="classsword_1_1_s_w_display.html">SWDisplay</a> * idisp = 0, <span class="keywordtype">char</span> *imodtype = 0, SWTextEncoding encoding = ENC_UNKNOWN, SWTextDirection dir = DIRECTION_LTR, SWTextMarkup markup = FMT_UNKNOWN, <span class="keyword">const</span> <span class="keywordtype">char</span>* modlang = 0); +00153 <span class="keyword">virtual</span> ~<a class="code" href="classsword_1_1_s_w_module.html">SWModule</a>(); +00158 <span class="keyword">virtual</span> <span class="keywordtype">char</span> Error(); +<a name="l00162"></a><a class="code" href="classsword_1_1_s_w_module.html#a3">00162</a> <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> isUnicode()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (encoding == (char)ENC_UTF8 || encoding == (char)ENC_SCSU); } +00163 +00164 <span class="comment">// These methods are useful for modules that come from a standard SWORD install (most do).</span> +00165 <span class="comment">// SWMgr will call setConfig. The user may use getConfig and getConfigEntry (if they</span> +00166 <span class="comment">// are not comfortable with, or don't wish to use stl maps).</span> +00167 <span class="keyword">virtual</span> <span class="keyword">const</span> ConfigEntMap &getConfig()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *config; } +00168 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setConfig(ConfigEntMap *config); +00169 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *getConfigEntry(<span class="keyword">const</span> <span class="keywordtype">char</span> *key) <span class="keyword">const</span>; +00170 +<a name="l00174"></a><a class="code" href="classsword_1_1_s_w_module.html#a7">00174</a> <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">int</span> getEntrySize()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> entrySize; } +<a name="l00183"></a><a class="code" href="classsword_1_1_s_w_module.html#a8">00183</a> <span class="keywordtype">char</span> SetKey(<span class="keyword">const</span> <a class="code" href="classsword_1_1_s_w_key.html">SWKey</a> *ikey) { <span class="keywordflow">return</span> setKey(ikey); } +00184 <span class="keyword">virtual</span> <span class="keywordtype">char</span> setKey(<span class="keyword">const</span> SWKey *ikey); +00185 +00186 +00187 <span class="keyword">virtual</span> <span class="keywordtype">long</span> Index()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> entryIndex; } +00188 <span class="keyword">virtual</span> <span class="keywordtype">long</span> Index(<span class="keywordtype">long</span> iindex) { entryIndex = iindex; <span class="keywordflow">return</span> entryIndex; } +00189 +<a name="l00196"></a><a class="code" href="classsword_1_1_s_w_module.html#a12">00196</a> <span class="keywordtype">char</span> SetKey(<span class="keyword">const</span> <a class="code" href="classsword_1_1_s_w_key.html">SWKey</a> &ikey) { <span class="keywordflow">return</span> setKey(ikey); } +00197 <span class="keywordtype">char</span> setKey(<span class="keyword">const</span> SWKey &ikey) { <span class="keywordflow">return</span> SetKey(&ikey); } +00198 +<a name="l00203"></a><a class="code" href="classsword_1_1_s_w_module.html#a14">00203</a> <a class="code" href="classsword_1_1_s_w_key.html">SWKey</a> &Key()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *getKey(); } +00204 SWKey *getKey() <span class="keyword">const</span>; +00205 +<a name="l00213"></a><a class="code" href="classsword_1_1_s_w_module.html#a16">00213</a> <span class="keywordtype">char</span> Key(<span class="keyword">const</span> <a class="code" href="classsword_1_1_s_w_key.html">SWKey</a> & ikey) { <span class="keywordflow">return</span> setKey(ikey); } +00214 +00215 <span class="comment">/******************************************************************************</span> +00216 <span class="comment"> * SWModule::KeyText - Sets/gets module KeyText</span> +00217 <span class="comment"> *</span> +00218 <span class="comment"> * ENT: ikeytext - value which to set keytext</span> +00219 <span class="comment"> * [0] - only get</span> +00220 <span class="comment"> *</span> +00221 <span class="comment"> * RET: pointer to keytext</span> +00222 <span class="comment"> */</span> +00223 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *KeyText(<span class="keyword">const</span> <span class="keywordtype">char</span> *ikeytext = 0) { +00224 <span class="keywordflow">if</span> (ikeytext) setKey(ikeytext); +00225 <span class="keywordflow">return</span> *getKey(); +00226 } +00227 +00232 <span class="keyword">virtual</span> <span class="keywordtype">char</span> Display(); +00233 +00240 <span class="keyword">virtual</span> SWDisplay *Disp(SWDisplay * idisp = 0); +00247 <span class="keyword">virtual</span> <span class="keywordtype">char</span> *Name(<span class="keyword">const</span> <span class="keywordtype">char</span> *imodname = 0); +00254 <span class="keyword">virtual</span> <span class="keywordtype">char</span> *Description(<span class="keyword">const</span> <span class="keywordtype">char</span> *imoddesc = 0); +00261 <span class="keyword">virtual</span> <span class="keywordtype">char</span> *Type(<span class="keyword">const</span> <span class="keywordtype">char</span> *imodtype = 0); +00268 <span class="keyword">virtual</span> <span class="keywordtype">char</span> Direction(<span class="keywordtype">signed</span> <span class="keywordtype">char</span> newdir = -1); +00275 <span class="keyword">virtual</span> <span class="keywordtype">char</span> Encoding(<span class="keywordtype">signed</span> <span class="keywordtype">char</span> enc = -1); +00282 <span class="keyword">virtual</span> <span class="keywordtype">char</span> Markup(<span class="keywordtype">signed</span> <span class="keywordtype">char</span> enc = -1); +00289 <span class="keyword">virtual</span> <span class="keywordtype">char</span> *Lang(<span class="keyword">const</span> <span class="keywordtype">char</span> *imodlang = 0); +00290 +00291 <span class="comment">// search methods</span> +00292 +00304 <span class="keyword">virtual</span> ListKey & Search(<span class="keyword">const</span> <span class="keywordtype">char</span> *istr, <span class="keywordtype">int</span> searchType = 0, <span class="keywordtype">int</span> flags = 0, +00305 SWKey * scope = 0, +00306 <span class="keywordtype">bool</span> * justCheckIfSupported = 0, +00307 <span class="keywordtype">void</span> (*percent) (<span class="keywordtype">char</span>, <span class="keywordtype">void</span> *) = &nullPercent, +00308 <span class="keywordtype">void</span> *percentUserData = 0); +00312 <span class="keyword">virtual</span> <span class="keywordtype">signed</span> <span class="keywordtype">char</span> createSearchFramework() { <span class="keywordflow">return</span> 0; } <span class="comment">// special search framework</span> +00316 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> hasSearchFramework() { <span class="keywordflow">return</span> <span class="keyword">false</span>; } <span class="comment">// special search framework</span> +<a name="l00321"></a><a class="code" href="classsword_1_1_s_w_module.html#a30">00321</a> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isSearchOptimallySupported(<span class="keyword">const</span> <span class="keywordtype">char</span> *istr, <span class="keywordtype">int</span> searchType, +00322 <span class="keywordtype">int</span> flags, <a class="code" href="classsword_1_1_s_w_key.html">SWKey</a> * scope) { +00323 <span class="keywordtype">bool</span> retVal = <span class="keyword">false</span>; +00324 Search(istr, searchType, flags, scope, &retVal); +00325 <span class="keywordflow">return</span> retVal; +00326 } +00333 <span class="keyword">virtual</span> SWKey *CreateKey(); +00338 <span class="preprocessor">#ifndef SWIG </span> +00339 <span class="preprocessor"></span> <span class="keyword">virtual</span> <span class="keywordtype">char</span> *getRawEntry() = 0; +00340 <span class="preprocessor">#else</span> +00341 <span class="preprocessor"></span> <span class="keyword">virtual</span> <span class="keywordtype">char</span> *getRawEntry() {}; +00342 <span class="preprocessor">#endif </span> +00343 <span class="preprocessor"></span> +00344 +00345 <span class="comment">// write interface ----------------------------</span> +<a name="l00349"></a><a class="code" href="classsword_1_1_s_w_module.html#a33">00349</a> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isWritable() { <span class="keywordflow">return</span> <span class="keyword">false</span>; } +<a name="l00354"></a><a class="code" href="classsword_1_1_s_w_module.html#d1">00354</a> <span class="keyword">static</span> <span class="keywordtype">signed</span> <span class="keywordtype">char</span> createModule(<span class="keyword">const</span> <span class="keywordtype">char</span> *) { <span class="keywordflow">return</span> -1; } +<a name="l00359"></a><a class="code" href="classsword_1_1_s_w_module.html#a34">00359</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setEntry(<span class="keyword">const</span> <span class="keywordtype">char</span> *inbuf, <span class="keywordtype">long</span> len = -1) { } +<a name="l00363"></a><a class="code" href="classsword_1_1_s_w_module.html#a35">00363</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> linkEntry(<span class="keyword">const</span> <a class="code" href="classsword_1_1_s_w_key.html">SWKey</a> *sourceKey) { } +<a name="l00367"></a><a class="code" href="classsword_1_1_s_w_module.html#a36">00367</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> deleteEntry() {} +00368 +00369 <span class="comment">// end write interface ------------------------</span> +00370 +00376 <span class="keyword">virtual</span> <span class="keywordtype">void</span> decrement(<span class="keywordtype">int</span> steps = 1); +00382 <span class="keyword">virtual</span> <span class="keywordtype">void</span> increment(<span class="keywordtype">int</span> steps = 1); +00388 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setPosition(SW_POSITION p); +<a name="l00393"></a><a class="code" href="classsword_1_1_s_w_module.html#a40">00393</a> <span class="keyword">virtual</span> <a class="code" href="classsword_1_1_s_w_module.html">SWModule</a> & AddRenderFilter(SWFilter * newfilter) { +00394 renderFilters->push_back (newfilter); +00395 <span class="keywordflow">return</span> *<span class="keyword">this</span>; +00396 } +<a name="l00401"></a><a class="code" href="classsword_1_1_s_w_module.html#a41">00401</a> <span class="keyword">virtual</span> <a class="code" href="classsword_1_1_s_w_module.html">SWModule</a> & RemoveRenderFilter(SWFilter * oldfilter) { +00402 renderFilters->remove (oldfilter); +00403 <span class="keywordflow">return</span> *<span class="keyword">this</span>; +00404 } +<a name="l00410"></a><a class="code" href="classsword_1_1_s_w_module.html#a42">00410</a> <span class="keyword">virtual</span> <a class="code" href="classsword_1_1_s_w_module.html">SWModule</a> & ReplaceRenderFilter(SWFilter * oldfilter, SWFilter * newfilter) { +00411 FilterList::iterator iter; +00412 <span class="keywordflow">for</span> (iter = renderFilters->begin(); iter != renderFilters->end(); iter++) { +00413 <span class="keywordflow">if</span> (*iter == oldfilter) +00414 *iter = newfilter; +00415 } +00416 <span class="keywordflow">return</span> *<span class="keyword">this</span>; +00417 } +<a name="l00424"></a><a class="code" href="classsword_1_1_s_w_module.html#a43">00424</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> renderFilter(<span class="keywordtype">char</span> *buf, <span class="keywordtype">long</span> size, <a class="code" href="classsword_1_1_s_w_key.html">SWKey</a> *key) { +00425 filterBuffer(renderFilters, buf, size, key); +00426 } +<a name="l00431"></a><a class="code" href="classsword_1_1_s_w_module.html#a44">00431</a> <span class="keyword">virtual</span> <a class="code" href="classsword_1_1_s_w_module.html">SWModule</a> & AddEncodingFilter(SWFilter * newfilter) { +00432 encodingFilters->push_back (newfilter); +00433 <span class="keywordflow">return</span> *<span class="keyword">this</span>; +00434 } +<a name="l00439"></a><a class="code" href="classsword_1_1_s_w_module.html#a45">00439</a> <span class="keyword">virtual</span> <a class="code" href="classsword_1_1_s_w_module.html">SWModule</a> & RemoveEncodingFilter(SWFilter * oldfilter) { +00440 encodingFilters->remove (oldfilter); +00441 <span class="keywordflow">return</span> *<span class="keyword">this</span>; +00442 } +<a name="l00448"></a><a class="code" href="classsword_1_1_s_w_module.html#a46">00448</a> <span class="keyword">virtual</span> <a class="code" href="classsword_1_1_s_w_module.html">SWModule</a> & ReplaceEncodingFilter(SWFilter * oldfilter, SWFilter * newfilter) { +00449 FilterList::iterator iter; +00450 <span class="keywordflow">for</span> (iter = encodingFilters->begin(); iter != encodingFilters->end(); iter++) { +00451 <span class="keywordflow">if</span> (*iter == oldfilter) +00452 *iter = newfilter; +00453 } +00454 <span class="keywordflow">return</span> *<span class="keyword">this</span>; +00455 } +<a name="l00462"></a><a class="code" href="classsword_1_1_s_w_module.html#a47">00462</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> encodingFilter(<span class="keywordtype">char</span> *buf, <span class="keywordtype">long</span> size, <a class="code" href="classsword_1_1_s_w_key.html">SWKey</a> *key) { +00463 filterBuffer(encodingFilters, buf, size, key); +00464 } +<a name="l00469"></a><a class="code" href="classsword_1_1_s_w_module.html#a48">00469</a> <span class="keyword">virtual</span> <a class="code" href="classsword_1_1_s_w_module.html">SWModule</a> & AddStripFilter(SWFilter * newfilter) { +00470 stripFilters->push_back (newfilter); +00471 <span class="keywordflow">return</span> *<span class="keyword">this</span>; +00472 } +<a name="l00479"></a><a class="code" href="classsword_1_1_s_w_module.html#a49">00479</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> stripFilter(<span class="keywordtype">char</span> *buf, <span class="keywordtype">long</span> size, <a class="code" href="classsword_1_1_s_w_key.html">SWKey</a> *key) { +00480 filterBuffer(stripFilters, buf, size, key); +00481 } +<a name="l00486"></a><a class="code" href="classsword_1_1_s_w_module.html#a50">00486</a> <span class="keyword">virtual</span> <a class="code" href="classsword_1_1_s_w_module.html">SWModule</a> & AddRawFilter(SWFilter * newfilter) { +00487 rawFilters->push_back (newfilter); +00488 <span class="keywordflow">return</span> *<span class="keyword">this</span>; +00489 } +<a name="l00497"></a><a class="code" href="classsword_1_1_s_w_module.html#a51">00497</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> filterBuffer(FilterList *filters, <span class="keywordtype">char</span> *buf, <span class="keywordtype">long</span> size, <a class="code" href="classsword_1_1_s_w_key.html">SWKey</a> *key) { +00498 FilterList::iterator it; +00499 <span class="keywordflow">for</span> (it = filters->begin(); it != filters->end(); it++) { +00500 (*it)->ProcessText(buf, size, key, <span class="keyword">this</span>); +00501 } +00502 } +<a name="l00509"></a><a class="code" href="classsword_1_1_s_w_module.html#a52">00509</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> rawFilter(<span class="keywordtype">char</span> *buf, <span class="keywordtype">long</span> size, <a class="code" href="classsword_1_1_s_w_key.html">SWKey</a> *key) { +00510 filterBuffer(rawFilters, buf, size, key); +00511 } +<a name="l00516"></a><a class="code" href="classsword_1_1_s_w_module.html#a53">00516</a> <span class="keyword">virtual</span> <a class="code" href="classsword_1_1_s_w_module.html">SWModule</a> & AddOptionFilter(SWFilter * newfilter) { +00517 optionFilters->push_back(newfilter); +00518 <span class="keywordflow">return</span> *<span class="keyword">this</span>; +00519 } +<a name="l00526"></a><a class="code" href="classsword_1_1_s_w_module.html#a54">00526</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> optionFilter(<span class="keywordtype">char</span> *buf, <span class="keywordtype">long</span> size, <a class="code" href="classsword_1_1_s_w_key.html">SWKey</a> *key) { +00527 filterBuffer(optionFilters, buf, size, key); +00528 } +00536 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *StripText(<span class="keywordtype">char</span> *buf = 0, <span class="keywordtype">int</span> len = -1); +00544 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *RenderText(<span class="keywordtype">char</span> *buf = 0, <span class="keywordtype">int</span> len = -1, <span class="keywordtype">bool</span> render = <span class="keyword">true</span>); +00550 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *StripText(SWKey * tmpKey); +00556 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *RenderText(SWKey * tmpKey); +00557 +<a name="l00564"></a><a class="code" href="classsword_1_1_s_w_module.html#a59">00564</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSkipConsecutiveLinks(<span class="keywordtype">bool</span> val) { skipConsecutiveLinks = val; } +00565 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> getSkipConsecutiveLinks() { <span class="keywordflow">return</span> skipConsecutiveLinks; } +00566 <span class="keyword">virtual</span> AttributeTypeList &getEntryAttributes()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> entryAttributes; } +00567 <span class="keyword">virtual</span> <span class="keywordtype">void</span> processEntryAttributes(<span class="keywordtype">bool</span> val)<span class="keyword"> const </span>{ procEntAttr = val; } +00568 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isProcessEntryAttributes()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> procEntAttr; } +00569 +00570 +00571 +00572 <span class="comment">// OPERATORS -----------------------------------------------------------------</span> +00573 +00574 SWMODULE_OPERATORS +00575 +00576 }; 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 &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 +00578 SWORD_NAMESPACE_END +00579 <span class="preprocessor">#endif</span> +</pre></div><hr><address style="align: right;"><small>Generated on Thu Oct 31 12:11:28 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> +width=110 height=53></a>1.2.17 </small></address> </body> </html> |