Sophie

Sophie

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

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: iso_filesystem 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">iso_filesystem Struct Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="iso_filesystem" -->
<p>An IsoFilesystem is a handler for a source of files, or a "filesystem".  
 <a href="structiso__filesystem.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">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiso__filesystem.html#af42ebccd459ecd44ac054e9fcd66b328">type</a> [4]</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of filesystem.  <a href="#af42ebccd459ecd44ac054e9fcd66b328"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiso__filesystem.html#a78fbd74a7609950b34392e6cbac95fea">version</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiso__filesystem.html#aabebb3b71d9187446da8b14b765c3e3f">get_root</a> )(<a class="el" href="structiso__filesystem.html">IsoFilesystem</a> *fs, <a class="el" href="structiso__file__source.html">IsoFileSource</a> **root)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the root of a filesystem.  <a href="#aabebb3b71d9187446da8b14b765c3e3f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiso__filesystem.html#a557046ca413550a84aa5e8624130a8d2">get_by_path</a> )(<a class="el" href="structiso__filesystem.html">IsoFilesystem</a> *fs, const char *path, <a class="el" href="structiso__file__source.html">IsoFileSource</a> **file)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve a file from its absolute path inside the filesystem.  <a href="#a557046ca413550a84aa5e8624130a8d2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiso__filesystem.html#a772d315ce2beb3aa15f6ee72cecccc49">get_id</a> )(<a class="el" href="structiso__filesystem.html">IsoFilesystem</a> *fs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get filesystem identifier.  <a href="#a772d315ce2beb3aa15f6ee72cecccc49"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiso__filesystem.html#a6403a111d9255b2d8c4a17ea5840ec3e">open</a> )(<a class="el" href="structiso__filesystem.html">IsoFilesystem</a> *fs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens the filesystem for several read operations.  <a href="#a6403a111d9255b2d8c4a17ea5840ec3e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiso__filesystem.html#a879a0e5b80456a0f9cc663a9b7312acb">close</a> )(<a class="el" href="structiso__filesystem.html">IsoFilesystem</a> *fs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Close the filesystem, thus freeing all system resources.  <a href="#a879a0e5b80456a0f9cc663a9b7312acb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiso__filesystem.html#ac9d9e941bd2afee3de1602f98a9f3e17">free</a> )(<a class="el" href="structiso__filesystem.html">IsoFilesystem</a> *fs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Free implementation specific data.  <a href="#ac9d9e941bd2afee3de1602f98a9f3e17"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiso__filesystem.html#a4b5e0911d0f768bd359474648d0730a5">refcount</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiso__filesystem.html#acbd9fb3b9be035a82888303a7e5f0e8b">data</a></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>An IsoFilesystem is a handler for a source of files, or a "filesystem". </p>
<p>That is defined as a set of files that are organized in a hierarchical structure.</p>
<p>A filesystem allows libisofs to access files from several sources in an homogeneous way, thus abstracting the underlying operations needed to access and read file contents. Note that this doesn't need to be tied to the disc filesystem used in the partition being accessed. For example, we have an IsoFilesystem implementation to access any mounted filesystem, using standard POSIX functions. It is also legal, of course, to implement an IsoFilesystem to deal with a specific filesystem over raw partitions. That is what we do, for example, to access an ISO Image.</p>
<p>Each file inside an IsoFilesystem is represented as an IsoFileSource object, that defines POSIX-like interface for accessing files.</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#l00521">521</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="a879a0e5b80456a0f9cc663a9b7312acb"></a><!-- doxytag: member="iso_filesystem::close" ref="a879a0e5b80456a0f9cc663a9b7312acb" args=")(IsoFilesystem *fs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* <a class="el" href="structiso__filesystem.html#a879a0e5b80456a0f9cc663a9b7312acb">iso_filesystem::close</a>)(<a class="el" href="structiso__filesystem.html">IsoFilesystem</a> *fs)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Close the filesystem, thus freeing all system resources. </p>
<p>You should call this function if you have previously <a class="el" href="structiso__filesystem.html#a6403a111d9255b2d8c4a17ea5840ec3e" title="Opens the filesystem for several read operations.">open()</a> it. Note that you can <a class="el" href="structiso__filesystem.html#a6403a111d9255b2d8c4a17ea5840ec3e" title="Opens the filesystem for several read operations.">open()</a>/close() a filesystem several times.</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) </dd></dl>

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

</div>
</div>
<a class="anchor" id="acbd9fb3b9be035a82888303a7e5f0e8b"></a><!-- doxytag: member="iso_filesystem::data" ref="acbd9fb3b9be035a82888303a7e5f0e8b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* <a class="el" href="structiso__filesystem.html#acbd9fb3b9be035a82888303a7e5f0e8b">iso_filesystem::data</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="ac9d9e941bd2afee3de1602f98a9f3e17"></a><!-- doxytag: member="iso_filesystem::free" ref="ac9d9e941bd2afee3de1602f98a9f3e17" args=")(IsoFilesystem *fs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* <a class="el" href="structiso__filesystem.html#ac9d9e941bd2afee3de1602f98a9f3e17">iso_filesystem::free</a>)(<a class="el" href="structiso__filesystem.html">IsoFilesystem</a> *fs)</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#a6136fa78f205b2fe0841c3b0f06c22d2" title="Drop your ref to the given IsoFilesystem, evetually freeing associated resources.">iso_filesystem_unref()</a> instead. </p>

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

</div>
</div>
<a class="anchor" id="a557046ca413550a84aa5e8624130a8d2"></a><!-- doxytag: member="iso_filesystem::get_by_path" ref="a557046ca413550a84aa5e8624130a8d2" args=")(IsoFilesystem *fs, const char *path, IsoFileSource **file)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* <a class="el" href="structiso__filesystem.html#a557046ca413550a84aa5e8624130a8d2">iso_filesystem::get_by_path</a>)(<a class="el" href="structiso__filesystem.html">IsoFilesystem</a> *fs, const char *path, <a class="el" href="structiso__file__source.html">IsoFileSource</a> **file)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve a file from its absolute path inside the filesystem. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td>Returns a pointer to a IsoFileSource object representing the file. It has to be disposed by <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> when no longer needed. </td></tr>
  </table>
  </dd>
</dl>
<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#l00557">557</a> of file <a class="el" href="libisofs_8h_source.html">libisofs.h</a>.</p>

</div>
</div>
<a class="anchor" id="a772d315ce2beb3aa15f6ee72cecccc49"></a><!-- doxytag: member="iso_filesystem::get_id" ref="a772d315ce2beb3aa15f6ee72cecccc49" args=")(IsoFilesystem *fs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int(* <a class="el" href="structiso__filesystem.html#a772d315ce2beb3aa15f6ee72cecccc49">iso_filesystem::get_id</a>)(<a class="el" href="structiso__filesystem.html">IsoFilesystem</a> *fs)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get filesystem identifier. </p>
<p>If the filesystem is able to generate correct values of the st_dev and st_ino fields for the struct stat of each file, this should return an unique number, greater than 0.</p>
<p>To get a identifier for your filesystem implementation you should use iso_fs_global_id, incrementing it by one each time.</p>
<p>Otherwise, if you can't ensure values in the struct stat are valid, this should return 0. </p>

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

</div>
</div>
<a class="anchor" id="aabebb3b71d9187446da8b14b765c3e3f"></a><!-- doxytag: member="iso_filesystem::get_root" ref="aabebb3b71d9187446da8b14b765c3e3f" args=")(IsoFilesystem *fs, IsoFileSource **root)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* <a class="el" href="structiso__filesystem.html#aabebb3b71d9187446da8b14b765c3e3f">iso_filesystem::get_root</a>)(<a class="el" href="structiso__filesystem.html">IsoFilesystem</a> *fs, <a class="el" href="structiso__file__source.html">IsoFileSource</a> **root)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the root of a filesystem. </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) </dd></dl>

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

</div>
</div>
<a class="anchor" id="a6403a111d9255b2d8c4a17ea5840ec3e"></a><!-- doxytag: member="iso_filesystem::open" ref="a6403a111d9255b2d8c4a17ea5840ec3e" args=")(IsoFilesystem *fs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* <a class="el" href="structiso__filesystem.html#a6403a111d9255b2d8c4a17ea5840ec3e">iso_filesystem::open</a>)(<a class="el" href="structiso__filesystem.html">IsoFilesystem</a> *fs)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Opens the filesystem for several read operations. </p>
<p>Calling this funcion is not needed at all, each time that the underlying system resource needs to be accessed, it is openned propertly. However, if you plan to execute several operations on the filesystem, it is a good idea to open it previously, to prevent several open/close operations to occur.</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) </dd></dl>

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

</div>
</div>
<a class="anchor" id="a4b5e0911d0f768bd359474648d0730a5"></a><!-- doxytag: member="iso_filesystem::refcount" ref="a4b5e0911d0f768bd359474648d0730a5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="structiso__filesystem.html#a4b5e0911d0f768bd359474648d0730a5">iso_filesystem::refcount</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="af42ebccd459ecd44ac054e9fcd66b328"></a><!-- doxytag: member="iso_filesystem::type" ref="af42ebccd459ecd44ac054e9fcd66b328" args="[4]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char <a class="el" href="structiso__filesystem.html#af42ebccd459ecd44ac054e9fcd66b328">iso_filesystem::type</a>[4]</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Type of filesystem. </p>
<p>"file" -&gt; local filesystem "iso " -&gt; iso image filesystem </p>

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

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

<p>Definition at line <a class="el" href="libisofs_8h_source.html#l00531">531</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>