blob: 2b41b3e4b2668b7ae9d25518cc693271a7e05ee4 (
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>versekey.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> <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>versekey.h</h1><div class="fragment"><pre>00001 <font class="comment">/******************************************************************************</font>
00002 <font class="comment"> * versekey.h - code for class 'versekey'- a standard Biblical verse key</font>
00003 <font class="comment"> *</font>
00004 <font class="comment"> * $Id: versekey_8h-source.html,v 1.7 2002/06/20 20:23:10 mgruner Exp $</font>
00005 <font class="comment"> *</font>
00006 <font class="comment"> * Copyright 1998 CrossWire Bible Society (http://www.crosswire.org)</font>
00007 <font class="comment"> * CrossWire Bible Society</font>
00008 <font class="comment"> * P. O. Box 2528</font>
00009 <font class="comment"> * Tempe, AZ 85280-2528</font>
00010 <font class="comment"> *</font>
00011 <font class="comment"> * This program is free software; you can redistribute it and/or modify it</font>
00012 <font class="comment"> * under the terms of the GNU General Public License as published by the</font>
00013 <font class="comment"> * Free Software Foundation version 2.</font>
00014 <font class="comment"> *</font>
00015 <font class="comment"> * This program is distributed in the hope that it will be useful, but</font>
00016 <font class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of</font>
00017 <font class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</font>
00018 <font class="comment"> * General Public License for more details.</font>
00019 <font class="comment"> *</font>
00020 <font class="comment"> */</font>
00021
00022
00023 <font class="preprocessor">#ifndef VERSEKEY_H</font>
00024 <font class="preprocessor"></font><font class="preprocessor">#define VERSEKEY_H</font>
00025 <font class="preprocessor"></font>
00026 <font class="preprocessor">#include <swkey.h></font>
00027 <font class="preprocessor">#include <swmacs.h></font>
00028 <font class="preprocessor">#include <listkey.h></font>
00029 <font class="preprocessor">#include <ctype.h></font>
00030
00031 <font class="preprocessor">#include <defs.h></font>
00032
00033 <font class="preprocessor">#define POS_MAXVERSE ((char)3)</font>
00034 <font class="preprocessor"></font><font class="preprocessor">#define POS_MAXCHAPTER ((char)4)</font>
00035 <font class="preprocessor"></font><font class="preprocessor">#define POS_MAXBOOK ((char)5)</font>
00036 <font class="preprocessor"></font>
00037 <font class="preprocessor">#define MAXVERSE SW_POSITION(POS_MAXVERSE)</font>
00038 <font class="preprocessor"></font><font class="preprocessor">#define MAXCHAPTER SW_POSITION(POS_MAXCHAPTER)</font>
00039 <font class="preprocessor"></font><font class="preprocessor">#define MAXBOOK SW_POSITION(POS_MAXBOOK)</font>
00040 <font class="preprocessor"></font>
00041 <font class="keyword">struct </font>sbook
00042 {
00045 <font class="keyword">const</font> <font class="keywordtype">char</font> *name;
00046
00049 <font class="keyword">const</font> <font class="keywordtype">char</font> *prefAbbrev;
00050
00053 <font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> chapmax;
00056 <font class="keywordtype">int</font> *versemax;
00057 };
00058
00059 <font class="keyword">struct </font>abbrev
00060 {
00061 <font class="keyword">const</font> <font class="keywordtype">char</font> *ab;
00062 <font class="keywordtype">int</font> book;
00063 };
00064
00065
00066 <font class="keyword">class </font><a class="code" href="class_s_w_locale.html">SWLocale</a>;
00067
<a name="l00072"></a><a class="code" href="class_verse_key.html">00072</a> <font class="keyword">class </font>SWDLLEXPORT <a class="code" href="class_verse_key.html">VerseKey</a>:<font class="keyword">public</font> <a class="code" href="class_s_w_key.html">SWKey</a>
00073 {
00074 <font class="keyword">class </font>LocaleCache
00075 {
00076 <font class="keyword">public</font>:
00077 <font class="keywordtype">char</font> *name;
00078 <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> abbrevsCnt;
00079 <a class="code" href="class_s_w_locale.html">SWLocale</a> *locale;
00080 LocaleCache()
00081 {
00082 name = 0;
00083 abbrevsCnt = 0;
00084 locale = 0;
00085 }
00086 <font class="keyword">virtual</font> ~LocaleCache()
00087 {
00088 <font class="keywordflow">if</font> (name)
00089 <font class="keyword">delete</font>[]name;
00090 }
00091 };
00092
00093 <font class="keyword">static</font> <a class="code" href="class_s_w_class.html">SWClass</a> classdef;
00094
00095 <font class="keyword">static</font> <font class="keywordtype">long</font> *offsets[2][2];
00096 <font class="keyword">static</font> <font class="keywordtype">int</font> offsize[2][2];
00099 <font class="keyword">static</font> <font class="keywordtype">int</font> instance;
00100 <font class="keyword">static</font> <font class="keyword">struct </font>sbook otbooks[];
00101 <font class="keyword">static</font> <font class="keyword">struct </font>sbook ntbooks[];
00102 <font class="keyword">static</font> <font class="keywordtype">long</font> otbks[];
00103 <font class="keyword">static</font> <font class="keywordtype">long</font> otcps[];
00104 <font class="keyword">static</font> <font class="keywordtype">long</font> ntbks[];
00105 <font class="keyword">static</font> <font class="keywordtype">long</font> ntcps[];
00106 <font class="keyword">static</font> <font class="keywordtype">int</font> vm[];
00107 <font class="keyword">static</font> LocaleCache localeCache;
00108 <a class="code" href="class_list_key.html">ListKey</a> internalListKey;
00109
00110 <font class="keyword">const</font> <font class="keyword">struct </font>abbrev *abbrevs;
00111 <font class="keywordtype">char</font> *locale;
00112 <font class="keywordtype">int</font> abbrevsCnt;
<a name="l00115"></a><a class="code" href="class_verse_key.html#o4">00115</a> <font class="keywordtype">signed</font> <font class="keywordtype">char</font> testament;
00116 <font class="keyword">mutable</font> <font class="keywordtype">signed</font> <font class="keywordtype">char</font> book;
00117 <font class="keyword">mutable</font> <font class="keywordtype">signed</font> <font class="keywordtype">int</font> chapter;
00118 <font class="keyword">mutable</font> <font class="keywordtype">signed</font> <font class="keywordtype">int</font> verse;
<a name="l00121"></a><a class="code" href="class_verse_key.html#o8">00121</a> <font class="keywordtype">char</font> autonorm;
<a name="l00124"></a><a class="code" href="class_verse_key.html#o9">00124</a> <font class="keywordtype">char</font> headings;
00125
00126 <font class="keywordtype">int</font> getBookAbbrev(<font class="keyword">const</font> <font class="keywordtype">char</font> *abbr);
00127 <font class="keywordtype">void</font> initBounds() <font class="keyword">const</font>;
00130 <font class="keywordtype">void</font> initstatics();
00133 <font class="keywordtype">void</font> init();
00138 <font class="keywordtype">void</font> freshtext() <font class="keyword">const</font>;
00142 <font class="keyword">virtual</font> <font class="keywordtype">char</font> parse();
00151 <font class="keywordtype">int</font> findindex(<font class="keywordtype">long</font> *array, <font class="keywordtype">int</font> size, <font class="keywordtype">long</font> value);
00152 <font class="keyword">mutable</font> <a class="code" href="class_verse_key.html">VerseKey</a> *lowerBound, *upperBound;
00153
00154 <font class="keyword">public</font>:
00155 <font class="keyword">static</font> <font class="keyword">const</font> <font class="keywordtype">char</font> builtin_BMAX[2];
00156 <font class="keyword">static</font> <font class="keyword">struct </font>sbook *builtin_books[2];
00157 <font class="keyword">static</font> <font class="keyword">const</font> <font class="keyword">struct </font>abbrev builtin_abbrevs[];
00158 <font class="keyword">const</font> <font class="keywordtype">char</font> *BMAX;
00159 <font class="keyword">struct </font>sbook **books;
00160
00167 <a class="code" href="class_verse_key.html">VerseKey</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *ikey = 0);
00168
00175 <a class="code" href="class_verse_key.html">VerseKey</a>(<font class="keyword">const</font> <a class="code" href="class_s_w_key.html">SWKey</a> * ikey);
00176
00183 <a class="code" href="class_verse_key.html">VerseKey</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *min, <font class="keyword">const</font> <font class="keywordtype">char</font> *max);
00184
00190 <a class="code" href="class_verse_key.html">VerseKey</a>(<font class="keyword">const</font> <a class="code" href="class_verse_key.html">VerseKey</a> &k);
00191
00195 <font class="keyword">virtual</font> ~ VerseKey();
00196
00203 <a class="code" href="class_verse_key.html">VerseKey</a> & LowerBound(<font class="keyword">const</font> <font class="keywordtype">char</font> *lb);
00204
00210 <a class="code" href="class_verse_key.html">VerseKey</a> & UpperBound(<font class="keyword">const</font> <font class="keywordtype">char</font> *ub);
00211
00215 <a class="code" href="class_verse_key.html">VerseKey</a> & LowerBound() <font class="keyword">const</font>;
00216
00220 <a class="code" href="class_verse_key.html">VerseKey</a> & UpperBound() <font class="keyword">const</font>;
00221
00224 <font class="keywordtype">void</font> ClearBounds();
00225
00229 <font class="keyword">virtual</font> <a class="code" href="class_s_w_key.html">SWKey</a> *<a class="code" href="class_s_w_key.html#a3">clone</a>() <font class="keyword">const</font>;
00230
00234 <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *<a class="code" href="class_s_w_key.html#a9">getText</a>() <font class="keyword">const</font>;
00235 <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *getShortText() <font class="keyword">const</font>;
<a name="l00236"></a><a class="code" href="class_verse_key.html#a13">00236</a> <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_s_w_key.html#a7">setText</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *ikey) { <a class="code" href="class_s_w_key.html#a7">SWKey::setText</a>(ikey); parse (); }
00237 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_s_w_key.html#a8">copyFrom</a>(<font class="keyword">const</font> <a class="code" href="class_s_w_key.html">SWKey</a> & ikey);
00238
00241 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_s_w_key.html#a8">copyFrom</a>(<font class="keyword">const</font> <a class="code" href="class_verse_key.html">VerseKey</a> & ikey);
00242
00248 <font class="keyword">virtual</font> <font class="keywordtype">void</font> setPosition(SW_POSITION);
00249
00255 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_s_w_key.html#a14">decrement</a>(<font class="keywordtype">int</font> step);
00256
00262 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_s_w_key.html#a15">increment</a>(<font class="keywordtype">int</font> step);
00263 <font class="keyword">virtual</font> <font class="keywordtype">char</font> Traversable() { <font class="keywordflow">return</font> 1; }
00264
00265 <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *getBookName() <font class="keyword">const</font>;
00266 <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *getBookAbbrev() <font class="keyword">const</font>;
00271 <font class="keyword">virtual</font> <font class="keywordtype">char</font> Testament() <font class="keyword">const</font>;
00272
00277 <font class="keyword">virtual</font> <font class="keywordtype">char</font> Book() <font class="keyword">const</font>;
00278
00283 <font class="keyword">virtual</font> <font class="keywordtype">int</font> Chapter() <font class="keyword">const</font>;
00284
00289 <font class="keyword">virtual</font> <font class="keywordtype">int</font> Verse() <font class="keyword">const</font>;
00290
00298 <font class="keyword">virtual</font> <font class="keywordtype">char</font> Testament(<font class="keywordtype">char</font> itestament);
00299
00307 <font class="keyword">virtual</font> <font class="keywordtype">char</font> Book(<font class="keywordtype">char</font> ibook);
00308
00316 <font class="keyword">virtual</font> <font class="keywordtype">int</font> Chapter(<font class="keywordtype">int</font> ichapter);
00317
00325 <font class="keyword">virtual</font> <font class="keywordtype">int</font> Verse(<font class="keywordtype">int</font> iverse);
00326
00333 <font class="keyword">virtual</font> <font class="keywordtype">void</font> Normalize(<font class="keywordtype">char</font> autocheck = 0);
00334
00343 <font class="keyword">virtual</font> <font class="keywordtype">char</font> AutoNormalize(<font class="keywordtype">char</font> iautonorm = MAXPOS (<font class="keywordtype">char</font>));
00344
00353 <font class="keyword">virtual</font> <font class="keywordtype">char</font> Headings(<font class="keywordtype">char</font> iheadings = MAXPOS (<font class="keywordtype">char</font>));
00354
00355 <font class="keyword">virtual</font> <font class="keywordtype">long</font> NewIndex() <font class="keyword">const</font>;
00356
00361 <font class="keyword">virtual</font> <font class="keywordtype">long</font> <a class="code" href="class_s_w_key.html#a17">Index</a>() <font class="keyword">const</font>;
00362
00368 <font class="keyword">virtual</font> <font class="keywordtype">long</font> <a class="code" href="class_s_w_key.html#a17">Index</a>(<font class="keywordtype">long</font> iindex);
00369
00370 <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *getOSISRef() <font class="keyword">const</font>;
00371
00372 <font class="keyword">virtual</font> <a class="code" href="class_list_key.html">ListKey</a> ParseVerseList(<font class="keyword">const</font> <font class="keywordtype">char</font> *buf, <font class="keyword">const</font> <font class="keywordtype">char</font> *defaultKey = <font class="stringliteral">"Genesis 1:1"</font>, <font class="keywordtype">bool</font> expandRange = <font class="keyword">false</font>);
00380 <font class="keyword">virtual</font> <font class="keywordtype">int</font> <a class="code" href="class_s_w_key.html#a11">compare</a>(<font class="keyword">const</font> <a class="code" href="class_s_w_key.html">SWKey</a> & ikey);
00381
00389 <font class="keyword">virtual</font> <font class="keywordtype">int</font> _compare(<font class="keyword">const</font> <a class="code" href="class_verse_key.html">VerseKey</a> & ikey);
00390
00391 <font class="keyword">virtual</font> <font class="keywordtype">void</font> setBookAbbrevs(<font class="keyword">const</font> <font class="keyword">struct</font> abbrev *bookAbbrevs, <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> size = 0 <font class="comment">/* default determine size */</font> );
00392 <font class="keyword">virtual</font> <font class="keywordtype">void</font> setBooks(<font class="keyword">const</font> <font class="keywordtype">char</font> *iBMAX, <font class="keyword">struct</font> sbook **ibooks);
00393 <font class="keyword">virtual</font> <font class="keywordtype">void</font> setLocale(<font class="keyword">const</font> <font class="keywordtype">char</font> *name);
00394 <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *getLocale()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> locale; }
00395
00396 SWKEY_OPERATORS
00397
00398 <font class="keyword">virtual</font> <a class="code" href="class_s_w_key.html">SWKey</a> & operator = (<font class="keyword">const</font> <a class="code" href="class_verse_key.html">VerseKey</a> & ikey) { <a class="code" href="class_s_w_key.html#a8">copyFrom</a>(ikey); <font class="keywordflow">return</font> *<font class="keyword">this</font>; }
00399 };
00400
00401
00402 <font class="preprocessor">#endif</font>
</pre></div><hr><address align="right"><small>Generated on Thu Jun 20 22:13:01 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>
|