EVOLUTION-MANAGER
Edit File: classSDTSIndexedReader.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.5"/> <title>SDTS_AL: SDTSIndexedReader Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">SDTS_AL </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.5 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="classSDTSIndexedReader-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">SDTSIndexedReader Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div> </div><!--header--> <div class="contents"> <p><code>#include <<a class="el" href="sdts__al_8h_source.html">sdts_al.h</a>></code></p> <div class="dynheader"> Inheritance diagram for SDTSIndexedReader:</div> <div class="dyncontent"> <div class="center"> <img src="classSDTSIndexedReader.png" usemap="#SDTSIndexedReader_map" alt=""/> <map id="SDTSIndexedReader_map" name="SDTSIndexedReader_map"> <area href="classSDTSAttrReader.html" alt="SDTSAttrReader" shape="rect" coords="0,56,131,80"/> <area href="classSDTSLineReader.html" alt="SDTSLineReader" shape="rect" coords="141,56,272,80"/> <area href="classSDTSPointReader.html" alt="SDTSPointReader" shape="rect" coords="282,56,413,80"/> <area href="classSDTSPolygonReader.html" alt="SDTSPolygonReader" shape="rect" coords="423,56,554,80"/> </map> </div></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:a9f5461d109c158088c7e783de52a39f3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSDTSFeature.html">SDTSFeature</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSDTSIndexedReader.html#a9f5461d109c158088c7e783de52a39f3">GetNextFeature</a> ()</td></tr> <tr class="separator:a9f5461d109c158088c7e783de52a39f3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2c6df4e9ddb8ef56529c8055e766548e"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSDTSIndexedReader.html#a2c6df4e9ddb8ef56529c8055e766548e">Rewind</a> ()</td></tr> <tr class="separator:a2c6df4e9ddb8ef56529c8055e766548e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aae6915a8a2b630483bfd32ff1f69c166"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSDTSIndexedReader.html#aae6915a8a2b630483bfd32ff1f69c166">FillIndex</a> ()</td></tr> <tr class="separator:aae6915a8a2b630483bfd32ff1f69c166"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa64beddeef5c8266c4647f6f440ed12a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSDTSIndexedReader.html#aa64beddeef5c8266c4647f6f440ed12a">ClearIndex</a> ()</td></tr> <tr class="separator:aa64beddeef5c8266c4647f6f440ed12a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac2f097b0ba6e558c4d9e35bf0bc08d4f"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classSDTSIndexedReader.html#ac2f097b0ba6e558c4d9e35bf0bc08d4f">IsIndexed</a> ()</td></tr> <tr class="separator:ac2f097b0ba6e558c4d9e35bf0bc08d4f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a748914427a4bccd9497c9cd0c52ef297"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSDTSFeature.html">SDTSFeature</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSDTSIndexedReader.html#a748914427a4bccd9497c9cd0c52ef297">GetIndexedFeatureRef</a> (int)</td></tr> <tr class="separator:a748914427a4bccd9497c9cd0c52ef297"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4bc517f41916afab133cfadc01568b12"><td class="memItemLeft" align="right" valign="top">char ** </td><td class="memItemRight" valign="bottom"><a class="el" href="classSDTSIndexedReader.html#a4bc517f41916afab133cfadc01568b12">ScanModuleReferences</a> (const char *="ATID")</td></tr> <tr class="separator:a4bc517f41916afab133cfadc01568b12"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>Base class for all the <a class="el" href="classSDTSFeature.html">SDTSFeature</a> type readers. Provides feature caching semantics and fetching based on a record number. </p> </div><h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="aa64beddeef5c8266c4647f6f440ed12a"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void SDTSIndexedReader::ClearIndex </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Free all features in the index (if filled).</p> <p>After this the reader is considered to not be indexed, and <a class="el" href="classSDTSIndexedReader.html#ac2f097b0ba6e558c4d9e35bf0bc08d4f">IsIndexed()</a> will return FALSE untill the index is forcably filled again. </p> </div> </div> <a class="anchor" id="aae6915a8a2b630483bfd32ff1f69c166"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void SDTSIndexedReader::FillIndex </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Read all features into a memory indexed cached.</p> <p>The <a class="el" href="classSDTSIndexedReader.html#aa64beddeef5c8266c4647f6f440ed12a">ClearIndex()</a> method can be used to free all indexed features. <a class="el" href="classSDTSIndexedReader.html#aae6915a8a2b630483bfd32ff1f69c166">FillIndex()</a> does nothing, if an index has already been built. </p> </div> </div> <a class="anchor" id="a748914427a4bccd9497c9cd0c52ef297"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classSDTSFeature.html">SDTSFeature</a> * SDTSIndexedReader::GetIndexedFeatureRef </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>iRecordId</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Fetch a feature based on it's record number.</p> <p>This method will forceably fill the feature cache, reading all the features in the file into memory, if they haven't already been loaded. The <a class="el" href="classSDTSIndexedReader.html#aa64beddeef5c8266c4647f6f440ed12a">ClearIndex()</a> method can be used to flush this cache when no longer needed.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">iRecordId</td><td>the record to fetch, normally based on the nRecord field of an <a class="el" href="classSDTSModId.html">SDTSModId</a>.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>a pointer to an internal feature (not to be deleted) or NULL if there is no matching feature. </dd></dl> </div> </div> <a class="anchor" id="a9f5461d109c158088c7e783de52a39f3"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classSDTSFeature.html">SDTSFeature</a> * SDTSIndexedReader::GetNextFeature </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Fetch the next available feature from this reader.</p> <p>The returned <a class="el" href="classSDTSFeature.html">SDTSFeature</a> * is to an internal indexed object if the <a class="el" href="classSDTSIndexedReader.html#ac2f097b0ba6e558c4d9e35bf0bc08d4f">IsIndexed()</a> method returns TRUE, otherwise the returned feature becomes the responsibility of the caller to destroy with delete.</p> <p>Note that the <a class="el" href="classSDTSIndexedReader.html#a2c6df4e9ddb8ef56529c8055e766548e">Rewind()</a> method can be used to start over at the beginning of the modules feature list.</p> <dl class="section return"><dt>Returns</dt><dd>next feature, or NULL if no more are left. Please review above ownership/delete semantics. </dd></dl> </div> </div> <a class="anchor" id="ac2f097b0ba6e558c4d9e35bf0bc08d4f"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int SDTSIndexedReader::IsIndexed </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Returns TRUE if the module is indexed, otherwise it returns FALSE.</p> <p>If the module is indexed all the feature have already been read into memory, and searches based on the record number can be performed efficiently. </p> </div> </div> <a class="anchor" id="a2c6df4e9ddb8ef56529c8055e766548e"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void SDTSIndexedReader::Rewind </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Rewind so that the next feature returned by <a class="el" href="classSDTSIndexedReader.html#a9f5461d109c158088c7e783de52a39f3">GetNextFeature()</a> will be the first in the module. </p> </div> </div> <a class="anchor" id="a4bc517f41916afab133cfadc01568b12"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char ** SDTSIndexedReader::ScanModuleReferences </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>pszFName</em> = <code>"ATID"</code></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Scan an entire SDTS module for record references with the given field name.</p> <p>The fields are required to have a MODN subfield from which the module is extracted.</p> <p>This method is normally used to find all the attribute modules referred to by a point, line or polygon module to build a unified schema.</p> <p>This method will have the side effect of rewinding unindexed readers because the scanning operation requires reading all records in the module from disk.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pszFName</td><td>the field name to search for. By default "ATID" is used.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>a NULL terminated list of module names. Free with <a class="el" href="cpl__string_8h.html#ace6799a8ba4bbb58318f17aecd9f55dd">CSLDestroy()</a>. </dd></dl> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="sdts__al_8h_source.html">sdts_al.h</a></li> <li>sdtsindexedreader.cpp</li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.5 </small></address> </body> </html>