aboutsummaryrefslogtreecommitdiffstats
path: root/doc/api-documentation/html/versekey_8h-source.html
blob: 2b41b3e4b2668b7ae9d25518cc693271a7e05ee4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
<!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>