Sophie

Sophie

distrib > Fedora > 14 > i386 > by-pkgid > 08b5e8cf61d8c64e26d6ffe964517d2d > files > 38

libisofs-devel-1.1.6-1.fc14.i686.rpm

<!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"/>
<title>libisofs: IsoFileSource_Iface Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">libisofs&#160;<span id="projectnumber">1.1.6</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</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>Data&#160;Structures</span></a></li>
      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-attribs">Data Fields</a>  </div>
  <div class="headertitle">
<div class="title">IsoFileSource_Iface Struct Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="IsoFileSource_Iface" -->
<p>Interface definition for an IsoFileSource.  
 <a href="struct_iso_file_source___iface.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="libisofs_8h_source.html">libisofs.h</a>&gt;</code></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_iso_file_source___iface.html#ac49599ace0e87ef7cb56cc01fe74e1a0">version</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tells the version of the interface: Version 0 provides functions up to (*lseek)().  <a href="#ac49599ace0e87ef7cb56cc01fe74e1a0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_iso_file_source___iface.html#a476ce9831d6d66f64565bb8739411de6">get_path</a> )(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the absolute path in the filesystem this file source belongs to.  <a href="#a476ce9831d6d66f64565bb8739411de6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_iso_file_source___iface.html#a140a736cfb961376ff98bbcc02da7891">get_name</a> )(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name of the file, with the dir component of the path.  <a href="#a140a736cfb961376ff98bbcc02da7891"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_iso_file_source___iface.html#a6641efc8ed3532092ace7092fd3be6ee">lstat</a> )(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src, struct <a class="el" href="struct_iso_file_source___iface.html#ad2b982537be0ca55b1e984eb2f0c4dcb">stat</a> *info)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get information about the file.  <a href="#a6641efc8ed3532092ace7092fd3be6ee"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_iso_file_source___iface.html#ad2b982537be0ca55b1e984eb2f0c4dcb">stat</a> )(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src, struct <a class="el" href="struct_iso_file_source___iface.html#ad2b982537be0ca55b1e984eb2f0c4dcb">stat</a> *info)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get information about the file.  <a href="#ad2b982537be0ca55b1e984eb2f0c4dcb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_iso_file_source___iface.html#a611ba160beba728e39bb20096bc45f81">access</a> )(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the process has access to read file contents.  <a href="#a611ba160beba728e39bb20096bc45f81"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_iso_file_source___iface.html#a5e5802a64d3b69ad0f028238d6963743">open</a> )(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens the source.  <a href="#a5e5802a64d3b69ad0f028238d6963743"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_iso_file_source___iface.html#a224165b9c1d9ef4982eacb46a3c55982">close</a> )(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Close a previuously openned file.  <a href="#a224165b9c1d9ef4982eacb46a3c55982"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_iso_file_source___iface.html#a55cfe7332f4d2add2f861adcfed8c39c">read</a> )(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src, void *buf, size_t count)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempts to read up to count bytes from the given source into the buffer starting at buf.  <a href="#a55cfe7332f4d2add2f861adcfed8c39c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_iso_file_source___iface.html#a57aaac3993426b37382339de7f2171be">readdir</a> )(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src, <a class="el" href="structiso__file__source.html">IsoFileSource</a> **child)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read a directory.  <a href="#a57aaac3993426b37382339de7f2171be"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_iso_file_source___iface.html#a334352bd276fc3454bb0ee9d5d822267">readlink</a> )(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src, char *buf, size_t bufsiz)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the destination of a symlink.  <a href="#a334352bd276fc3454bb0ee9d5d822267"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structiso__filesystem.html">IsoFilesystem</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_iso_file_source___iface.html#af1296d5e51502f469c97d616a386713d">get_filesystem</a> )(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the filesystem for this source.  <a href="#af1296d5e51502f469c97d616a386713d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_iso_file_source___iface.html#a7971ca8a30010ce0ae751dd9aa750878">free</a> )(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Free implementation specific data.  <a href="#a7971ca8a30010ce0ae751dd9aa750878"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">off_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_iso_file_source___iface.html#af85486226409027cc5e2e5b603650874">lseek</a> )(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src, off_t offset, int flag)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Repositions the offset of the IsoFileSource (must be opened) to the given offset according to the value of flag.  <a href="#af85486226409027cc5e2e5b603650874"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_iso_file_source___iface.html#ad612815331803037e035e2fe73f900c2">get_aa_string</a> )(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src, unsigned char **aa_string, int flag)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Valid only if .version is &gt; 0.  <a href="#ad612815331803037e035e2fe73f900c2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_iso_file_source___iface.html#a4e7ffe12096f20038e784561e16a100f">clone_src</a> )(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *old_src, <a class="el" href="structiso__file__source.html">IsoFileSource</a> **new_src, int flag)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Produce a copy of a source.  <a href="#a4e7ffe12096f20038e784561e16a100f"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Interface definition for an IsoFileSource. </p>
<p>Defines the POSIX-like function to access files and abstract underlying source.</p>
<dl class="since"><dt><b>Since:</b></dt><dd>0.6.2 </dd></dl>

<p>Definition at line <a class="el" href="libisofs_8h_source.html#l00613">613</a> of file <a class="el" href="libisofs_8h_source.html">libisofs.h</a>.</p>
</div><hr/><h2>Field Documentation</h2>
<a class="anchor" id="a611ba160beba728e39bb20096bc45f81"></a><!-- doxytag: member="IsoFileSource_Iface::access" ref="a611ba160beba728e39bb20096bc45f81" args=")(IsoFileSource *src)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* <a class="el" href="struct_iso_file_source___iface.html#a611ba160beba728e39bb20096bc45f81">IsoFileSource_Iface::access</a>)(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check if the process has access to read file contents. </p>
<p>Note that this is not necessarily related with (l)stat functions. For example, in a filesystem implementation to deal with an ISO image, if the user has read access to the image it will be able to read all files inside it, despite of the particular permission of each file in the RR tree, that are what the above functions return.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 if process has read access, &lt; 0 on error (has to be a valid libisofs error code) Error codes: ISO_FILE_ACCESS_DENIED ISO_FILE_BAD_PATH ISO_FILE_DOESNT_EXIST ISO_OUT_OF_MEM ISO_FILE_ERROR ISO_NULL_POINTER </dd></dl>

<p>Definition at line <a class="el" href="libisofs_8h_source.html#l00693">693</a> of file <a class="el" href="libisofs_8h_source.html">libisofs.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4e7ffe12096f20038e784561e16a100f"></a><!-- doxytag: member="IsoFileSource_Iface::clone_src" ref="a4e7ffe12096f20038e784561e16a100f" args=")(IsoFileSource *old_src, IsoFileSource **new_src, int flag)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* <a class="el" href="struct_iso_file_source___iface.html#a4e7ffe12096f20038e784561e16a100f">IsoFileSource_Iface::clone_src</a>)(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *old_src, <a class="el" href="structiso__file__source.html">IsoFileSource</a> **new_src, int flag)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Produce a copy of a source. </p>
<p>It must be possible to operate both source objects concurrently.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">old_src</td><td>The existing source object to be copied </td></tr>
    <tr><td class="paramname">new_stream</td><td>Will return a pointer to the copy </td></tr>
    <tr><td class="paramname">flag</td><td>Bitfield for control purposes. Submit 0 for now. The function shall return ISO_STREAM_NO_CLONE on unknown flag bits.</td></tr>
  </table>
  </dd>
</dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.0.2 Present if .version is 2 or higher. </dd></dl>

<p>Definition at line <a class="el" href="libisofs_8h_source.html#l00872">872</a> of file <a class="el" href="libisofs_8h_source.html">libisofs.h</a>.</p>

</div>
</div>
<a class="anchor" id="a224165b9c1d9ef4982eacb46a3c55982"></a><!-- doxytag: member="IsoFileSource_Iface::close" ref="a224165b9c1d9ef4982eacb46a3c55982" args=")(IsoFileSource *src)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* <a class="el" href="struct_iso_file_source___iface.html#a224165b9c1d9ef4982eacb46a3c55982">IsoFileSource_Iface::close</a>)(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Close a previuously openned file. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 on success, &lt; 0 on error Error codes: ISO_FILE_ERROR ISO_NULL_POINTER ISO_FILE_NOT_OPENED </dd></dl>

<p>Definition at line <a class="el" href="libisofs_8h_source.html#l00717">717</a> of file <a class="el" href="libisofs_8h_source.html">libisofs.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7971ca8a30010ce0ae751dd9aa750878"></a><!-- doxytag: member="IsoFileSource_Iface::free" ref="a7971ca8a30010ce0ae751dd9aa750878" args=")(IsoFileSource *src)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* <a class="el" href="struct_iso_file_source___iface.html#a7971ca8a30010ce0ae751dd9aa750878">IsoFileSource_Iface::free</a>)(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Free implementation specific data. </p>
<p>Should never be called by user. Use <a class="el" href="libisofs_8h.html#a45ea7edef1387f40e8d66669901dfd9e" title="Drop your ref to the given IsoFileSource, eventually freeing the associated system resources...">iso_file_source_unref()</a> instead. </p>

<p>Definition at line <a class="el" href="libisofs_8h_source.html#l00803">803</a> of file <a class="el" href="libisofs_8h_source.html">libisofs.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad612815331803037e035e2fe73f900c2"></a><!-- doxytag: member="IsoFileSource_Iface::get_aa_string" ref="ad612815331803037e035e2fe73f900c2" args=")(IsoFileSource *src, unsigned char **aa_string, int flag)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* <a class="el" href="struct_iso_file_source___iface.html#ad612815331803037e035e2fe73f900c2">IsoFileSource_Iface::get_aa_string</a>)(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src, unsigned char **aa_string, int flag)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Valid only if .version is &gt; 0. </p>
<p>See above. Get the AAIP string with encoded ACL and xattr. (Not to be confused with ECMA-119 Extended Attributes).</p>
<p>bit1 and bit2 of flag should be implemented so that freshly fetched info does not include the undesired ACL or xattr. Nevertheless if the aa_string is cached, then it is permissible that ACL and xattr are still delivered.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">flag</td><td>Bitfield for control purposes bit0= Transfer ownership of AAIP string data. src will free the eventual cached data and might not be able to produce it again. bit1= No need to get ACL (no guarantee of exclusion) bit2= No need to get xattr (no guarantee of exclusion) </td></tr>
    <tr><td class="paramname">aa_string</td><td>Returns a pointer to the AAIP string data. If no AAIP string is available, *aa_string becomes NULL. (See doc/susp_aaip_*_*.txt for the meaning of AAIP and libisofs/aaip_0_2.h for encoding and decoding.) The caller is responsible for finally calling <a class="el" href="struct_iso_file_source___iface.html#a7971ca8a30010ce0ae751dd9aa750878" title="Free implementation specific data.">free()</a> on non-NULL results. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 means success (*aa_string == NULL is possible) &lt;0 means failure and must b a valid libisofs error code (e.g. ISO_FILE_ERROR if no better one can be found). </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>0.6.14 </dd></dl>

<p>Definition at line <a class="el" href="libisofs_8h_source.html#l00854">854</a> of file <a class="el" href="libisofs_8h_source.html">libisofs.h</a>.</p>

</div>
</div>
<a class="anchor" id="af1296d5e51502f469c97d616a386713d"></a><!-- doxytag: member="IsoFileSource_Iface::get_filesystem" ref="af1296d5e51502f469c97d616a386713d" args=")(IsoFileSource *src)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structiso__filesystem.html">IsoFilesystem</a>*(* <a class="el" href="struct_iso_file_source___iface.html#af1296d5e51502f469c97d616a386713d">IsoFileSource_Iface::get_filesystem</a>)(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the filesystem for this source. </p>
<p>No extra ref is added, so you musn't unref the IsoFilesystem.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The filesystem, NULL on error </dd></dl>

<p>Definition at line <a class="el" href="libisofs_8h_source.html#l00797">797</a> of file <a class="el" href="libisofs_8h_source.html">libisofs.h</a>.</p>

</div>
</div>
<a class="anchor" id="a140a736cfb961376ff98bbcc02da7891"></a><!-- doxytag: member="IsoFileSource_Iface::get_name" ref="a140a736cfb961376ff98bbcc02da7891" args=")(IsoFileSource *src)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char*(* <a class="el" href="struct_iso_file_source___iface.html#a140a736cfb961376ff98bbcc02da7891">IsoFileSource_Iface::get_name</a>)(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the name of the file, with the dir component of the path. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the name of the file, it should be freed when no more needed. </dd></dl>

<p>Definition at line <a class="el" href="libisofs_8h_source.html#l00641">641</a> of file <a class="el" href="libisofs_8h_source.html">libisofs.h</a>.</p>

</div>
</div>
<a class="anchor" id="a476ce9831d6d66f64565bb8739411de6"></a><!-- doxytag: member="IsoFileSource_Iface::get_path" ref="a476ce9831d6d66f64565bb8739411de6" args=")(IsoFileSource *src)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char*(* <a class="el" href="struct_iso_file_source___iface.html#a476ce9831d6d66f64565bb8739411de6">IsoFileSource_Iface::get_path</a>)(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the absolute path in the filesystem this file source belongs to. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the path of the FileSource inside the filesystem, it should be freed when no more needed. </dd></dl>

<p>Definition at line <a class="el" href="libisofs_8h_source.html#l00633">633</a> of file <a class="el" href="libisofs_8h_source.html">libisofs.h</a>.</p>

</div>
</div>
<a class="anchor" id="af85486226409027cc5e2e5b603650874"></a><!-- doxytag: member="IsoFileSource_Iface::lseek" ref="af85486226409027cc5e2e5b603650874" args=")(IsoFileSource *src, off_t offset, int flag)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">off_t(* <a class="el" href="struct_iso_file_source___iface.html#af85486226409027cc5e2e5b603650874">IsoFileSource_Iface::lseek</a>)(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src, off_t offset, int flag)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Repositions the offset of the IsoFileSource (must be opened) to the given offset according to the value of flag. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">offset</td><td>in bytes </td></tr>
    <tr><td class="paramname">flag</td><td>0 The offset is set to offset bytes (SEEK_SET) 1 The offset is set to its current location plus offset bytes (SEEK_CUR) 2 The offset is set to the size of the file plus offset bytes (SEEK_END). </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Absolute offset position of the file, or &lt; 0 on error. Cast the returning value to int to get a valid libisofs error.</dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>0.6.4 </dd></dl>

<p>Definition at line <a class="el" href="libisofs_8h_source.html#l00823">823</a> of file <a class="el" href="libisofs_8h_source.html">libisofs.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6641efc8ed3532092ace7092fd3be6ee"></a><!-- doxytag: member="IsoFileSource_Iface::lstat" ref="a6641efc8ed3532092ace7092fd3be6ee" args=")(IsoFileSource *src, struct stat *info)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* <a class="el" href="struct_iso_file_source___iface.html#a6641efc8ed3532092ace7092fd3be6ee">IsoFileSource_Iface::lstat</a>)(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src, struct <a class="el" href="struct_iso_file_source___iface.html#ad2b982537be0ca55b1e984eb2f0c4dcb">stat</a> *info)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get information about the file. </p>
<p>It is equivalent to lstat(2).</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 success, &lt; 0 error (has to be a valid libisofs error code) Error codes: ISO_FILE_ACCESS_DENIED ISO_FILE_BAD_PATH ISO_FILE_DOESNT_EXIST ISO_OUT_OF_MEM ISO_FILE_ERROR ISO_NULL_POINTER </dd></dl>

<p>Definition at line <a class="el" href="libisofs_8h_source.html#l00656">656</a> of file <a class="el" href="libisofs_8h_source.html">libisofs.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5e5802a64d3b69ad0f028238d6963743"></a><!-- doxytag: member="IsoFileSource_Iface::open" ref="a5e5802a64d3b69ad0f028238d6963743" args=")(IsoFileSource *src)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* <a class="el" href="struct_iso_file_source___iface.html#a5e5802a64d3b69ad0f028238d6963743">IsoFileSource_Iface::open</a>)(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Opens the source. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 on success, &lt; 0 on error (has to be a valid libisofs error code) Error codes: ISO_FILE_ALREADY_OPENED ISO_FILE_ACCESS_DENIED ISO_FILE_BAD_PATH ISO_FILE_DOESNT_EXIST ISO_OUT_OF_MEM ISO_FILE_ERROR ISO_NULL_POINTER </dd></dl>

<p>Definition at line <a class="el" href="libisofs_8h_source.html#l00707">707</a> of file <a class="el" href="libisofs_8h_source.html">libisofs.h</a>.</p>

</div>
</div>
<a class="anchor" id="a55cfe7332f4d2add2f861adcfed8c39c"></a><!-- doxytag: member="IsoFileSource_Iface::read" ref="a55cfe7332f4d2add2f861adcfed8c39c" args=")(IsoFileSource *src, void *buf, size_t count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* <a class="el" href="struct_iso_file_source___iface.html#a55cfe7332f4d2add2f861adcfed8c39c">IsoFileSource_Iface::read</a>)(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src, void *buf, size_t count)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Attempts to read up to count bytes from the given source into the buffer starting at buf. </p>
<p>The file src must be <a class="el" href="struct_iso_file_source___iface.html#a5e5802a64d3b69ad0f028238d6963743" title="Opens the source.">open()</a> before calling this, and <a class="el" href="struct_iso_file_source___iface.html#a224165b9c1d9ef4982eacb46a3c55982" title="Close a previuously openned file.">close()</a> when no more needed. Not valid for dirs. On symlinks it reads the destination file.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes read, 0 if EOF, &lt; 0 on error (has to be a valid libisofs error code) Error codes: ISO_FILE_ERROR ISO_NULL_POINTER ISO_FILE_NOT_OPENED ISO_WRONG_ARG_VALUE -&gt; if count == 0 ISO_FILE_IS_DIR ISO_OUT_OF_MEM ISO_INTERRUPTED </dd></dl>

<p>Definition at line <a class="el" href="libisofs_8h_source.html#l00739">739</a> of file <a class="el" href="libisofs_8h_source.html">libisofs.h</a>.</p>

</div>
</div>
<a class="anchor" id="a57aaac3993426b37382339de7f2171be"></a><!-- doxytag: member="IsoFileSource_Iface::readdir" ref="a57aaac3993426b37382339de7f2171be" args=")(IsoFileSource *src, IsoFileSource **child)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* <a class="el" href="struct_iso_file_source___iface.html#a57aaac3993426b37382339de7f2171be">IsoFileSource_Iface::readdir</a>)(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src, <a class="el" href="structiso__file__source.html">IsoFileSource</a> **child)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read a directory. </p>
<p>Each call to this function will return a new children, until we reach the end of file (i.e, no more children), in that case it returns 0.</p>
<p>The dir must be <a class="el" href="struct_iso_file_source___iface.html#a5e5802a64d3b69ad0f028238d6963743" title="Opens the source.">open()</a> before calling this, and <a class="el" href="struct_iso_file_source___iface.html#a224165b9c1d9ef4982eacb46a3c55982" title="Close a previuously openned file.">close()</a> when no more needed. Only valid for dirs.</p>
<p>Note that "." and ".." children MUST NOT BE returned.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">child</td><td>pointer to be filled with the given child. Undefined on error or OEF </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 on success, 0 if EOF (no more children), &lt; 0 on error (has to be a valid libisofs error code) Error codes: ISO_FILE_ERROR ISO_NULL_POINTER ISO_FILE_NOT_OPENED ISO_FILE_IS_NOT_DIR ISO_OUT_OF_MEM </dd></dl>

<p>Definition at line <a class="el" href="libisofs_8h_source.html#l00764">764</a> of file <a class="el" href="libisofs_8h_source.html">libisofs.h</a>.</p>

</div>
</div>
<a class="anchor" id="a334352bd276fc3454bb0ee9d5d822267"></a><!-- doxytag: member="IsoFileSource_Iface::readlink" ref="a334352bd276fc3454bb0ee9d5d822267" args=")(IsoFileSource *src, char *buf, size_t bufsiz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* <a class="el" href="struct_iso_file_source___iface.html#a334352bd276fc3454bb0ee9d5d822267">IsoFileSource_Iface::readlink</a>)(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src, char *buf, size_t bufsiz)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read the destination of a symlink. </p>
<p>You don't need to open the file to call this.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>allocated buffer of at least bufsiz bytes. The dest. will be copied there, and it will be NULL-terminated </td></tr>
    <tr><td class="paramname">bufsiz</td><td>characters to be copied. Destination link will be truncated if it is larger than given size. This include the 0x0 character. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 on success, &lt; 0 on error (has to be a valid libisofs error code) Error codes: ISO_FILE_ERROR ISO_NULL_POINTER ISO_WRONG_ARG_VALUE -&gt; if bufsiz &lt;= 0 ISO_FILE_IS_NOT_SYMLINK ISO_OUT_OF_MEM ISO_FILE_BAD_PATH ISO_FILE_DOESNT_EXIST </dd></dl>

<p>Definition at line <a class="el" href="libisofs_8h_source.html#l00788">788</a> of file <a class="el" href="libisofs_8h_source.html">libisofs.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad2b982537be0ca55b1e984eb2f0c4dcb"></a><!-- doxytag: member="IsoFileSource_Iface::stat" ref="ad2b982537be0ca55b1e984eb2f0c4dcb" args=")(IsoFileSource *src, struct stat *info)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* <a class="el" href="struct_iso_file_source___iface.html#ad2b982537be0ca55b1e984eb2f0c4dcb">IsoFileSource_Iface::stat</a>)(<a class="el" href="structiso__file__source.html">IsoFileSource</a> *src, struct <a class="el" href="struct_iso_file_source___iface.html#ad2b982537be0ca55b1e984eb2f0c4dcb">stat</a> *info)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get information about the file. </p>
<p>If the file is a symlink, the info returned refers to the destination. It is equivalent to stat(2).</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 success, &lt; 0 error Error codes: ISO_FILE_ACCESS_DENIED ISO_FILE_BAD_PATH ISO_FILE_DOESNT_EXIST ISO_OUT_OF_MEM ISO_FILE_ERROR ISO_NULL_POINTER </dd></dl>

<p>Definition at line <a class="el" href="libisofs_8h_source.html#l00672">672</a> of file <a class="el" href="libisofs_8h_source.html">libisofs.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac49599ace0e87ef7cb56cc01fe74e1a0"></a><!-- doxytag: member="IsoFileSource_Iface::version" ref="ac49599ace0e87ef7cb56cc01fe74e1a0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="struct_iso_file_source___iface.html#ac49599ace0e87ef7cb56cc01fe74e1a0">IsoFileSource_Iface::version</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Tells the version of the interface: Version 0 provides functions up to (*lseek)(). </p>
<dl class="since"><dt><b>Since:</b></dt><dd>0.6.2 Version 1 additionally provides function *(get_aa_string)(). </dd>
<dd>
0.6.14 Version 2 additionally provides function *(clone_src)(). </dd>
<dd>
1.0.2 </dd></dl>

<p>Definition at line <a class="el" href="libisofs_8h_source.html#l00624">624</a> of file <a class="el" href="libisofs_8h_source.html">libisofs.h</a>.</p>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>libisofs-1.1.6/libisofs/<a class="el" href="libisofs_8h_source.html">libisofs.h</a></li>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated for libisofs by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.7.4 </small></address>
</body>
</html>