Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > bad97183153701b09df5fae1052b1c30 > files > 244

crystalspace-doc-1.2.1-5mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Crystal Space 1.2.1: csArchive Class Reference (Crystal Space 1.2.1 Public API Reference)</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="head">
 <tr height="59">
  <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td>
  <td class="head"><h2>Public API Reference</h2></td>
 </tr>
 <tr height="11">
  <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td>
 </tr>
</table>
<div class="content">
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li class="current"><a href="classes.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>csArchive Class Reference</h1><!-- doxytag: class="csArchive" -->This class can be used to work with standard ZIP archives.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="archive_8h-source.html">csutil/archive.h</a>&gt;</code>
<p>

<p>
<a href="classcsArchive-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#30b000676a80e26937b62fe8d50b2108">csArchive</a> (const char *filename)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Open the archive.  <a href="#30b000676a80e26937b62fe8d50b2108"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#20c0b6f58a43d40ed176309ebd19e380">DeleteFile</a> (const char *name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete a file from the archive.  <a href="#20c0b6f58a43d40ed176309ebd19e380"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#f7bfe98ef76db280fdbd8e0be4b8dba5">Dir</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Type a directory listing of the archive to the console.  <a href="#f7bfe98ef76db280fdbd8e0be4b8dba5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#9f8b2569d7eda1a09870905833cf5624">FileExists</a> (const char *name, size_t *size=0) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if a path exists.  <a href="#9f8b2569d7eda1a09870905833cf5624"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#ea9df231a724753c662bf13259de42e2">FindName</a> (const char *name) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a file in archive; returns a handle or 0.  <a href="#ea9df231a724753c662bf13259de42e2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#228bdb6b8f8841dc0884659a62002144">Flush</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Execute all pending operations involving writes to archive Neither DeleteFile or NewFile will have effect until this function will be called.  <a href="#228bdb6b8f8841dc0884659a62002144"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#fd613fe7bb6cbd030ac75b2e2a8abc46">GetComment</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query archive comment.  <a href="#fd613fe7bb6cbd030ac75b2e2a8abc46"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#dc740f22d9b922f4760018c4faed2519">GetFile</a> (size_t no)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get Nth file in archive or 0.  <a href="#dc740f22d9b922f4760018c4faed2519"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#c1c2868cc5058eb7ee5ea312b351623f">GetFileName</a> (void *entry) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query name from handle.  <a href="#c1c2868cc5058eb7ee5ea312b351623f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#a512dbd02901d6a9519b0a89564efa27">GetFileSize</a> (void *entry) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query file size from handle.  <a href="#a512dbd02901d6a9519b0a89564efa27"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#c61619ebe3f3c053b026dabbee37a727">GetFileTime</a> (void *entry, <a class="el" href="structcsFileTime.html">csFileTime</a> &amp;ztime) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query filetime from handle.  <a href="#c61619ebe3f3c053b026dabbee37a727"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#b56f2659ca38157b72977609968a2f23">GetName</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query archive filename.  <a href="#b56f2659ca38157b72977609968a2f23"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#1bc606a3e5b621b5b4ea485abd84c030">NewFile</a> (const char *name, size_t size=0, bool pack=true)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new file in the archive.  <a href="#1bc606a3e5b621b5b4ea485abd84c030"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#20a4acdaa93fec58611bf450d145a312">Read</a> (const char *name, size_t *size=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read a file completely.  <a href="#20a4acdaa93fec58611bf450d145a312"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#d05c5482c45327c84d232fedcb378699">SetFileTime</a> (void *entry, const <a class="el" href="structcsFileTime.html">csFileTime</a> &amp;ztime)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set filetime for handle.  <a href="#d05c5482c45327c84d232fedcb378699"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#bd448aab462cf95f6c1d9589323660f7">Write</a> (void *entry, const char *data, size_t size)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write data to a file.  <a href="#bd448aab462cf95f6c1d9589323660f7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#47af21792fb88d3d918be948baf51c76">~csArchive</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close the archive.  <a href="#47af21792fb88d3d918be948baf51c76"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="38dfd25c924ef1be36f131099021f661"></a><!-- doxytag: member="csArchive::hdr_central" ref="38dfd25c924ef1be36f131099021f661" args="[4]" -->
static const char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#38dfd25c924ef1be36f131099021f661">hdr_central</a> [4]</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c19e9e5a0cfe053e7060787d33474e93"></a><!-- doxytag: member="csArchive::hdr_endcentral" ref="c19e9e5a0cfe053e7060787d33474e93" args="[4]" -->
static const char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#c19e9e5a0cfe053e7060787d33474e93">hdr_endcentral</a> [4]</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2e2975455aefb812999424f75c333e05"></a><!-- doxytag: member="csArchive::hdr_extlocal" ref="2e2975455aefb812999424f75c333e05" args="[4]" -->
static const char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#2e2975455aefb812999424f75c333e05">hdr_extlocal</a> [4]</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="86d4a8bdb0835c08c77acc923cbe1627"></a><!-- doxytag: member="csArchive::hdr_local" ref="86d4a8bdb0835c08c77acc923cbe1627" args="[4]" -->
static const char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#86d4a8bdb0835c08c77acc923cbe1627">hdr_local</a> [4]</td></tr>

<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2c805543fb866c6d58bbbcf19c1c94c8"></a><!-- doxytag: member="csArchive::ArchiveEntry" ref="2c805543fb866c6d58bbbcf19c1c94c8" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArchive.html#2c805543fb866c6d58bbbcf19c1c94c8">ArchiveEntry</a></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
This class can be used to work with standard ZIP archives. 
<p>
Constructor accepts a file name - if such a file is not found, it is created. After this you can examine archive directory, read files, delete or write files in archive. <p>
Operations which changes archive file will be deferred until <a class="el" href="classcsArchive.html#228bdb6b8f8841dc0884659a62002144" title="Execute all pending operations involving writes to archive Neither DeleteFile or...">Flush()</a> method is called. Before calling <a class="el" href="classcsArchive.html#228bdb6b8f8841dc0884659a62002144" title="Execute all pending operations involving writes to archive Neither DeleteFile or...">Flush()</a> you can do any number of deletions and writes, but read operations will not be affected by these until <a class="el" href="classcsArchive.html#228bdb6b8f8841dc0884659a62002144" title="Execute all pending operations involving writes to archive Neither DeleteFile or...">Flush()</a> will be called. <p>
Known quirks:<ul>
<li>No CRC check is done on reading, although ZIP file format allows it. This design 'flaw' was allowed to achieve maximal speed. However, when a file is added to archive, its CRC is computed and updated correctly.</li><li>Several methods of the <a class="el" href="classcsArchive.html" title="This class can be used to work with standard ZIP archives.">csArchive</a> class requires approximatively 20K of stack space when invoked.</li><li>Doesn't like files &gt;4GB. </li></ul>

<p>Definition at line <a class="el" href="archive_8h-source.html#l00055">55</a> of file <a class="el" href="archive_8h-source.html">archive.h</a>.</p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="30b000676a80e26937b62fe8d50b2108"></a><!-- doxytag: member="csArchive::csArchive" ref="30b000676a80e26937b62fe8d50b2108" args="(const char *filename)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">csArchive::csArchive           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>filename</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Open the archive. 
<p>

</div>
</div><p>
<a class="anchor" name="47af21792fb88d3d918be948baf51c76"></a><!-- doxytag: member="csArchive::~csArchive" ref="47af21792fb88d3d918be948baf51c76" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">csArchive::~csArchive           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Close the archive. 
<p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="20c0b6f58a43d40ed176309ebd19e380"></a><!-- doxytag: member="csArchive::DeleteFile" ref="20c0b6f58a43d40ed176309ebd19e380" args="(const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csArchive::DeleteFile           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Delete a file from the archive. 
<p>
You won't see any changes to archive until 'Flush' will be called. 
</div>
</div><p>
<a class="anchor" name="f7bfe98ef76db280fdbd8e0be4b8dba5"></a><!-- doxytag: member="csArchive::Dir" ref="f7bfe98ef76db280fdbd8e0be4b8dba5" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csArchive::Dir           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type a directory listing of the archive to the console. 
<p>

</div>
</div><p>
<a class="anchor" name="9f8b2569d7eda1a09870905833cf5624"></a><!-- doxytag: member="csArchive::FileExists" ref="9f8b2569d7eda1a09870905833cf5624" args="(const char *name, size_t *size=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csArchive::FileExists           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&nbsp;</td>
          <td class="paramname"> <em>size</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return true if a path exists. 
<p>
Also return the size of the file if needed. 
</div>
</div><p>
<a class="anchor" name="ea9df231a724753c662bf13259de42e2"></a><!-- doxytag: member="csArchive::FindName" ref="ea9df231a724753c662bf13259de42e2" args="(const char *name) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* csArchive::FindName           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Find a file in archive; returns a handle or 0. 
<p>

</div>
</div><p>
<a class="anchor" name="228bdb6b8f8841dc0884659a62002144"></a><!-- doxytag: member="csArchive::Flush" ref="228bdb6b8f8841dc0884659a62002144" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csArchive::Flush           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Execute all pending operations involving writes to archive Neither DeleteFile or NewFile will have effect until this function will be called. 
<p>
Returns false if operation failed. If operation failed, postponed operations remains in the same state as before calling <a class="el" href="classcsArchive.html#228bdb6b8f8841dc0884659a62002144" title="Execute all pending operations involving writes to archive Neither DeleteFile or...">Flush()</a>, i.e. for example user can be prompted to free some space on drive then retry <a class="el" href="classcsArchive.html#228bdb6b8f8841dc0884659a62002144" title="Execute all pending operations involving writes to archive Neither DeleteFile or...">Flush()</a>. 
</div>
</div><p>
<a class="anchor" name="fd613fe7bb6cbd030ac75b2e2a8abc46"></a><!-- doxytag: member="csArchive::GetComment" ref="fd613fe7bb6cbd030ac75b2e2a8abc46" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* csArchive::GetComment           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Query archive comment. 
<p>

<p>Definition at line <a class="el" href="archive_8h-source.html#l00216">216</a> of file <a class="el" href="archive_8h-source.html">archive.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="dc740f22d9b922f4760018c4faed2519"></a><!-- doxytag: member="csArchive::GetFile" ref="dc740f22d9b922f4760018c4faed2519" args="(size_t no)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* csArchive::GetFile           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>no</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get Nth file in archive or 0. 
<p>

<p>Definition at line <a class="el" href="archive_8h-source.html#l00196">196</a> of file <a class="el" href="archive_8h-source.html">archive.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="c1c2868cc5058eb7ee5ea312b351623f"></a><!-- doxytag: member="csArchive::GetFileName" ref="c1c2868cc5058eb7ee5ea312b351623f" args="(void *entry) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* csArchive::GetFileName           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>entry</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Query name from handle. 
<p>

<p>Definition at line <a class="el" href="archive_8h-source.html#l00202">202</a> of file <a class="el" href="archive_8h-source.html">archive.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="a512dbd02901d6a9519b0a89564efa27"></a><!-- doxytag: member="csArchive::GetFileSize" ref="a512dbd02901d6a9519b0a89564efa27" args="(void *entry) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t csArchive::GetFileSize           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>entry</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Query file size from handle. 
<p>

<p>Definition at line <a class="el" href="archive_8h-source.html#l00205">205</a> of file <a class="el" href="archive_8h-source.html">archive.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="c61619ebe3f3c053b026dabbee37a727"></a><!-- doxytag: member="csArchive::GetFileTime" ref="c61619ebe3f3c053b026dabbee37a727" args="(void *entry, csFileTime &amp;ztime) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csArchive::GetFileTime           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>entry</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcsFileTime.html">csFileTime</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>ztime</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Query filetime from handle. 
<p>

<p>Definition at line <a class="el" href="archive_8h-source.html#l00220">220</a> of file <a class="el" href="archive_8h-source.html">archive.h</a>.</p>

<p>References <a class="el" href="archive_8h-source.html#l00086">ArchiveEntry</a>.</p>

</div>
</div><p>
<a class="anchor" name="b56f2659ca38157b72977609968a2f23"></a><!-- doxytag: member="csArchive::GetName" ref="b56f2659ca38157b72977609968a2f23" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* csArchive::GetName           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Query archive filename. 
<p>

<p>Definition at line <a class="el" href="archive_8h-source.html#l00213">213</a> of file <a class="el" href="archive_8h-source.html">archive.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="1bc606a3e5b621b5b4ea485abd84c030"></a><!-- doxytag: member="csArchive::NewFile" ref="1bc606a3e5b621b5b4ea485abd84c030" args="(const char *name, size_t size=0, bool pack=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* csArchive::NewFile           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>pack</em> = <code>true</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a new file in the archive. 
<p>
If the file already exists it will be overwritten. <p>
Returns 0 if not succesful. Otherwise it returns a pointer that can be passed to 'Write' routine. You won't see any changes to archive until 'Flush' will be called. <p>
'size' is the _advisory_ file size. There is no problem if you will write more or less bytes, its just a matter of performance - if you set the right size, archive manager will have to allocate memory only once; however if you set size to zero and then write all the data in one call, it will have same performance. 
</div>
</div><p>
<a class="anchor" name="20a4acdaa93fec58611bf450d145a312"></a><!-- doxytag: member="csArchive::Read" ref="20a4acdaa93fec58611bf450d145a312" args="(const char *name, size_t *size=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* csArchive::Read           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&nbsp;</td>
          <td class="paramname"> <em>size</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Read a file completely. 
<p>
After finishing with the returned data you need to 'delete[]' it. If the file does not exists this function returns 0. If "size" is not null, it is set to unpacked size of the file. 
</div>
</div><p>
<a class="anchor" name="d05c5482c45327c84d232fedcb378699"></a><!-- doxytag: member="csArchive::SetFileTime" ref="d05c5482c45327c84d232fedcb378699" args="(void *entry, const csFileTime &amp;ztime)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csArchive::SetFileTime           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>entry</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structcsFileTime.html">csFileTime</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>ztime</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set filetime for handle. 
<p>

<p>Definition at line <a class="el" href="archive_8h-source.html#l00230">230</a> of file <a class="el" href="archive_8h-source.html">archive.h</a>.</p>

<p>References <a class="el" href="archive_8h-source.html#l00086">ArchiveEntry</a>.</p>

</div>
</div><p>
<a class="anchor" name="bd448aab462cf95f6c1d9589323660f7"></a><!-- doxytag: member="csArchive::Write" ref="bd448aab462cf95f6c1d9589323660f7" args="(void *entry, const char *data, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csArchive::Write           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>entry</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Write data to a file. 
<p>
Note that 'size' need not be the overall file size if this was given in 'NewFile', but this function will fail if the total size of written data exceeds the maximum size given to 'NewFile'. 
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>csutil/<a class="el" href="archive_8h-source.html">archive.h</a></ul>
<hr size="1"><address><small>Generated for Crystal Space 1.2.1 by 
<a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 
</small></address> </div></body> </html>