EVOLUTION-MANAGER
Edit File: classVSISparseFileHandle.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: VSISparseFileHandle 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="classVSISparseFileHandle-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">VSISparseFileHandle Class Reference</div> </div> </div><!--header--> <div class="contents"> <div class="dynheader"> Inheritance diagram for VSISparseFileHandle:</div> <div class="dyncontent"> <div class="center"> <img src="classVSISparseFileHandle.png" usemap="#VSISparseFileHandle_map" alt=""/> <map id="VSISparseFileHandle_map" name="VSISparseFileHandle_map"> <area href="classVSIVirtualHandle.html" alt="VSIVirtualHandle" shape="rect" coords="0,0,133,24"/> </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:a38c796bd47d6fa4614108c258dd206f7"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classVSISparseFileHandle.html#a38c796bd47d6fa4614108c258dd206f7">Seek</a> (<a class="el" href="cpl__vsi_8h.html#af56f9ebab1994e4c2ed3f0a50af787b2">vsi_l_offset</a> nOffset, int nWhence) override</td></tr> <tr class="memdesc:a38c796bd47d6fa4614108c258dd206f7"><td class="mdescLeft"> </td><td class="mdescRight">Seek to requested offset. <a href="#a38c796bd47d6fa4614108c258dd206f7">More...</a><br/></td></tr> <tr class="separator:a38c796bd47d6fa4614108c258dd206f7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac9690b1bd446bca4f2d30c35a43ec93d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cpl__vsi_8h.html#af56f9ebab1994e4c2ed3f0a50af787b2">vsi_l_offset</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classVSISparseFileHandle.html#ac9690b1bd446bca4f2d30c35a43ec93d">Tell</a> () override</td></tr> <tr class="memdesc:ac9690b1bd446bca4f2d30c35a43ec93d"><td class="mdescLeft"> </td><td class="mdescRight">Tell current file offset. <a href="#ac9690b1bd446bca4f2d30c35a43ec93d">More...</a><br/></td></tr> <tr class="separator:ac9690b1bd446bca4f2d30c35a43ec93d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa280f497a92d7541fc38a88d116a6fbb"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classVSISparseFileHandle.html#aa280f497a92d7541fc38a88d116a6fbb">Read</a> (void *pBuffer, size_t nSize, size_t nMemb) override</td></tr> <tr class="memdesc:aa280f497a92d7541fc38a88d116a6fbb"><td class="mdescLeft"> </td><td class="mdescRight">Read bytes from file. <a href="#aa280f497a92d7541fc38a88d116a6fbb">More...</a><br/></td></tr> <tr class="separator:aa280f497a92d7541fc38a88d116a6fbb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4816df77287913cd281380f8ddc9505c"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classVSISparseFileHandle.html#a4816df77287913cd281380f8ddc9505c">Write</a> (const void *pBuffer, size_t nSize, size_t nMemb) override</td></tr> <tr class="memdesc:a4816df77287913cd281380f8ddc9505c"><td class="mdescLeft"> </td><td class="mdescRight">Write bytes to file. <a href="#a4816df77287913cd281380f8ddc9505c">More...</a><br/></td></tr> <tr class="separator:a4816df77287913cd281380f8ddc9505c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a47d186629179e637ad9b1a182e3b6d3a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classVSISparseFileHandle.html#a47d186629179e637ad9b1a182e3b6d3a">Eof</a> () override</td></tr> <tr class="memdesc:a47d186629179e637ad9b1a182e3b6d3a"><td class="mdescLeft"> </td><td class="mdescRight">Test for end of file. <a href="#a47d186629179e637ad9b1a182e3b6d3a">More...</a><br/></td></tr> <tr class="separator:a47d186629179e637ad9b1a182e3b6d3a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a97bab087c5e4b59f523e6a6b23fcd3f9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classVSISparseFileHandle.html#a97bab087c5e4b59f523e6a6b23fcd3f9">Close</a> () override</td></tr> <tr class="memdesc:a97bab087c5e4b59f523e6a6b23fcd3f9"><td class="mdescLeft"> </td><td class="mdescRight">Close file. <a href="#a97bab087c5e4b59f523e6a6b23fcd3f9">More...</a><br/></td></tr> <tr class="separator:a97bab087c5e4b59f523e6a6b23fcd3f9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_classVSIVirtualHandle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classVSIVirtualHandle')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classVSIVirtualHandle.html">VSIVirtualHandle</a></td></tr> <tr class="memitem:abd0186824693af39d5002ded5d73d775 inherit pub_methods_classVSIVirtualHandle"><td class="memItemLeft" align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classVSIVirtualHandle.html#abd0186824693af39d5002ded5d73d775">ReadMultiRange</a> (int nRanges, void **ppData, const <a class="el" href="cpl__vsi_8h.html#af56f9ebab1994e4c2ed3f0a50af787b2">vsi_l_offset</a> *panOffsets, const size_t *panSizes)</td></tr> <tr class="memdesc:abd0186824693af39d5002ded5d73d775 inherit pub_methods_classVSIVirtualHandle"><td class="mdescLeft"> </td><td class="mdescRight">Read several ranges of bytes from file. <a href="#abd0186824693af39d5002ded5d73d775">More...</a><br/></td></tr> <tr class="separator:abd0186824693af39d5002ded5d73d775 inherit pub_methods_classVSIVirtualHandle"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4b12ef4dcf1112d3f563e2afe9205531 inherit pub_methods_classVSIVirtualHandle"><td class="memItemLeft" align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classVSIVirtualHandle.html#a4b12ef4dcf1112d3f563e2afe9205531">Flush</a> ()</td></tr> <tr class="memdesc:a4b12ef4dcf1112d3f563e2afe9205531 inherit pub_methods_classVSIVirtualHandle"><td class="mdescLeft"> </td><td class="mdescRight">Flush pending writes to disk. <a href="#a4b12ef4dcf1112d3f563e2afe9205531">More...</a><br/></td></tr> <tr class="separator:a4b12ef4dcf1112d3f563e2afe9205531 inherit pub_methods_classVSIVirtualHandle"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae97b849a8b76b981def0dc1538fcbfac inherit pub_methods_classVSIVirtualHandle"><td class="memItemLeft" align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classVSIVirtualHandle.html#ae97b849a8b76b981def0dc1538fcbfac">Truncate</a> (<a class="el" href="cpl__vsi_8h.html#af56f9ebab1994e4c2ed3f0a50af787b2">vsi_l_offset</a> nNewSize)</td></tr> <tr class="memdesc:ae97b849a8b76b981def0dc1538fcbfac inherit pub_methods_classVSIVirtualHandle"><td class="mdescLeft"> </td><td class="mdescRight">Truncate/expand the file to the specified size. <a href="#ae97b849a8b76b981def0dc1538fcbfac">More...</a><br/></td></tr> <tr class="separator:ae97b849a8b76b981def0dc1538fcbfac inherit pub_methods_classVSIVirtualHandle"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aba8066427791b4e2866bda31fd6dcf98 inherit pub_methods_classVSIVirtualHandle"><td class="memItemLeft" align="right" valign="top">virtual void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classVSIVirtualHandle.html#aba8066427791b4e2866bda31fd6dcf98">GetNativeFileDescriptor</a> ()</td></tr> <tr class="memdesc:aba8066427791b4e2866bda31fd6dcf98 inherit pub_methods_classVSIVirtualHandle"><td class="mdescLeft"> </td><td class="mdescRight">Returns the "native" file descriptor for the virtual handle. <a href="#aba8066427791b4e2866bda31fd6dcf98">More...</a><br/></td></tr> <tr class="separator:aba8066427791b4e2866bda31fd6dcf98 inherit pub_methods_classVSIVirtualHandle"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adc80869358a079e36e10c9841bcdf854 inherit pub_methods_classVSIVirtualHandle"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="cpl__vsi_8h.html#a2aa5b80209e71d81a118d647c6a9be66">VSIRangeStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classVSIVirtualHandle.html#adc80869358a079e36e10c9841bcdf854">GetRangeStatus</a> (<a class="el" href="cpl__port_8h.html#a60255b7e52d54325540177a96ef155e2">CPL_UNUSED</a> <a class="el" href="cpl__vsi_8h.html#af56f9ebab1994e4c2ed3f0a50af787b2">vsi_l_offset</a> nOffset, <a class="el" href="cpl__port_8h.html#a60255b7e52d54325540177a96ef155e2">CPL_UNUSED</a> <a class="el" href="cpl__vsi_8h.html#af56f9ebab1994e4c2ed3f0a50af787b2">vsi_l_offset</a> nLength)</td></tr> <tr class="memdesc:adc80869358a079e36e10c9841bcdf854 inherit pub_methods_classVSIVirtualHandle"><td class="mdescLeft"> </td><td class="mdescRight">Return if a given file range contains data or holes filled with zeroes. <a href="#adc80869358a079e36e10c9841bcdf854">More...</a><br/></td></tr> <tr class="separator:adc80869358a079e36e10c9841bcdf854 inherit pub_methods_classVSIVirtualHandle"><td class="memSeparator" colspan="2"> </td></tr> </table> <h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="a97bab087c5e4b59f523e6a6b23fcd3f9"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int VSISparseFileHandle::Close </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Close file. </p> <p>This function closes the indicated file.</p> <p>This method goes through the VSIFileHandler virtualization and may work on unusual filesystems such as in memory.</p> <p>Analog of the POSIX fclose() function.</p> <dl class="section return"><dt>Returns</dt><dd>0 on success or -1 on failure. </dd></dl> <p>Implements <a class="el" href="classVSIVirtualHandle.html#a9bbc358df3770382b5848c55c04af4dc">VSIVirtualHandle</a>.</p> </div> </div> <a class="anchor" id="a47d186629179e637ad9b1a182e3b6d3a"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int VSISparseFileHandle::Eof </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Test for end of file. </p> <p>Returns TRUE (non-zero) if an end-of-file condition occurred during the previous read operation. The end-of-file flag is cleared by a successful <a class="el" href="cpl__vsi_8h.html#ac4395f975a5bcf5365c2485e33f3bb85" title="Seek to requested offset. ">VSIFSeekL()</a> call.</p> <p>This method goes through the VSIFileHandler virtualization and may work on unusual filesystems such as in memory.</p> <p>Analog of the POSIX feof() call.</p> <dl class="section return"><dt>Returns</dt><dd>TRUE if at EOF else FALSE. </dd></dl> <p>Implements <a class="el" href="classVSIVirtualHandle.html#ad94476bb616dce80b808d997f6eb4e95">VSIVirtualHandle</a>.</p> </div> </div> <a class="anchor" id="aa280f497a92d7541fc38a88d116a6fbb"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">size_t VSISparseFileHandle::Read </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"><em>pBuffer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>nSize</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>nCount</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Read bytes from file. </p> <p>Reads nCount objects of nSize bytes from the indicated file at the current offset into the indicated buffer.</p> <p>This method goes through the VSIFileHandler virtualization and may work on unusual filesystems such as in memory.</p> <p>Analog of the POSIX fread() call.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pBuffer</td><td>the buffer into which the data should be read (at least nCount * nSize bytes in size. </td></tr> <tr><td class="paramname">nSize</td><td>size of objects to read in bytes. </td></tr> <tr><td class="paramname">nCount</td><td>number of objects to read.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>number of objects successfully read. </dd></dl> <p>Implements <a class="el" href="classVSIVirtualHandle.html#ab2d52a0ec4db34d2eb0e7835be6638e3">VSIVirtualHandle</a>.</p> </div> </div> <a class="anchor" id="a38c796bd47d6fa4614108c258dd206f7"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int VSISparseFileHandle::Seek </td> <td>(</td> <td class="paramtype"><a class="el" href="cpl__vsi_8h.html#af56f9ebab1994e4c2ed3f0a50af787b2">vsi_l_offset</a> </td> <td class="paramname"><em>nOffset</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>nWhence</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Seek to requested offset. </p> <p>Seek to the desired offset (nOffset) in the indicated file.</p> <p>This method goes through the VSIFileHandler virtualization and may work on unusual filesystems such as in memory.</p> <p>Analog of the POSIX fseek() call.</p> <p>Caution: vsi_l_offset is a unsigned type, so SEEK_CUR can only be used for positive seek. If negative seek is needed, use handle->Seek( handle-><a class="el" href="classVSISparseFileHandle.html#ac9690b1bd446bca4f2d30c35a43ec93d" title="Tell current file offset. ">Tell()</a> + negative_offset, SEEK_SET ).</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">nOffset</td><td>offset in bytes. </td></tr> <tr><td class="paramname">nWhence</td><td>one of SEEK_SET, SEEK_CUR or SEEK_END.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 on success or -1 one failure. </dd></dl> <p>Implements <a class="el" href="classVSIVirtualHandle.html#aa87a4ad4d3f421ed88d0caea04ca8019">VSIVirtualHandle</a>.</p> </div> </div> <a class="anchor" id="ac9690b1bd446bca4f2d30c35a43ec93d"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="cpl__vsi_8h.html#af56f9ebab1994e4c2ed3f0a50af787b2">vsi_l_offset</a> VSISparseFileHandle::Tell </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Tell current file offset. </p> <p>Returns the current file read/write offset in bytes from the beginning of the file.</p> <p>This method goes through the VSIFileHandler virtualization and may work on unusual filesystems such as in memory.</p> <p>Analog of the POSIX ftell() call.</p> <dl class="section return"><dt>Returns</dt><dd>file offset in bytes. </dd></dl> <p>Implements <a class="el" href="classVSIVirtualHandle.html#aa77953d5e32c9f1c7f0ebac292d7141f">VSIVirtualHandle</a>.</p> </div> </div> <a class="anchor" id="a4816df77287913cd281380f8ddc9505c"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">size_t VSISparseFileHandle::Write </td> <td>(</td> <td class="paramtype">const void * </td> <td class="paramname"><em>pBuffer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>nSize</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>nCount</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Write bytes to file. </p> <p>Writess nCount objects of nSize bytes to the indicated file at the current offset into the indicated buffer.</p> <p>This method goes through the VSIFileHandler virtualization and may work on unusual filesystems such as in memory.</p> <p>Analog of the POSIX fwrite() call.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pBuffer</td><td>the buffer from which the data should be written (at least nCount * nSize bytes in size. </td></tr> <tr><td class="paramname">nSize</td><td>size of objects to read in bytes. </td></tr> <tr><td class="paramname">nCount</td><td>number of objects to read.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>number of objects successfully written. </dd></dl> <p>Implements <a class="el" href="classVSIVirtualHandle.html#ad4a66b268026aedb669ae061c4afcd95">VSIVirtualHandle</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li>cpl_vsil_sparsefile.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>