<!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>TreeKeyIdx class Reference</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>TreeKeyIdx Class Reference</h1>Class <a class="el" href="class_verse_key.html">VerseKey</a> The <a class="el" href="class_s_w_key.html">SWKey</a> implementation used for verse based modules like Bibles or commentaries. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="treekeyidx_8h-source.html">treekeyidx.h</a>></code> <p> Inheritance diagram for TreeKeyIdx:<p><center><img src="class_tree_key_idx__inherit__graph.png" border="0" usemap="#_tree_key_idx__inherit__map" alt="Inheritance graph"></center> <map name="_tree_key_idx__inherit__map"> <area href="class_tree_key.html" shape="rect" coords="22,154,83,173" alt=""> <area href="class_s_w_key.html" shape="rect" coords="25,85,81,103" alt=""> <area href="class_s_w_object.html" shape="rect" coords="17,15,89,34" alt=""> </map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for TreeKeyIdx:<p><center><img src="class_tree_key_idx__coll__graph.png" border="0" usemap="#_tree_key_idx__coll__map" alt="Collaboration graph"></center> <map name="_tree_key_idx__coll__map"> <area href="class_tree_key.html" shape="rect" coords="105,268,166,287" alt=""> <area href="class_s_w_key.html" shape="rect" coords="205,196,261,215" alt=""> <area href="class_s_w_object.html" shape="rect" coords="317,106,389,124" alt=""> <area href="class_s_w_class.html" shape="rect" coords="151,15,215,34" alt=""> </map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="class_tree_key_idx-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0> <tr><td colspan=2><br><h2>Public Methods</h2></td></tr> <tr><td nowrap align=right valign=top><a name="a0" doxytag="TreeKeyIdx::TreeKeyIdx"></a> </td><td valign=bottom><b>TreeKeyIdx</b> (const TreeKeyIdx &ikey)</td></tr> <tr><td nowrap align=right valign=top><a name="a1" doxytag="TreeKeyIdx::TreeKeyIdx"></a> </td><td valign=bottom><b>TreeKeyIdx</b> (const char *idxPath, int fileMode=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a2" doxytag="TreeKeyIdx::~TreeKeyIdx"></a> </td><td valign=bottom><b>~TreeKeyIdx</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a3" doxytag="TreeKeyIdx::getLocalName"></a> virtual const char * </td><td valign=bottom><b>getLocalName</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a4" doxytag="TreeKeyIdx::setLocalName"></a> virtual const char * </td><td valign=bottom><b>setLocalName</b> (const char *)</td></tr> <tr><td nowrap align=right valign=top><a name="a5" doxytag="TreeKeyIdx::getUserData"></a> virtual const char * </td><td valign=bottom><b>getUserData</b> (int *size=0)</td></tr> <tr><td nowrap align=right valign=top><a name="a6" doxytag="TreeKeyIdx::setUserData"></a> virtual void </td><td valign=bottom><b>setUserData</b> (const char *userData, int size=0)</td></tr> <tr><td nowrap align=right valign=top><a name="a7" doxytag="TreeKeyIdx::getFullName"></a> virtual const char * </td><td valign=bottom><b>getFullName</b> () const</td></tr> <tr><td nowrap align=right valign=top><a name="a8" doxytag="TreeKeyIdx::root"></a> virtual void </td><td valign=bottom><b>root</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a9" doxytag="TreeKeyIdx::parent"></a> virtual bool </td><td valign=bottom><b>parent</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a10" doxytag="TreeKeyIdx::firstChild"></a> virtual bool </td><td valign=bottom><b>firstChild</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a11" doxytag="TreeKeyIdx::nextSibling"></a> virtual bool </td><td valign=bottom><b>nextSibling</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a12" doxytag="TreeKeyIdx::previousSibling"></a> virtual bool </td><td valign=bottom><b>previousSibling</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a13" doxytag="TreeKeyIdx::hasChildren"></a> virtual bool </td><td valign=bottom><b>hasChildren</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a14" doxytag="TreeKeyIdx::append"></a> virtual void </td><td valign=bottom><b>append</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a15" doxytag="TreeKeyIdx::appendChild"></a> virtual void </td><td valign=bottom><b>appendChild</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a16" doxytag="TreeKeyIdx::insertBefore"></a> virtual void </td><td valign=bottom><b>insertBefore</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a17" doxytag="TreeKeyIdx::remove"></a> virtual void </td><td valign=bottom><b>remove</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a18" doxytag="TreeKeyIdx::save"></a> virtual void </td><td valign=bottom><b>save</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a19" doxytag="TreeKeyIdx::copyFrom"></a> virtual void </td><td valign=bottom><b>copyFrom</b> (const TreeKeyIdx &ikey)</td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="class_tree_key_idx.html#a20">copyFrom</a> (const <a class="el" href="class_s_w_key.html">SWKey</a> &ikey)</td></tr> <tr><td> </td><td><font size=-1><em>Equates this <a class="el" href="class_s_w_key.html">SWKey</a> to another <a class="el" href="class_s_w_key.html">SWKey</a> object.</em> <a href="#a20">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a21" doxytag="TreeKeyIdx::operator="></a> virtual <a class="el" href="class_s_w_key.html">SWKey</a> & </td><td valign=bottom><b>operator=</b> (const TreeKeyIdx &ikey)</td></tr> <tr><td nowrap align=right valign=top><a name="a22" doxytag="TreeKeyIdx::setOffset"></a> void </td><td valign=bottom><b>setOffset</b> (unsigned long offset)</td></tr> <tr><td nowrap align=right valign=top><a name="a23" doxytag="TreeKeyIdx::getOffset"></a> unsigned long </td><td valign=bottom><b>getOffset</b> () const</td></tr> <tr><td nowrap align=right valign=top>virtual SWKEY_OPERATORS void </td><td valign=bottom><a class="el" href="class_tree_key_idx.html#a24">setText</a> (const char *ikey)</td></tr> <tr><td> </td><td><font size=-1><em>Equates this <a class="el" href="class_s_w_key.html">SWKey</a> to a character string.</em> <a href="#a24">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a25" doxytag="TreeKeyIdx::setPosition"></a> virtual void </td><td valign=bottom><b>setPosition</b> (SW_POSITION p)</td></tr> <tr><td nowrap align=right valign=top><a name="a26" doxytag="TreeKeyIdx::getText"></a> virtual const char * </td><td valign=bottom><a class="el" href="class_tree_key_idx.html#a26">getText</a> () const</td></tr> <tr><td> </td><td><font size=-1><em>returns text key if (char *) cast is requested.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a27" doxytag="TreeKeyIdx::_compare"></a> virtual int </td><td valign=bottom><b>_compare</b> (const TreeKeyIdx &ikey)</td></tr> <tr><td nowrap align=right valign=top>virtual int </td><td valign=bottom><a class="el" href="class_tree_key_idx.html#a28">compare</a> (const <a class="el" href="class_s_w_key.html">SWKey</a> &ikey)</td></tr> <tr><td> </td><td><font size=-1><em>Compares another <a class="el" href="class_verse_key.html">VerseKey</a> object.</em> <a href="#a28">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="class_tree_key_idx.html#a29">decrement</a> (int steps=1)</td></tr> <tr><td> </td><td><font size=-1><em>Decrements key a number of entries.</em> <a href="#a29">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="class_tree_key_idx.html#a30">increment</a> (int steps=1)</td></tr> <tr><td> </td><td><font size=-1><em>Increments key a number of entries.</em> <a href="#a30">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a31" doxytag="TreeKeyIdx::Traversable"></a> virtual char </td><td valign=bottom><b>Traversable</b> ()</td></tr> <tr><td colspan=2><br><h2>Static Public Methods</h2></td></tr> <tr><td nowrap align=right valign=top><a name="d0" doxytag="TreeKeyIdx::create"></a> signed char </td><td valign=bottom><b>create</b> (const char *path)</td></tr> <tr><td colspan=2><br><h2>Private Methods</h2></td></tr> <tr><td nowrap align=right valign=top><a name="c0" doxytag="TreeKeyIdx::getTreeNodeFromDatOffset"></a> void </td><td valign=bottom><b>getTreeNodeFromDatOffset</b> (long ioffset, TreeNode *buf) const</td></tr> <tr><td nowrap align=right valign=top><a name="c1" doxytag="TreeKeyIdx::getTreeNodeFromIdxOffset"></a> char </td><td valign=bottom><b>getTreeNodeFromIdxOffset</b> (long ioffset, TreeNode *node) const</td></tr> <tr><td nowrap align=right valign=top><a name="c2" doxytag="TreeKeyIdx::saveTreeNode"></a> void </td><td valign=bottom><b>saveTreeNode</b> (TreeNode *node)</td></tr> <tr><td nowrap align=right valign=top><a name="c3" doxytag="TreeKeyIdx::saveTreeNodeOffsets"></a> void </td><td valign=bottom><b>saveTreeNodeOffsets</b> (TreeNode *node)</td></tr> <tr><td nowrap align=right valign=top><a name="c4" doxytag="TreeKeyIdx::init"></a> void </td><td valign=bottom><b>init</b> ()</td></tr> <tr><td colspan=2><br><h2>Private Attributes</h2></td></tr> <tr><td nowrap align=right valign=top><a name="o0" doxytag="TreeKeyIdx::currentNode"></a> TreeKeyIdx::TreeNode </td><td valign=bottom><b>currentNode</b></td></tr> <tr><td nowrap align=right valign=top><a name="o1" doxytag="TreeKeyIdx::path"></a> char * </td><td valign=bottom><b>path</b></td></tr> <tr><td nowrap align=right valign=top><a name="o2" doxytag="TreeKeyIdx::idxfd"></a> FileDesc * </td><td valign=bottom><b>idxfd</b></td></tr> <tr><td nowrap align=right valign=top><a name="o3" doxytag="TreeKeyIdx::datfd"></a> FileDesc * </td><td valign=bottom><b>datfd</b></td></tr> <tr><td colspan=2><br><h2>Static Private Attributes</h2></td></tr> <tr><td nowrap align=right valign=top><a name="r0" doxytag="TreeKeyIdx::classdef"></a> <a class="el" href="class_s_w_class.html">SWClass</a> </td><td valign=bottom><b>classdef</b></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Class <a class="el" href="class_verse_key.html">VerseKey</a> The <a class="el" href="class_s_w_key.html">SWKey</a> implementation used for verse based modules like Bibles or commentaries. <p> <p> Definition at line <a class="el" href="treekeyidx_8h-source.html#l00035">35</a> of file <a class="el" href="treekeyidx_8h-source.html">treekeyidx.h</a>.<hr><h2>Member Function Documentation</h2> <a name="a28" doxytag="TreeKeyIdx::compare"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int TreeKeyIdx::compare </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="class_s_w_key.html">SWKey</a> & </td> <td class="mdname1" valign="top" nowrap> <em>ikey</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Compares another <a class="el" href="class_verse_key.html">VerseKey</a> object. <p> <dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>ikey</em> </td><td> key to compare with this one </td></tr> </table> </dl><dl compact><dt><b> Returns: </b><dd> >0 if this key is greater than compare key; <0 if this key is smaller than compare key; 0 if the keys are the same </dl> <p> Implements <a class="el" href="class_tree_key.html#a22">TreeKey</a>. <p> Definition at line <a class="el" href="treekeyidx_8cpp-source.html#l00520">520</a> of file <a class="el" href="treekeyidx_8cpp-source.html">treekeyidx.cpp</a>. <p> References <a class="el" href="swkey_8cpp-source.html#l00151">SWKey::compare</a>(). <p> <div class="fragment"><pre>00520 { 00521 <a class="code" href="class_tree_key_idx.html">TreeKeyIdx</a> *treeKey = SWDYNAMIC_CAST(<a class="code" href="class_tree_key_idx.html">TreeKeyIdx</a>, (&ikey)); 00522 <font class="keywordflow">if</font> (treeKey) 00523 <font class="keywordflow">return</font> _compare(*treeKey); 00524 <font class="keywordflow">return</font> <a class="code" href="class_s_w_key.html#a11">SWKey::compare</a>(ikey); 00525 } </pre></div> </td> </tr> </table> <a name="a20" doxytag="TreeKeyIdx::copyFrom"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void TreeKeyIdx::copyFrom </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="class_s_w_key.html">SWKey</a> & </td> <td class="mdname1" valign="top" nowrap> <em>ikey</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Equates this <a class="el" href="class_s_w_key.html">SWKey</a> to another <a class="el" href="class_s_w_key.html">SWKey</a> object. <p> <dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>ikey</em> </td><td> other swkey object </td></tr> </table> </dl> <p> Reimplemented from <a class="el" href="class_s_w_key.html#a8">SWKey</a>. <p> Definition at line <a class="el" href="treekeyidx_8cpp-source.html#l00494">494</a> of file <a class="el" href="treekeyidx_8cpp-source.html">treekeyidx.cpp</a>. <p> References <a class="el" href="swkey_8cpp-source.html#l00126">SWKey::copyFrom</a>(). <p> <div class="fragment"><pre>00494 { 00495 <a class="code" href="class_s_w_key.html#a8">SWKey::copyFrom</a>(ikey); 00496 } </pre></div> </td> </tr> </table> <a name="a29" doxytag="TreeKeyIdx::decrement"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void TreeKeyIdx::decrement </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">int </td> <td class="mdname1" valign="top" nowrap> <em>steps</em> = 1 </td> <td class="md" valign="top">) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Decrements key a number of entries. <p> <dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>steps</em> </td><td> Number of entries to jump backward </td></tr> </table> </dl><dl compact><dt><b> Returns: </b><dd> *this </dl> <p> Implements <a class="el" href="class_tree_key.html#a23">TreeKey</a>. <p> Definition at line <a class="el" href="treekeyidx_8cpp-source.html#l00528">528</a> of file <a class="el" href="treekeyidx_8cpp-source.html">treekeyidx.cpp</a>. <p> <div class="fragment"><pre>00528 { 00529 error = getTreeNodeFromIdxOffset(currentNode.offset - (4*steps), &currentNode); 00530 } </pre></div> </td> </tr> </table> <a name="a30" doxytag="TreeKeyIdx::increment"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void TreeKeyIdx::increment </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">int </td> <td class="mdname1" valign="top" nowrap> <em>steps</em> = 1 </td> <td class="md" valign="top">) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Increments key a number of entries. <p> <dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>increment</em> </td><td> Number of entries to jump forward </td></tr> </table> </dl><dl compact><dt><b> Returns: </b><dd> *this </dl> <p> Implements <a class="el" href="class_tree_key.html#a24">TreeKey</a>. <p> Definition at line <a class="el" href="treekeyidx_8cpp-source.html#l00532">532</a> of file <a class="el" href="treekeyidx_8cpp-source.html">treekeyidx.cpp</a>. <p> <div class="fragment"><pre>00532 { 00533 error = getTreeNodeFromIdxOffset(currentNode.offset + (4*steps), &currentNode); 00534 00535 <font class="comment">/*</font> 00536 <font class="comment"> // assert positive</font> 00537 <font class="comment"> if (steps < 0) {</font> 00538 <font class="comment"> decrement(steps * -1);</font> 00539 <font class="comment"> return;</font> 00540 <font class="comment"> }</font> 00541 <font class="comment"></font> 00542 <font class="comment"> while (steps > 0) {</font> 00543 <font class="comment"> if (!firstChild()) {</font> 00544 <font class="comment"> if (!nextSibbling() {</font> 00545 <font class="comment"> error = KEYERR_OUTOFBOUNDS;</font> 00546 <font class="comment"> return;</font> 00547 <font class="comment"> }</font> 00548 <font class="comment"> }</font> 00549 <font class="comment"> steps--;</font> 00550 <font class="comment"> }</font> 00551 <font class="comment">*/</font> 00552 } </pre></div> </td> </tr> </table> <a name="a24" doxytag="TreeKeyIdx::setText"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void TreeKeyIdx::setText </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const char * </td> <td class="mdname1" valign="top" nowrap> <em>ikey</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Equates this <a class="el" href="class_s_w_key.html">SWKey</a> to a character string. <p> <dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>ikey</em> </td><td> string to set this key to </td></tr> </table> </dl> <p> Implements <a class="el" href="class_tree_key.html#a19">TreeKey</a>. <p> Definition at line <a class="el" href="treekeyidx_8cpp-source.html#l00466">466</a> of file <a class="el" href="treekeyidx_8cpp-source.html">treekeyidx.cpp</a>. <p> References <a class="el" href="swkey_8cpp-source.html#l00100">SWKey::Error</a>(). <p> <div class="fragment"><pre>00466 { 00467 <font class="keywordtype">char</font> *buf = 0; 00468 stdstr(&buf, ikey); 00469 <font class="keywordtype">char</font> *leaf = strtok(buf, <font class="stringliteral">"/"</font>); 00470 root(); 00471 <font class="keywordflow">while</font> ((leaf) && (!<a class="code" href="class_s_w_key.html#a6">Error</a>())) { 00472 <font class="keywordtype">bool</font> ok, inChild = <font class="keyword">false</font>; 00473 <font class="keywordflow">for</font> (ok = firstChild(); ok; ok = nextSibling()) { 00474 inChild = <font class="keyword">true</font>; 00475 <font class="keywordflow">if</font> (!stricmp(leaf, getLocalName())) 00476 <font class="keywordflow">break</font>; 00477 } 00478 leaf = strtok(0, <font class="stringliteral">"/"</font>); 00479 <font class="keywordflow">if</font> (!ok) { 00480 <font class="keywordflow">if</font> (inChild) { <font class="comment">// if we didn't find a matching child node, default to first child</font> 00481 parent(); 00482 firstChild(); 00483 } 00484 <font class="keywordflow">if</font> (leaf) 00485 error = KEYERR_OUTOFBOUNDS; 00486 <font class="keywordflow">break</font>; 00487 } 00488 } 00489 <font class="keyword">delete</font> [] buf; 00490 } </pre></div> </td> </tr> </table> <hr>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="treekeyidx_8h-source.html">treekeyidx.h</a><li><a class="el" href="treekeyidx_8cpp-source.html">treekeyidx.cpp</a></ul> <hr><address align="right"><small>Generated on Thu Jun 20 22:13:05 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>