Sophie

Sophie

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

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: csMemFile 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>csMemFile Class Reference</h1><!-- doxytag: class="csMemFile" --><!-- doxytag: inherits="scfImplementation1&lt; csMemFile, iFile &gt;" -->Essentially a raw memory buffer which implements the abstract <a class="el" href="structiFile.html" title="A replacement for FILE type in the virtual file space.">iFile</a> interface.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="memfile_8h-source.html">csutil/memfile.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for csMemFile:</div>
<div class="dynsection">
<p><center><img src="classcsMemFile__inherit__graph.png" border="0" usemap="#csMemFile__inherit__map" alt="Inheritance graph"></center>
<map name="csMemFile__inherit__map">
<area shape="rect" href="classscfImplementation1.html" title="scfImplementation1\&lt; csMemFile, iFile \&gt;" alt="" coords="67,161,344,188"><area shape="rect" href="classscfImplementation.html" title="scfImplementation\&lt; csMemFile \&gt;" alt="" coords="5,84,243,111"><area shape="rect" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one..." alt="" coords="259,7,315,33"><area shape="rect" href="structiFile.html" title="A replacement for FILE type in the virtual file space." alt="" coords="267,84,309,111"><area shape="rect" href="classCS_1_1Memory_1_1CustomAllocated.html" title="Class that overrides operator new/operator delete/etc." alt="" coords="13,7,235,33"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="classcsMemFile-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 Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#ab9cfa5b94ecee97a760b0c17418ce50">Disposition</a> { <br>
&nbsp;&nbsp;<a class="el" href="classcsMemFile.html#ab9cfa5b94ecee97a760b0c17418ce507b2b64c5023195c3d4e92938a20a68ac">DISPOSITION_DELETE</a>, 
<a class="el" href="classcsMemFile.html#ab9cfa5b94ecee97a760b0c17418ce50c7360bd23be48ec6f746c1b4971674f3">DISPOSITION_PLATFORM_FREE</a>, 
<a class="el" href="classcsMemFile.html#ab9cfa5b94ecee97a760b0c17418ce5081a32ce4afa53e52025da8f66f3d1dd3">DISPOSITION_IGNORE</a>, 
<a class="el" href="classcsMemFile.html#ab9cfa5b94ecee97a760b0c17418ce504017a587daa25821475e97e019682961">DISPOSITION_CS_FREE</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="classcsMemFile.html#ab9cfa5b94ecee97a760b0c17418ce50d0be9f2517a6e4fae91477b16f1ce695">DISPOSITION_FREE</a> =  DISPOSITION_CS_FREE
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Disposition of memory buffer at destruction time.  <a href="classcsMemFile.html#ab9cfa5b94ecee97a760b0c17418ce50">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#ad2813d90ec4b3c13a04649b2b5c37af">AtEOF</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the stream is at end-of-file, else false.  <a href="#ad2813d90ec4b3c13a04649b2b5c37af"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#5544172fee81c10baffe5172d0729d65">csMemFile</a> (<a class="el" href="structiDataBuffer.html">iDataBuffer</a> *buf, bool readOnly)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct a memory file from an existing data buffer.  <a href="#5544172fee81c10baffe5172d0729d65"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#9f1f94c21f173b712c4984ce37922a48">csMemFile</a> (char *, size_t, <a class="el" href="classcsMemFile.html#ab9cfa5b94ecee97a760b0c17418ce50">Disposition</a>=DISPOSITION_DELETE)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct a memory file from an existing memory buffer and free later.  <a href="#9f1f94c21f173b712c4984ce37922a48"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#95e9a11142f9988d635ff4d722e98b52">csMemFile</a> (const char *, size_t)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct a memory file from an existing memory buffer but do not free.  <a href="#95e9a11142f9988d635ff4d722e98b52"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#73394973608b39f90415fbc4710b2782">csMemFile</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct an empty memory file.  <a href="#73394973608b39f90415fbc4710b2782"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#b4851e941844524a07eafb8c0b93c779">Flush</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flush stream.  <a href="#b4851e941844524a07eafb8c0b93c779"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classcsPtr.html">csPtr</a><br>
&lt; <a class="el" href="structiDataBuffer.html">iDataBuffer</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#ef66782be803c3534a755ccb7844f58e">GetAllData</a> (bool nullterm=false)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request whole content of the file as a single data buffer.  <a href="#ef66782be803c3534a755ccb7844f58e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#765e8a401aef1b56792389e6f0c336f5">GetData</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a pointer to the memory buffer.  <a href="#765e8a401aef1b56792389e6f0c336f5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#a4bf78fccb504a3c9d938b2950ee8d34">GetName</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns "#csMemFile".  <a href="#a4bf78fccb504a3c9d938b2950ee8d34"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#abfa720728dfe01f03c0272a413873ba">GetPos</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query current file pointer.  <a href="#abfa720728dfe01f03c0272a413873ba"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#67936bab115af26874b4579a5c3f53bf">GetSize</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query file size.  <a href="#67936bab115af26874b4579a5c3f53bf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#933a67a9a10e158a3a3a1201941e423c">GetStatus</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check (and clear) file last error status.  <a href="#933a67a9a10e158a3a3a1201941e423c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#20215cecbaaf5122253b77f20862f8ea">Read</a> (char *Data, size_t DataSize)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read DataSize bytes and place them into the buffer at which Data points.  <a href="#20215cecbaaf5122253b77f20862f8ea"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#9577865cdba807b26362a59a11baa7a4">SetPos</a> (size_t newpos)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set new file pointer.  <a href="#9577865cdba807b26362a59a11baa7a4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#ec57eadb7ecd407ededeca5bf1685ae4">Write</a> (const char *Data, size_t DataSize)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write DataSize bytes from the buffer at which Data points.  <a href="#ec57eadb7ecd407ededeca5bf1685ae4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#495aed8c686e5053ff82766c08aaa9d9">~csMemFile</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor.  <a href="#495aed8c686e5053ff82766c08aaa9d9"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="64e0a76f41f3b92c9b0f068b561f97ee"></a><!-- doxytag: member="csMemFile::buffer" ref="64e0a76f41f3b92c9b0f068b561f97ee" args="" -->
<a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiDataBuffer.html">iDataBuffer</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#64e0a76f41f3b92c9b0f068b561f97ee">buffer</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="521513b3db6cbfa910523d056cdbd932"></a><!-- doxytag: member="csMemFile::copyOnWrite" ref="521513b3db6cbfa910523d056cdbd932" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#521513b3db6cbfa910523d056cdbd932">copyOnWrite</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7b27083d2cca70d0311db7ed7acde6bb"></a><!-- doxytag: member="csMemFile::cursor" ref="7b27083d2cca70d0311db7ed7acde6bb" args="" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#7b27083d2cca70d0311db7ed7acde6bb">cursor</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0c50f4e74ff716dce9131f0d3d09e3c3"></a><!-- doxytag: member="csMemFile::size" ref="0c50f4e74ff716dce9131f0d3d09e3c3" args="" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#0c50f4e74ff716dce9131f0d3d09e3c3">size</a></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Essentially a raw memory buffer which implements the abstract <a class="el" href="structiFile.html" title="A replacement for FILE type in the virtual file space.">iFile</a> interface. 
<p>Definition at line <a class="el" href="memfile_8h-source.html#l00034">34</a> of file <a class="el" href="memfile_8h-source.html">memfile.h</a>.</p>
<hr><h2>Member Enumeration Documentation</h2>
<a class="anchor" name="ab9cfa5b94ecee97a760b0c17418ce50"></a><!-- doxytag: member="csMemFile::Disposition" ref="ab9cfa5b94ecee97a760b0c17418ce50" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classcsMemFile.html#ab9cfa5b94ecee97a760b0c17418ce50">csMemFile::Disposition</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Disposition of memory buffer at destruction time. 
<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="ab9cfa5b94ecee97a760b0c17418ce507b2b64c5023195c3d4e92938a20a68ac"></a><!-- doxytag: member="DISPOSITION_DELETE" ref="ab9cfa5b94ecee97a760b0c17418ce507b2b64c5023195c3d4e92938a20a68ac" args="" -->DISPOSITION_DELETE</em>&nbsp;</td><td>
Deallocate with delete[]. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ab9cfa5b94ecee97a760b0c17418ce50c7360bd23be48ec6f746c1b4971674f3"></a><!-- doxytag: member="DISPOSITION_PLATFORM_FREE" ref="ab9cfa5b94ecee97a760b0c17418ce50c7360bd23be48ec6f746c1b4971674f3" args="" -->DISPOSITION_PLATFORM_FREE</em>&nbsp;</td><td>
Deallocate with <a class="el" href="cssysdef_8h.html#f232999cc62689305807a895d3f79123">platform_free()</a>. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ab9cfa5b94ecee97a760b0c17418ce5081a32ce4afa53e52025da8f66f3d1dd3"></a><!-- doxytag: member="DISPOSITION_IGNORE" ref="ab9cfa5b94ecee97a760b0c17418ce5081a32ce4afa53e52025da8f66f3d1dd3" args="" -->DISPOSITION_IGNORE</em>&nbsp;</td><td>
Ignore; assume that outside agent owns buffer. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ab9cfa5b94ecee97a760b0c17418ce504017a587daa25821475e97e019682961"></a><!-- doxytag: member="DISPOSITION_CS_FREE" ref="ab9cfa5b94ecee97a760b0c17418ce504017a587daa25821475e97e019682961" args="" -->DISPOSITION_CS_FREE</em>&nbsp;</td><td>
Deallocate with <a class="el" href="cssysdef_8h.html#7af27c7b7c38c438787a3d2f4e5079c4">cs_free()</a>. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ab9cfa5b94ecee97a760b0c17418ce50d0be9f2517a6e4fae91477b16f1ce695"></a><!-- doxytag: member="DISPOSITION_FREE" ref="ab9cfa5b94ecee97a760b0c17418ce50d0be9f2517a6e4fae91477b16f1ce695" args="" -->DISPOSITION_FREE</em>&nbsp;</td><td>
Deallocate with <a class="el" href="cssysdef_8h.html#f232999cc62689305807a895d3f79123">platform_free()</a> or <a class="el" href="cssysdef_8h.html#7af27c7b7c38c438787a3d2f4e5079c4">cs_free()</a>, depending on whether malloc override is disabled or not. </td></tr>
</table>
</dl>

<p>Definition at line <a class="el" href="memfile_8h-source.html#l00039">39</a> of file <a class="el" href="memfile_8h-source.html">memfile.h</a>.</p>

</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="73394973608b39f90415fbc4710b2782"></a><!-- doxytag: member="csMemFile::csMemFile" ref="73394973608b39f90415fbc4710b2782" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">csMemFile::csMemFile           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Construct an empty memory file. 
<p>

</div>
</div><p>
<a class="anchor" name="95e9a11142f9988d635ff4d722e98b52"></a><!-- doxytag: member="csMemFile::csMemFile" ref="95e9a11142f9988d635ff4d722e98b52" args="(const char *, size_t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">csMemFile::csMemFile           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"></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>
Construct a memory file from an existing memory buffer but do not free. 
<p>

</div>
</div><p>
<a class="anchor" name="9f1f94c21f173b712c4984ce37922a48"></a><!-- doxytag: member="csMemFile::csMemFile" ref="9f1f94c21f173b712c4984ce37922a48" args="(char *, size_t, Disposition=DISPOSITION_DELETE)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">csMemFile::csMemFile           </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsMemFile.html#ab9cfa5b94ecee97a760b0c17418ce50">Disposition</a>&nbsp;</td>
          <td class="paramname"> = <code>DISPOSITION_DELETE</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>
Construct a memory file from an existing memory buffer and free later. 
<p>
Note that when writing to the buffer, the original buffer may be discarded and a new one created due required resizing. 
</div>
</div><p>
<a class="anchor" name="5544172fee81c10baffe5172d0729d65"></a><!-- doxytag: member="csMemFile::csMemFile" ref="5544172fee81c10baffe5172d0729d65" args="(iDataBuffer *buf, bool readOnly)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">csMemFile::csMemFile           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiDataBuffer.html">iDataBuffer</a> *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>readOnly</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>
Construct a memory file from an existing data buffer. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>The data buffer to use. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>readOnly</em>&nbsp;</td><td>Whether to treat the buffer as read-only. If <code>true</code>, writing to the memory file will create a copy of the buffer. If <code>false</code>, changes will affect the buffer. Note that when writing to the buffer, the original buffer may be discarded and a new one created due required resizing. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="495aed8c686e5053ff82766c08aaa9d9"></a><!-- doxytag: member="csMemFile::~csMemFile" ref="495aed8c686e5053ff82766c08aaa9d9" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual csMemFile::~csMemFile           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destructor. 
<p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="ad2813d90ec4b3c13a04649b2b5c37af"></a><!-- doxytag: member="csMemFile::AtEOF" ref="ad2813d90ec4b3c13a04649b2b5c37af" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool csMemFile::AtEOF           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns true if the stream is at end-of-file, else false. 
<p>

<p>Implements <a class="el" href="structiFile.html#f1da4c6ef65ca75360d134b0cd047dc9">iFile</a>.</p>

</div>
</div><p>
<a class="anchor" name="b4851e941844524a07eafb8c0b93c779"></a><!-- doxytag: member="csMemFile::Flush" ref="b4851e941844524a07eafb8c0b93c779" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void csMemFile::Flush           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Flush stream. 
<p>

<p>Implements <a class="el" href="structiFile.html#eae974e73b0c49bf22d6c11c4c4f5eb2">iFile</a>.</p>

</div>
</div><p>
<a class="anchor" name="ef66782be803c3534a755ccb7844f58e"></a><!-- doxytag: member="csMemFile::GetAllData" ref="ef66782be803c3534a755ccb7844f58e" args="(bool nullterm=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classcsPtr.html">csPtr</a>&lt;<a class="el" href="structiDataBuffer.html">iDataBuffer</a>&gt; csMemFile::GetAllData           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>nullterm</em> = <code>false</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Request whole content of the file as a single data buffer. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nullterm</em>&nbsp;</td><td>Set this to true if you want a null char to be appended to the buffer (e.g. for use with string functions.) </td></tr>
  </table>
</dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>Null-termination might have a performance penalty (depending upon where the file is stored.) Use only when needed. </dd></dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The complete data contained in the file; or an invalidated pointer if this object does not support this function (e.g. write-only VFS files). Check for an invalidated result via <a class="el" href="classcsRef.html#620198af96e2f744bab6207d9c546ed8" title="Smart pointer validity check.">csRef&lt;&gt;::IsValid()</a>. Do not modify the contained data! </dd></dl>

<p>Implements <a class="el" href="structiFile.html#8b4612b4492382cf2d4f17dd4bbf364e">iFile</a>.</p>

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

<p>
Returns a pointer to the memory buffer. 
<p>
May return 0 if memory file is empty. Use <a class="el" href="classcsMemFile.html#67936bab115af26874b4579a5c3f53bf" title="Query file size.">GetSize()</a> for size info. 
</div>
</div><p>
<a class="anchor" name="a4bf78fccb504a3c9d938b2950ee8d34"></a><!-- doxytag: member="csMemFile::GetName" ref="a4bf78fccb504a3c9d938b2950ee8d34" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* csMemFile::GetName           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns "#csMemFile". 
<p>

<p>Implements <a class="el" href="structiFile.html#0d39996448ca1794faa2bdf58d6b186b">iFile</a>.</p>

</div>
</div><p>
<a class="anchor" name="abfa720728dfe01f03c0272a413873ba"></a><!-- doxytag: member="csMemFile::GetPos" ref="abfa720728dfe01f03c0272a413873ba" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t csMemFile::GetPos           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Query current file pointer. 
<p>

<p>Implements <a class="el" href="structiFile.html#63192d4c90e269feef6075d8c7f81efb">iFile</a>.</p>

</div>
</div><p>
<a class="anchor" name="67936bab115af26874b4579a5c3f53bf"></a><!-- doxytag: member="csMemFile::GetSize" ref="67936bab115af26874b4579a5c3f53bf" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t csMemFile::GetSize           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Query file size. 
<p>

<p>Implements <a class="el" href="structiFile.html#184c528adfec25f53545fe9271ff374b">iFile</a>.</p>

</div>
</div><p>
<a class="anchor" name="933a67a9a10e158a3a3a1201941e423c"></a><!-- doxytag: member="csMemFile::GetStatus" ref="933a67a9a10e158a3a3a1201941e423c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int csMemFile::GetStatus           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check (and clear) file last error status. 
<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__vfs.html#gf655ca2c3b3f4c242b7e719f83d73e3c" title="Access denied: either you have no write access, the filesystem is read-only or you...">VFS_STATUS_ACCESSDENIED</a> </dd></dl>

<p>Implements <a class="el" href="structiFile.html#a0f33b299c54426c60d5ce7d9f1db8de">iFile</a>.</p>

</div>
</div><p>
<a class="anchor" name="20215cecbaaf5122253b77f20862f8ea"></a><!-- doxytag: member="csMemFile::Read" ref="20215cecbaaf5122253b77f20862f8ea" args="(char *Data, size_t DataSize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t csMemFile::Read           </td>
          <td>(</td>
          <td class="paramtype">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>DataSize</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Read DataSize bytes and place them into the buffer at which Data points. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>Data</em>&nbsp;</td><td>Pointer to the buffer into which the data should be read. The buffer should be at least DataSize bytes in size. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>DataSize</em>&nbsp;</td><td>Number of bytes to read. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of bytes actually read. If an error occurs, zero is returned. Invoke <a class="el" href="classcsMemFile.html#933a67a9a10e158a3a3a1201941e423c" title="Check (and clear) file last error status.">GetStatus()</a> to retrieve the error code. </dd></dl>

<p>Implements <a class="el" href="structiFile.html#23a8ceeaf85b15241acd3ef2f98b78d4">iFile</a>.</p>

</div>
</div><p>
<a class="anchor" name="9577865cdba807b26362a59a11baa7a4"></a><!-- doxytag: member="csMemFile::SetPos" ref="9577865cdba807b26362a59a11baa7a4" args="(size_t newpos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool csMemFile::SetPos           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>newpos</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set new file pointer. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>newpos</em>&nbsp;</td><td>New position in file. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the operation succeeded, else false. </dd></dl>

<p>Implements <a class="el" href="structiFile.html#411c083eb2f6745a7fa0fe15f598ad0b">iFile</a>.</p>

</div>
</div><p>
<a class="anchor" name="ec57eadb7ecd407ededeca5bf1685ae4"></a><!-- doxytag: member="csMemFile::Write" ref="ec57eadb7ecd407ededeca5bf1685ae4" args="(const char *Data, size_t DataSize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t csMemFile::Write           </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>DataSize</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Write DataSize bytes from the buffer at which Data points. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>Data</em>&nbsp;</td><td>Pointer to the data to be written. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>DataSize</em>&nbsp;</td><td>Number of bytes to write. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of bytes actually written. If an error occurs, zero is returned. Invoke <a class="el" href="classcsMemFile.html#933a67a9a10e158a3a3a1201941e423c" title="Check (and clear) file last error status.">GetStatus()</a> to retrieve the error code. </dd></dl>

<p>Implements <a class="el" href="structiFile.html#73a0d4bf182d42deb70e9982c3b17af7">iFile</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>csutil/<a class="el" href="memfile_8h-source.html">memfile.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>