blob: d289fac2497619517e819c9ce3ae18ee7df37b67 [file] [log] [blame]
<!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>Oscl_File class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.18 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>Oscl_File Class Reference<br>
<small>
[<a class="el" href="group__osclio.html">OSCL IO</a>]</small>
</h1><code>#include &lt;<a class="el" href="oscl__file__io_8h-source.html">oscl_file_io.h</a>&gt;</code>
<p>
<p>Inheritance diagram for Oscl_File:
<p><center><img src="classOscl__File.png" usemap="#Oscl_File_map" border="0" alt=""></center>
<map name="Oscl_File_map">
<area href="classHeapBase.html" alt="HeapBase" shape="rect" coords="0,56,103,80">
<area href="class__OsclHeapBase.html" alt="_OsclHeapBase" shape="rect" coords="0,0,103,24">
</map>
<table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
<tr><td nowrap align=right valign=top>enum &nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#s11">seek_type</a> { <a class="el" href="classOscl__File.html#s11s0">SEEKSET</a>,
<a class="el" href="classOscl__File.html#s11s1">SEEKCUR</a>,
<a class="el" href="classOscl__File.html#s11s2">SEEKEND</a>
}</td></tr>
<tr><td nowrap align=right valign=top>enum &nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#s12">mode_type</a> { <br>
&nbsp;&nbsp;<a class="el" href="classOscl__File.html#s12s3">MODE_READ</a> = 0x0001,
<a class="el" href="classOscl__File.html#s12s4">MODE_READWRITE</a> = 0x0002,
<a class="el" href="classOscl__File.html#s12s5">MODE_APPEND</a> = 0x0004,
<a class="el" href="classOscl__File.html#s12s6">MODE_BINARY</a> = 0x0008,
<br>
&nbsp;&nbsp;<a class="el" href="classOscl__File.html#s12s7">MODE_TEXT</a> = 0x0010,
<a class="el" href="classOscl__File.html#s12s8">MODE_READ_PLUS</a> = 0x0020
<br>
}</td></tr>
<tr><td nowrap align=right valign=top>enum &nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#s13">TSymbianAccessMode</a> { <a class="el" href="classOscl__File.html#s13s9">ESymbianAccessMode_Rfile</a> = 0,
<a class="el" href="classOscl__File.html#s13s10">ESymbianAccessMode_RfileBuf</a> = 1
}</td></tr>
<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a0">Oscl_File</a> ()</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a1">Oscl_File</a> (uint32 aCacheSize)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a2">Oscl_File</a> (uint32 aCacheSize, <a class="el" href="classOsclFileHandle.html">OsclFileHandle</a> *aFileHandle)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a3">~Oscl_File</a> ()</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a4">SetPVCacheSize</a> (uint32 aSize)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a5">SetNativeAccessMode</a> (uint32 aMode)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a6">SetNativeBufferSize</a> (int32 aSize)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a7">SetAsyncReadBufferSize</a> (uint32 aSize)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF int32&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a8">SetFileHandle</a> (<a class="el" href="classOsclFileHandle.html">OsclFileHandle</a> *aHandle)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF int32&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a9">Open</a> (const char *filename, uint32 mode, <a class="el" href="classOscl__FileServer.html">Oscl_FileServer</a> &amp;fileserv)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF int32&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a10">Open</a> (const <a class="el" href="group__osclbase.html#a32">oscl_wchar</a> *filename, uint32 mode, <a class="el" href="classOscl__FileServer.html">Oscl_FileServer</a> &amp;fileserv)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF uint32&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a11">Read</a> (<a class="el" href="group__osclbase.html#a25">OsclAny</a> *buffer, uint32 size, uint32 numelements)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF uint32&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a12">Write</a> (const <a class="el" href="group__osclbase.html#a25">OsclAny</a> *buffer, uint32 size, uint32 numelements)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF int32&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a13">Seek</a> (<a class="el" href="osclconfig__io_8h.html#a48">TOsclFileOffset</a> offset, <a class="el" href="classOscl__File.html#s11">seek_type</a> origin)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF <a class="el" href="osclconfig__io_8h.html#a48">TOsclFileOffset</a>&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a14">Tell</a> ()</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF int32&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a15">Close</a> ()</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF int32&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a16">Flush</a> ()</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF int32&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a17">EndOfFile</a> ()</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF int32&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a18">GetError</a> ()</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="classOsclFileHandle.html">OsclFileHandle</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a19">Handle</a> ()</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF <a class="el" href="osclconfig__io_8h.html#a48">TOsclFileOffset</a>&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a20">Size</a> ()</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a21">SetLoggingEnable</a> (bool aEnable)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#a22">SetSummaryStatsLoggingEnable</a> (bool aEnable)</td></tr>
<tr><td colspan=2><br><h2>Friends</h2></td></tr>
<tr><td nowrap align=right valign=top>class&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#l0">OsclFileCache</a></td></tr>
<tr><td nowrap align=right valign=top>class&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#l1">asyncfilereadwrite_test</a></td></tr>
<tr><td nowrap align=right valign=top>class&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#l2">largeasyncfilereadwrite_test</a></td></tr>
<tr><td nowrap align=right valign=top>class&nbsp;</td><td valign=bottom><a class="el" href="classOscl__File.html#l3">asyncfilereadcancel_test</a></td></tr>
</table>
<hr><h2>Member Enumeration Documentation</h2>
<a name="s12" doxytag="Oscl_File::mode_type"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> enum Oscl_File::mode_type
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
<dl compact><dt><b>Enumeration values: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em><a name="s12s3" doxytag="MODE_READ"></a><em>MODE_READ</em></em>&nbsp;</td><td>
Opens a file for reading. The file must exist. </td></tr>
<tr><td valign=top><em><a name="s12s4" doxytag="MODE_READWRITE"></a><em>MODE_READWRITE</em></em>&nbsp;</td><td>
Opens the file for reading and writing. If the file exists, its contents will be overwritten unless APPEND mode is specified. If the file does not exist, it will be created. </td></tr>
<tr><td valign=top><em><a name="s12s5" doxytag="MODE_APPEND"></a><em>MODE_APPEND</em></em>&nbsp;</td><td>
Specifies all write operations to occur at the end of the file. The file pointer can be moved with the Seek command, but will always be moved to the end of the file for write commands. </td></tr>
<tr><td valign=top><em><a name="s12s6" doxytag="MODE_BINARY"></a><em>MODE_BINARY</em></em>&nbsp;</td><td>
Opens the file in 'binary' mode. This is the default. </td></tr>
<tr><td valign=top><em><a name="s12s7" doxytag="MODE_TEXT"></a><em>MODE_TEXT</em></em>&nbsp;</td><td>
Opens the file in 'text' mode. The default mode is 'binary'. </td></tr>
<tr><td valign=top><em><a name="s12s8" doxytag="MODE_READ_PLUS"></a><em>MODE_READ_PLUS</em></em>&nbsp;</td><td>
Open a file for reading and writing. The file must exist. The default mode is 'binary'. </td></tr>
</table>
</dl>
</td>
</tr>
</table>
<a name="s11" doxytag="Oscl_File::seek_type"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> enum Oscl_File::seek_type
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
<dl compact><dt><b>Enumeration values: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em><a name="s11s0" doxytag="SEEKSET"></a><em>SEEKSET</em></em>&nbsp;</td><td>
Beginning of file </td></tr>
<tr><td valign=top><em><a name="s11s1" doxytag="SEEKCUR"></a><em>SEEKCUR</em></em>&nbsp;</td><td>
Current position of file pointer </td></tr>
<tr><td valign=top><em><a name="s11s2" doxytag="SEEKEND"></a><em>SEEKEND</em></em>&nbsp;</td><td>
End of file </td></tr>
</table>
</dl>
</td>
</tr>
</table>
<a name="s13" doxytag="Oscl_File::TSymbianAccessMode"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> enum Oscl_File::TSymbianAccessMode
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Defines mode options for SetNativeAccessMode on Symbian. <dl compact><dt><b>Enumeration values: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em><a name="s13s9" doxytag="ESymbianAccessMode_Rfile"></a><em>ESymbianAccessMode_Rfile</em></em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a name="s13s10" doxytag="ESymbianAccessMode_RfileBuf"></a><em>ESymbianAccessMode_RfileBuf</em></em>&nbsp;</td><td>
</td></tr>
</table>
</dl>
</td>
</tr>
</table>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="a0" doxytag="Oscl_File::Oscl_File"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF Oscl_File::Oscl_File </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Constructor </td>
</tr>
</table>
<a name="a1" doxytag="Oscl_File::Oscl_File"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF Oscl_File::Oscl_File </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">uint32&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aCacheSize</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Deprecated Constructor, present for back-compatibility. <dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aCacheSize:</em>&nbsp;</td><td>
sets native buffer size, and when pv cache is enabled, also sets pv cache size. </td></tr>
</table>
</dl> </td>
</tr>
</table>
<a name="a2" doxytag="Oscl_File::Oscl_File"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF Oscl_File::Oscl_File </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">uint32&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aCacheSize</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap><a class="el" href="classOsclFileHandle.html">OsclFileHandle</a> *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aFileHandle</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Deprecated Constructor, present for back-compatibility. <dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aCacheSize:</em>&nbsp;</td><td>
sets native buffer size, and when pv cache is enabled, also sets pv cache size. </td></tr>
<tr><td valign=top><em>aFileHandle:</em>&nbsp;</td><td>
open file handle. </td></tr>
</table>
</dl> </td>
</tr>
</table>
<a name="a3" doxytag="Oscl_File::~Oscl_File"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF Oscl_File::~Oscl_File </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Destructor </td>
</tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a name="a15" doxytag="Oscl_File::Close"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF int32 Oscl_File::Close </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
The File Close operation Closes the file after flushing any remaining data in the buffers.
<p>
Note: If the file object was opened with an external file handle, then Close will simply flush the file. The file will remain open.
<p>
<dl compact><dt><b>Returns: </b></dt><dd>
returns 0 if successful, and a non-zero value otherwise </dl> </td>
</tr>
</table>
<a name="a17" doxytag="Oscl_File::EndOfFile"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF int32 Oscl_File::EndOfFile </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
The File EOF(end of file) operation returns a nonzero value after the first read operation that attempts to read past the end of the file
<p>
<dl compact><dt><b>Returns: </b></dt><dd>
</dl> </td>
</tr>
</table>
<a name="a16" doxytag="Oscl_File::Flush"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF int32 Oscl_File::Flush </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
The File Flush operation On an output stream OSCL_FileFlush causes any buffered but unwritten data to be written to the file.
<p>
<dl compact><dt><b>Returns: </b></dt><dd>
returns 0 if successful, and a non-zero value otherwise </dl> </td>
</tr>
</table>
<a name="a18" doxytag="Oscl_File::GetError"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF int32 Oscl_File::GetError </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
The File Error operation If no error has occurred on stream, returns 0. Otherwise, it returns a nonzero value
<p>
<dl compact><dt><b>Returns: </b></dt><dd>
</dl> </td>
</tr>
</table>
<a name="a19" doxytag="Oscl_File::Handle"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="el" href="classOsclFileHandle.html">OsclFileHandle</a>* Oscl_File::Handle </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Retrieve the file handle.
<p>
<dl compact><dt><b>Returns: </b></dt><dd>
file handle </dl> </td>
</tr>
</table>
<a name="a10" doxytag="Oscl_File::Open"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF int32 Oscl_File::Open </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const <a class="el" href="group__osclbase.html#a32">oscl_wchar</a> *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>filename</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>uint32&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>mode</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap><a class="el" href="classOscl__FileServer.html">Oscl_FileServer</a> &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>fileserv</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Opens a file.
<p>
Note: when an external file handle is used, Open will attach to the file handle and initialize cacheing features, but will not do a native file open.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>filename</em>&nbsp;</td><td>
name of file to open (Unicode) </td></tr>
<tr><td valign=top><em>mode</em>&nbsp;</td><td>
combination of open mode flags </td></tr>
<tr><td valign=top><em>fileserv</em>&nbsp;</td><td>
fileserver to use</td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
returns 0 if successful and a non-zero value otherwise </dl> </td>
</tr>
</table>
<a name="a9" doxytag="Oscl_File::Open"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF int32 Oscl_File::Open </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const char *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>filename</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>uint32&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>mode</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap><a class="el" href="classOscl__FileServer.html">Oscl_FileServer</a> &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>fileserv</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Opens a file.
<p>
Note: when an external file handle is used, Open will attach to the file handle and initialize cacheing features, but will not do a native file open.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>filename</em>&nbsp;</td><td>
name of file to open (Utf8) </td></tr>
<tr><td valign=top><em>mode</em>&nbsp;</td><td>
combination of open mode flags </td></tr>
<tr><td valign=top><em>fileserv</em>&nbsp;</td><td>
fileserver to use</td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
returns 0 if successful and a non-zero value otherwise </dl> </td>
</tr>
</table>
<a name="a11" doxytag="Oscl_File::Read"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF uint32 Oscl_File::Read </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="group__osclbase.html#a25">OsclAny</a> *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>buffer</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>uint32&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>size</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>uint32&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>numelements</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
The File Read operation Reads from the file into the buffer a maximum of 'numelements' of size 'size'.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
pointer to buffer of type void </td></tr>
<tr><td valign=top><em>size</em>&nbsp;</td><td>
element size in bytes </td></tr>
<tr><td valign=top><em>numelements</em>&nbsp;</td><td>
max number of elements to read</td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
returns the number of full elements actually read, which may be less than count if an error occurs or if the end of the file is encountered before reaching count. Use the CheckEndOfFile or GetError function to distinguish a read error from an end-of-file condition. </dl> </td>
</tr>
</table>
<a name="a13" doxytag="Oscl_File::Seek"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF int32 Oscl_File::Seek </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="osclconfig__io_8h.html#a48">TOsclFileOffset</a>&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>offset</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap><a class="el" href="classOscl__File.html#s11">seek_type</a>&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>origin</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
The File Seek operation Sets the position for file pointer<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>offset</em>&nbsp;</td><td>
offset from the specified origin. </td></tr>
<tr><td valign=top><em>origin</em>&nbsp;</td><td>
starting point</td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
returns 0 on success, and a non-zero value otherwise </dl> </td>
</tr>
</table>
<a name="a7" doxytag="Oscl_File::SetAsyncReadBufferSize"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF void Oscl_File::SetAsyncReadBufferSize </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">uint32&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aSize</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
SetAsyncReadBufferSize configures the asynchronous background read function. May not be available on all platforms.
<p>
This should be called before opening the file. If used when the file is open, the option will not take effect until the next Open.
<p>
Note: if asynchronous read is not available on the platform, this call will have no effect.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aSize:</em>&nbsp;</td><td>
buffer size in bytes. Zero disables the feature. </td></tr>
</table>
</dl> </td>
</tr>
</table>
<a name="a8" doxytag="Oscl_File::SetFileHandle"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF int32 Oscl_File::SetFileHandle </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="classOsclFileHandle.html">OsclFileHandle</a> *&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aHandle</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
SetFileHandle adds an open file handle to the Oscl_File object. The Oscl_File object will use that handle to access the file.
<p>
This call is not available when the Oscl_File object is already open.
<p>
Note: This feature is used in Symbian with the MMF framework. The MMF framework provides an open RFile handle to access content. When using RFileBuf access mode with an RFile handle, the RFileBuf will be attached to the open RFile handle.
<p>
To use the external file handle, the caller starts with a native file handle to an open file. The caller must wrap the native file handle in an <a class="el" href="classOsclFileHandle.html">OsclFileHandle</a> object, pass the <a class="el" href="classOsclFileHandle.html">OsclFileHandle</a> pointer to SetFileHandle, call <a class="el" href="classOscl__File.html#a9">Oscl_File::Open</a>, then proceed to use the Oscl_File object, finally calling <a class="el" href="classOscl__File.html#a15">Oscl_File::Close</a>. In this usage mode, <a class="el" href="classOscl__File.html#a9">Oscl_File::Open</a> and <a class="el" href="classOscl__File.html#a15">Oscl_File::Close</a> do not actually call native file open and close. It is assumed that the caller will close the original native file handle after usage is complete.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aHandle:</em>&nbsp;</td><td>
container for an open file handle. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
returns 0 if successful, non-zero if error. </dl> </td>
</tr>
</table>
<a name="a21" doxytag="Oscl_File::SetLoggingEnable"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF void Oscl_File::SetLoggingEnable </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">bool&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aEnable</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
SetLoggingEnable configures the <a class="el" href="classPVLogger.html">PVLogger</a> output for this file. This will enable full logging of each API entry and exit using the logger object "Oscl_File", plus full logging of native operation entry &amp; exit using logger object "<a class="el" href="classOsclNativeFile.html">OsclNativeFile</a>".<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aEnable:</em>&nbsp;</td><td>
true to enable, false to disable logging. </td></tr>
</table>
</dl> </td>
</tr>
</table>
<a name="a5" doxytag="Oscl_File::SetNativeAccessMode"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF void Oscl_File::SetNativeAccessMode </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">uint32&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aMode</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
SetNativeAccessMode allows switching between different native file access modes, when available.
<p>
Note: for For Symbian, use the TSymbianAccessMode values to choose the mode. If multiple access modes are not available on the platform, this call will have no effect.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aMode:</em>&nbsp;</td><td>
access mode. </td></tr>
</table>
</dl> </td>
</tr>
</table>
<a name="a6" doxytag="Oscl_File::SetNativeBufferSize"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF void Oscl_File::SetNativeBufferSize </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">int32&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aSize</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
SetNativeBufferSize configures the native file buffering feature, when available.
<p>
This should be called before opening the file. If used when the file is open, the option will not take effect until the next Open.
<p>
Note: For Symbian, this sets the RFileBuf cache size. If native buffing is not available on the platform, this call will have no effect.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aSize:</em>&nbsp;</td><td>
native buffer size in bytes. Zero disables the feature. </td></tr>
</table>
</dl> </td>
</tr>
</table>
<a name="a4" doxytag="Oscl_File::SetPVCacheSize"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF void Oscl_File::SetPVCacheSize </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">uint32&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aSize</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
SetPVCacheSize configures the read/write cache.
<p>
This should be called before opening the file. If used when the file is open, the option will not take effect until the next Open.<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aSize:</em>&nbsp;</td><td>
cache size in bytes. Zero disables the cache. </td></tr>
</table>
</dl> </td>
</tr>
</table>
<a name="a22" doxytag="Oscl_File::SetSummaryStatsLoggingEnable"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF void Oscl_File::SetSummaryStatsLoggingEnable </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">bool&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aEnable</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
SetSummaryStatsLoggingEnable configures the <a class="el" href="classPVLogger.html">PVLogger</a> output for this file. This will enable summary statistics logging only, using the logger object "<a class="el" href="classOsclFileStats.html">OsclFileStats</a>".<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>aEnable:</em>&nbsp;</td><td>
true to enable, false to disable stats logging. </td></tr>
</table>
</dl> </td>
</tr>
</table>
<a name="a20" doxytag="Oscl_File::Size"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF <a class="el" href="osclconfig__io_8h.html#a48">TOsclFileOffset</a> Oscl_File::Size </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Get the file size in bytes.
<p>
<dl compact><dt><b>Returns: </b></dt><dd>
- The size of the file, or -1 on error. </dl> </td>
</tr>
</table>
<a name="a14" doxytag="Oscl_File::Tell"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF <a class="el" href="osclconfig__io_8h.html#a48">TOsclFileOffset</a> Oscl_File::Tell </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
The File Tell operation Returns the current file position for file specified by fp </td>
</tr>
</table>
<a name="a12" doxytag="Oscl_File::Write"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OSCL_IMPORT_REF uint32 Oscl_File::Write </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const <a class="el" href="group__osclbase.html#a25">OsclAny</a> *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>buffer</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>uint32&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>size</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>uint32&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>numelements</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
The File Write operation Writes from the buffer 'numelements' objects of size 'size'<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
pointer to buffer of type void </td></tr>
<tr><td valign=top><em>size</em>&nbsp;</td><td>
element size in bytes </td></tr>
<tr><td valign=top><em>numelements</em>&nbsp;</td><td>
number of elements to write</td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
The number of elements written </dl> </td>
</tr>
</table>
<hr><h2>Friends And Related Function Documentation</h2>
<a name="l3" doxytag="Oscl_File::asyncfilereadcancel_test"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> friend class asyncfilereadcancel_test<code> [friend]</code>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<a name="l1" doxytag="Oscl_File::asyncfilereadwrite_test"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> friend class asyncfilereadwrite_test<code> [friend]</code>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<a name="l2" doxytag="Oscl_File::largeasyncfilereadwrite_test"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> friend class largeasyncfilereadwrite_test<code> [friend]</code>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<a name="l0" doxytag="Oscl_File::OsclFileCache"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> friend class OsclFileCache<code> [friend]</code>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="oscl__file__io_8h-source.html">oscl_file_io.h</a></ul>
<hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small>
<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small>
</small></address>
</body>
</html>