aboutsummaryrefslogblamecommitdiffstats
path: root/doc/api-documentation/html/versekey_8h-source.html
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> &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>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 &lt;swkey.h&gt;</font>
00027 <font class="preprocessor">#include &lt;swmacs.h&gt;</font>
00028 <font class="preprocessor">#include &lt;listkey.h&gt;</font>
00029 <font class="preprocessor">#include &lt;ctype.h&gt;</font>
00030 
00031 <font class="preprocessor">#include &lt;defs.h&gt;</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> &amp;k);
00191         
00195         <font class="keyword">virtual</font> ~ VerseKey();
00196 
00203         <a class="code" href="class_verse_key.html">VerseKey</a> &amp; LowerBound(<font class="keyword">const</font> <font class="keywordtype">char</font> *lb);
00204         
00210         <a class="code" href="class_verse_key.html">VerseKey</a> &amp; UpperBound(<font class="keyword">const</font> <font class="keywordtype">char</font> *ub);
00211         
00215         <a class="code" href="class_verse_key.html">VerseKey</a> &amp; LowerBound() <font class="keyword">const</font>;
00216         
00220         <a class="code" href="class_verse_key.html">VerseKey</a> &amp; 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> &amp; 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> &amp; 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> &amp; 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> &amp; 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> &amp; operator = (<font class="keyword">const</font> <a class="code" href="class_verse_key.html">VerseKey</a> &amp; 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>