EVOLUTION-MANAGER
Edit File: classVSISubFileHandle.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: VSISubFileHandle 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="classVSISubFileHandle-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">VSISubFileHandle Class Reference</div> </div> </div><!--header--> <div class="contents"> <div class="dynheader"> Inheritance diagram for VSISubFileHandle:</div> <div class="dyncontent"> <div class="center"> <img src="classVSISubFileHandle.png" usemap="#VSISubFileHandle_map" alt=""/> <map id="VSISubFileHandle_map" name="VSISubFileHandle_map"> <area href="classVSIVirtualHandle.html" alt="VSIVirtualHandle" shape="rect" coords="0,0,115,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:a4be213f31de90fa06f969f701173cf55"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classVSISubFileHandle.html#a4be213f31de90fa06f969f701173cf55">Seek</a> (<a class="el" href="cpl__vsi_8h.html#af56f9ebab1994e4c2ed3f0a50af787b2">vsi_l_offset</a> nOffset, int nWhence) override</td></tr> <tr class="memdesc:a4be213f31de90fa06f969f701173cf55"><td class="mdescLeft"> </td><td class="mdescRight">Seek to requested offset. <a href="#a4be213f31de90fa06f969f701173cf55">More...</a><br/></td></tr> <tr class="separator:a4be213f31de90fa06f969f701173cf55"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7f4f0b7785d77e37665bdac6ea9a14c5"><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="classVSISubFileHandle.html#a7f4f0b7785d77e37665bdac6ea9a14c5">Tell</a> () override</td></tr> <tr class="memdesc:a7f4f0b7785d77e37665bdac6ea9a14c5"><td class="mdescLeft"> </td><td class="mdescRight">Tell current file offset. <a href="#a7f4f0b7785d77e37665bdac6ea9a14c5">More...</a><br/></td></tr> <tr class="separator:a7f4f0b7785d77e37665bdac6ea9a14c5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a59bbc9ff4e7cbbbd0e5b97761b1f36f7"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classVSISubFileHandle.html#a59bbc9ff4e7cbbbd0e5b97761b1f36f7">Read</a> (void *pBuffer, size_t nSize, size_t nMemb) override</td></tr> <tr class="memdesc:a59bbc9ff4e7cbbbd0e5b97761b1f36f7"><td class="mdescLeft"> </td><td class="mdescRight">Read bytes from file. <a href="#a59bbc9ff4e7cbbbd0e5b97761b1f36f7">More...</a><br/></td></tr> <tr class="separator:a59bbc9ff4e7cbbbd0e5b97761b1f36f7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a47922596f2347f62a74c260185756390"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classVSISubFileHandle.html#a47922596f2347f62a74c260185756390">Write</a> (const void *pBuffer, size_t nSize, size_t nMemb) override</td></tr> <tr class="memdesc:a47922596f2347f62a74c260185756390"><td class="mdescLeft"> </td><td class="mdescRight">Write bytes to file. <a href="#a47922596f2347f62a74c260185756390">More...</a><br/></td></tr> <tr class="separator:a47922596f2347f62a74c260185756390"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:add9447bdda543d33e8f1853d9f7568dd"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classVSISubFileHandle.html#add9447bdda543d33e8f1853d9f7568dd">Eof</a> () override</td></tr> <tr class="memdesc:add9447bdda543d33e8f1853d9f7568dd"><td class="mdescLeft"> </td><td class="mdescRight">Test for end of file. <a href="#add9447bdda543d33e8f1853d9f7568dd">More...</a><br/></td></tr> <tr class="separator:add9447bdda543d33e8f1853d9f7568dd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a06d72c42f01547b8ca5f5a6005cc23a5"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classVSISubFileHandle.html#a06d72c42f01547b8ca5f5a6005cc23a5">Close</a> () override</td></tr> <tr class="memdesc:a06d72c42f01547b8ca5f5a6005cc23a5"><td class="mdescLeft"> </td><td class="mdescRight">Close file. <a href="#a06d72c42f01547b8ca5f5a6005cc23a5">More...</a><br/></td></tr> <tr class="separator:a06d72c42f01547b8ca5f5a6005cc23a5"><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="a06d72c42f01547b8ca5f5a6005cc23a5"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int VSISubFileHandle::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="add9447bdda543d33e8f1853d9f7568dd"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int VSISubFileHandle::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="a59bbc9ff4e7cbbbd0e5b97761b1f36f7"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">size_t VSISubFileHandle::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="a4be213f31de90fa06f969f701173cf55"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int VSISubFileHandle::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="classVSISubFileHandle.html#a7f4f0b7785d77e37665bdac6ea9a14c5" 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="a7f4f0b7785d77e37665bdac6ea9a14c5"></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> VSISubFileHandle::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="a47922596f2347f62a74c260185756390"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">size_t VSISubFileHandle::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_subfile.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>