<!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 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 Pages</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="classes.html"><span>Alphabetical List</span></a></li> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <h1>csMemFile Class Reference</h1><!-- doxytag: class="csMemFile" --><!-- doxytag: inherits="scfImplementation1< csMemFile, iFile >" -->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 <<a class="el" href="memfile_8h-source.html">csutil/memfile.h</a>></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\< csMemFile, iFile \>" alt="" coords="67,161,344,188"><area shape="rect" href="classscfImplementation.html" title="scfImplementation\< csMemFile \>" 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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#ab9cfa5b94ecee97a760b0c17418ce50">Disposition</a> { <br> <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> <a class="el" href="classcsMemFile.html#ab9cfa5b94ecee97a760b0c17418ce50d0be9f2517a6e4fae91477b16f1ce695">DISPOSITION_FREE</a> = DISPOSITION_CS_FREE <br> }</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#ad2813d90ec4b3c13a04649b2b5c37af">AtEOF</a> ()</td></tr> <tr><td class="mdescLeft"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#73394973608b39f90415fbc4710b2782">csMemFile</a> ()</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#b4851e941844524a07eafb8c0b93c779">Flush</a> ()</td></tr> <tr><td class="mdescLeft"> </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> < <a class="el" href="structiDataBuffer.html">iDataBuffer</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#ef66782be803c3534a755ccb7844f58e">GetAllData</a> (bool nullterm=false)</td></tr> <tr><td class="mdescLeft"> </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 * </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#765e8a401aef1b56792389e6f0c336f5">GetData</a> () const </td></tr> <tr><td class="mdescLeft"> </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 * </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#a4bf78fccb504a3c9d938b2950ee8d34">GetName</a> ()</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#abfa720728dfe01f03c0272a413873ba">GetPos</a> ()</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#67936bab115af26874b4579a5c3f53bf">GetSize</a> ()</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#933a67a9a10e158a3a3a1201941e423c">GetStatus</a> ()</td></tr> <tr><td class="mdescLeft"> </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 </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"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#9577865cdba807b26362a59a11baa7a4">SetPos</a> (size_t newpos)</td></tr> <tr><td class="mdescLeft"> </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 </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"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemFile.html#495aed8c686e5053ff82766c08aaa9d9">~csMemFile</a> ()</td></tr> <tr><td class="mdescLeft"> </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>< <a class="el" href="structiDataBuffer.html">iDataBuffer</a> > </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 </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 </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 </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> </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> </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> </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> </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> </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 & 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> ) </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 * </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"></td><td> </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 * </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </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> </td> <td class="paramname"> = <code>DISPOSITION_DELETE</code></td><td> </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> * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>readOnly</em></td><td> </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> </td><td>The data buffer to use. </td></tr> <tr><td valign="top"></td><td valign="top"><em>readOnly</em> </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> ) </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> ) </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> ) </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><<a class="el" href="structiDataBuffer.html">iDataBuffer</a>> csMemFile::GetAllData </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"> <em>nullterm</em> = <code>false</code> </td> <td> ) </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> </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<>::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> ) </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> ) </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> ) </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> ) </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> ) </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 * </td> <td class="paramname"> <em>Data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>DataSize</em></td><td> </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> </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> </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 </td> <td class="paramname"> <em>newpos</em> </td> <td> ) </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> </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 * </td> <td class="paramname"> <em>Data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>DataSize</em></td><td> </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> </td><td>Pointer to the data to be written. </td></tr> <tr><td valign="top"></td><td valign="top"><em>DataSize</em> </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>