Sophie

Sophie

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

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: iutil/vfs.h Source File (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><a href="classes.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<h1>iutil/vfs.h</h1><a href="vfs_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment">    Crystal Space Virtual File System SCF interface</span>
<a name="l00003"></a>00003 <span class="comment">    Copyright (C) 1998,1999 by Andrew Zabolotny &lt;bit@eltech.ru&gt;</span>
<a name="l00004"></a>00004 <span class="comment"></span>
<a name="l00005"></a>00005 <span class="comment">    This library is free software; you can redistribute it and/or</span>
<a name="l00006"></a>00006 <span class="comment">    modify it under the terms of the GNU Library General Public</span>
<a name="l00007"></a>00007 <span class="comment">    License as published by the Free Software Foundation; either</span>
<a name="l00008"></a>00008 <span class="comment">    version 2 of the License, or (at your option) any later version.</span>
<a name="l00009"></a>00009 <span class="comment"></span>
<a name="l00010"></a>00010 <span class="comment">    This library is distributed in the hope that it will be useful,</span>
<a name="l00011"></a>00011 <span class="comment">    but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00012"></a>00012 <span class="comment">    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
<a name="l00013"></a>00013 <span class="comment">    Library General Public License for more details.</span>
<a name="l00014"></a>00014 <span class="comment"></span>
<a name="l00015"></a>00015 <span class="comment">    You should have received a copy of the GNU Library General Public</span>
<a name="l00016"></a>00016 <span class="comment">    License along with this library; if not, write to the Free</span>
<a name="l00017"></a>00017 <span class="comment">    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</span>
<a name="l00018"></a>00018 <span class="comment">*/</span>
<a name="l00019"></a>00019 
<a name="l00020"></a>00020 <span class="preprocessor">#ifndef __CS_IUTIL_VFS_H__</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#define __CS_IUTIL_VFS_H__</span>
<a name="l00022"></a>00022 <span class="preprocessor"></span>
<a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="scf_8h.html" title="Crystal Space Shared Class Facility (SCF).">csutil/scf.h</a>"</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="databuff_8h.html" title="Data Buffer interface.">iutil/databuff.h</a>"</span>
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 <span class="keyword">struct </span><a class="code" href="structiConfigFile.html" title="Configuration file interface.">iConfigFile</a>;
<a name="l00032"></a>00032 
<a name="l00033"></a>00033 <span class="keyword">class </span><a class="code" href="classcsStringArray.html" title="An array of strings.">csStringArray</a>;
<a name="l00034"></a>00034 
<a name="l00039"></a><a class="code" href="structcsFileTime.html">00039</a> <span class="keyword">struct </span><a class="code" href="structcsFileTime.html" title="File time structure - used to query and set the last-modification time of a file...">csFileTime</a>
<a name="l00040"></a>00040 {
<a name="l00042"></a><a class="code" href="structcsFileTime.html#88d15c0b946e0c2fbb4e8dab4733de39">00042</a>   <span class="keywordtype">int</span> <a class="code" href="structcsFileTime.html#88d15c0b946e0c2fbb4e8dab4733de39" title="Second, 0..59.">sec</a>;
<a name="l00044"></a><a class="code" href="structcsFileTime.html#69ce47337dd466231d2ef1d05aff1757">00044</a>   <span class="keywordtype">int</span> <a class="code" href="structcsFileTime.html#69ce47337dd466231d2ef1d05aff1757" title="Minute, 0..59.">min</a>;
<a name="l00046"></a><a class="code" href="structcsFileTime.html#0e1c8d78a8873ede957df145eda34b0c">00046</a>   <span class="keywordtype">int</span> <a class="code" href="structcsFileTime.html#0e1c8d78a8873ede957df145eda34b0c" title="Hour, 0..23.">hour</a>;
<a name="l00048"></a><a class="code" href="structcsFileTime.html#454fa941fcc07ff0327e8d713e62b7c9">00048</a>   <span class="keywordtype">int</span> <a class="code" href="structcsFileTime.html#454fa941fcc07ff0327e8d713e62b7c9" title="Day, 1..31.">day</a>;
<a name="l00050"></a><a class="code" href="structcsFileTime.html#0c432bfa0df7135e47f21a69dfae2f71">00050</a>   <span class="keywordtype">int</span> <a class="code" href="structcsFileTime.html#0c432bfa0df7135e47f21a69dfae2f71" title="Month, 0..11.">mon</a>;
<a name="l00052"></a><a class="code" href="structcsFileTime.html#bc3e92298ecdb4035649bbc080802227">00052</a>   <span class="keywordtype">int</span> <a class="code" href="structcsFileTime.html#bc3e92298ecdb4035649bbc080802227" title="Year, 1768, 1900, 2001, ...">year</a>;
<a name="l00053"></a>00053 };
<a name="l00054"></a>00054 
<a name="l00056"></a><a class="code" href="group__vfs.html#g57d3a33621fb4710ab64f2bcfb18d30c">00056</a> <span class="preprocessor">#define ASSIGN_FILETIME(ft,tm)  \</span>
<a name="l00057"></a>00057 <span class="preprocessor">  (ft).sec = (tm).tm_sec;       \</span>
<a name="l00058"></a>00058 <span class="preprocessor">  (ft).min = (tm).tm_min;       \</span>
<a name="l00059"></a>00059 <span class="preprocessor">  (ft).hour = (tm).tm_hour;     \</span>
<a name="l00060"></a>00060 <span class="preprocessor">  (ft).day = (tm).tm_mday;      \</span>
<a name="l00061"></a>00061 <span class="preprocessor">  (ft).mon = (tm).tm_mon;       \</span>
<a name="l00062"></a>00062 <span class="preprocessor">  (ft).year = (tm).tm_year + 1900;</span>
<a name="l00063"></a>00063 <span class="preprocessor"></span>
<a name="l00065"></a><a class="code" href="group__vfs.html#g1aacdb5b87745d0bb6183c80fed81a47">00065</a> <span class="preprocessor">#define VFS_PATH_DIVIDER        ','</span>
<a name="l00067"></a><a class="code" href="group__vfs.html#g2968b7fe281a48fe2d905ca0bce2dad1">00067</a> <span class="preprocessor">#define VFS_PATH_SEPARATOR      '/'</span>
<a name="l00069"></a><a class="code" href="group__vfs.html#gf70c17caf04101784a2ae3f16c38b7c1">00069</a> <span class="preprocessor">#define VFS_MAX_PATH_LEN        256</span>
<a name="l00070"></a>00070 <span class="preprocessor"></span>
<a name="l00073"></a>00073 
<a name="l00074"></a><a class="code" href="group__vfs.html#g8e6b141a580423e1d638b6964c8ebfdc">00074</a> <span class="preprocessor">#define VFS_FILE_MODE           0x0000000f</span>
<a name="l00076"></a><a class="code" href="group__vfs.html#gba6832b0add5ef2fd23abddbc8288822">00076</a> <span class="preprocessor">#define VFS_FILE_READ           0x00000000</span>
<a name="l00078"></a><a class="code" href="group__vfs.html#g69dd3ad75290635fff3f282398b15647">00078</a> <span class="preprocessor">#define VFS_FILE_WRITE          0x00000001</span>
<a name="l00080"></a><a class="code" href="group__vfs.html#g4c74af62f4c9462116ac6890a5cc8c8f">00080</a> <span class="preprocessor">#define VFS_FILE_APPEND         0x00000002</span>
<a name="l00082"></a><a class="code" href="group__vfs.html#gcaa8a2fbb1274d54b6d4646a667c1a75">00082</a> <span class="preprocessor">#define VFS_FILE_UNCOMPRESSED   0x80000000</span>
<a name="l00083"></a>00083 <span class="preprocessor"></span>
<a name="l00087"></a>00087 
<a name="l00088"></a><a class="code" href="group__vfs.html#g27ec68419e79b3faa5a2eacdaceebe47">00088</a> <span class="preprocessor">#define VFS_STATUS_OK           0</span>
<a name="l00090"></a><a class="code" href="group__vfs.html#g22a0f09acfe1aa0f8420f86e6007ca9e">00090</a> <span class="preprocessor">#define VFS_STATUS_OTHER        1</span>
<a name="l00092"></a><a class="code" href="group__vfs.html#gca3e703c9d51b2f00aac916ce33d840e">00092</a> <span class="preprocessor">#define VFS_STATUS_NOSPACE      2</span>
<a name="l00094"></a><a class="code" href="group__vfs.html#g10ed068e274e218f03f3faca92bfa078">00094</a> <span class="preprocessor">#define VFS_STATUS_RESOURCES    3</span>
<a name="l00095"></a>00095 <span class="preprocessor"></span>
<a name="l00099"></a><a class="code" href="group__vfs.html#gf655ca2c3b3f4c242b7e719f83d73e3c">00099</a> <span class="preprocessor">#define VFS_STATUS_ACCESSDENIED 4</span>
<a name="l00101"></a><a class="code" href="group__vfs.html#gbbc89b124421b6525f9332c38767337f">00101</a> <span class="preprocessor">#define VFS_STATUS_IOERROR      5</span>
<a name="l00102"></a>00102 <span class="preprocessor"></span>
<a name="l00110"></a><a class="code" href="structiFile.html">00110</a> <span class="keyword">struct </span><a class="code" href="structiFile.html" title="A replacement for FILE type in the virtual file space.">iFile</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>
<a name="l00111"></a>00111 {
<a name="l00112"></a>00112   SCF_INTERFACE(<a class="code" href="structiFile.html" title="A replacement for FILE type in the virtual file space.">iFile</a>, 2, 0, 0);
<a name="l00113"></a>00113 
<a name="l00115"></a>00115   <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structiFile.html#0d39996448ca1794faa2bdf58d6b186b" title="Query file name (in VFS).">GetName</a> () = 0;
<a name="l00116"></a>00116 
<a name="l00118"></a>00118   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="structiFile.html#184c528adfec25f53545fe9271ff374b" title="Query file size.">GetSize</a> () = 0;
<a name="l00119"></a>00119 
<a name="l00124"></a>00124   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiFile.html#a0f33b299c54426c60d5ce7d9f1db8de" title="Check (and clear) file last error status.">GetStatus</a> () = 0;
<a name="l00125"></a>00125 
<a name="l00134"></a>00134   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="structiFile.html#23a8ceeaf85b15241acd3ef2f98b78d4" title="Read DataSize bytes and place them into the buffer at which Data points.">Read</a> (<span class="keywordtype">char</span> *Data, <span class="keywordtype">size_t</span> DataSize) = 0;
<a name="l00135"></a>00135 
<a name="l00143"></a>00143   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="structiFile.html#73a0d4bf182d42deb70e9982c3b17af7" title="Write DataSize bytes from the buffer at which Data points.">Write</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *Data, <span class="keywordtype">size_t</span> DataSize) = 0;
<a name="l00144"></a>00144 
<a name="l00146"></a>00146   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiFile.html#eae974e73b0c49bf22d6c11c4c4f5eb2" title="Flush stream.">Flush</a> () = 0;
<a name="l00147"></a>00147 
<a name="l00149"></a>00149   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiFile.html#f1da4c6ef65ca75360d134b0cd047dc9" title="Returns true if the stream is at end-of-file, else false.">AtEOF</a> () = 0;
<a name="l00150"></a>00150 
<a name="l00152"></a>00152   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="structiFile.html#63192d4c90e269feef6075d8c7f81efb" title="Query current file pointer.">GetPos</a> () = 0;
<a name="l00153"></a>00153 
<a name="l00159"></a>00159   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiFile.html#411c083eb2f6745a7fa0fe15f598ad0b" title="Set new file pointer.">SetPos</a> (<span class="keywordtype">size_t</span> newpos) = 0;
<a name="l00160"></a>00160 
<a name="l00172"></a>00172   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iDataBuffer&gt;</a> <a class="code" href="structiFile.html#8b4612b4492382cf2d4f17dd4bbf364e" title="Request whole content of the file as a single data buffer.">GetAllData</a> (<span class="keywordtype">bool</span> nullterm = <span class="keyword">false</span>) = 0;
<a name="l00173"></a>00173 };
<a name="l00174"></a>00174 
<a name="l00175"></a>00175 
<a name="l00205"></a><a class="code" href="structiVFS.html">00205</a> <span class="keyword">struct </span><a class="code" href="structiVFS.html" title="The Virtual Filesystem Class is intended to be the only way for Crystal Space engine...">iVFS</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>
<a name="l00206"></a>00206 {
<a name="l00207"></a>00207   SCF_INTERFACE(<a class="code" href="structiVFS.html" title="The Virtual Filesystem Class is intended to be the only way for Crystal Space engine...">iVFS</a>, 2, 0, 0);
<a name="l00208"></a>00208 
<a name="l00210"></a>00210   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiVFS.html#e64c50718db8f5ad41d53363fb5c7f62" title="Set current working directory.">ChDir</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *Path) = 0;
<a name="l00211"></a>00211 
<a name="l00213"></a>00213   <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structiVFS.html#6463219ef5fd533383d9887d3dee4970" title="Get current working directory.">GetCwd</a> () <span class="keyword">const</span> = 0;
<a name="l00214"></a>00214 
<a name="l00224"></a>00224   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiVFS.html#539171b809a9a4f12dd7be330d0d36f0" title="Push current directory and optionally change to a different directory.">PushDir</a> (<span class="keywordtype">char</span> <span class="keyword">const</span>* Path = 0) = 0;
<a name="l00232"></a>00232   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiVFS.html#d3724c40aa44864cfd3ed8c12417552b" title="Pop current directory.">PopDir</a> () = 0;
<a name="l00233"></a>00233 
<a name="l00241"></a>00241   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iDataBuffer&gt;</a> <a class="code" href="structiVFS.html#4554c5c58b71bf9a8e847a321cc9d5e1" title="Expand given virtual path, interpret all &amp;quot;.&amp;quot; and &amp;quot;..&amp;quot;&amp;#39;s relative...">ExpandPath</a> (
<a name="l00242"></a>00242     <span class="keyword">const</span> <span class="keywordtype">char</span> *Path, <span class="keywordtype">bool</span> IsDir = <span class="keyword">false</span>) <span class="keyword">const</span> = 0;
<a name="l00243"></a>00243 
<a name="l00245"></a>00245   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiVFS.html#32e2f393865506f11b19602d6a8317b0" title="Check whether a file exists.">Exists</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *Path) <span class="keyword">const</span> = 0;
<a name="l00246"></a>00246 
<a name="l00251"></a>00251   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iStringArray&gt;</a> <a class="code" href="structiVFS.html#15ea59531827a8713158ce0d86d6af51" title="Find absolute paths of all files in a virtual directory and return an array with...">FindFiles</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *Path) <span class="keyword">const</span> = 0;
<a name="l00252"></a>00252 
<a name="l00261"></a>00261   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iFile&gt;</a> <a class="code" href="structiVFS.html#6d46cd7b7eefd7c4e8e7281394baf581" title="Open a file on the VFS filesystem.">Open</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *FileName, <span class="keywordtype">int</span> Mode) = 0;
<a name="l00262"></a>00262 
<a name="l00277"></a>00277   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iDataBuffer&gt;</a> <a class="code" href="structiVFS.html#093140ef4e298090bc80a09794a2adbc" title="Get an entire file at once.">ReadFile</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *FileName,
<a name="l00278"></a>00278     <span class="keywordtype">bool</span> nullterm = <span class="keyword">true</span>) = 0;
<a name="l00279"></a>00279 
<a name="l00287"></a>00287   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiVFS.html#c8e6f08e3297b4da1a7e3771996eba32" title="Write an entire file in one pass.">WriteFile</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *Name, <span class="keyword">const</span> <span class="keywordtype">char</span> *Data, <span class="keywordtype">size_t</span> Size) = 0;
<a name="l00288"></a>00288 
<a name="l00293"></a>00293   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiVFS.html#0216e54878a64b2e0f06326dbccdce8d" title="Delete a file on VFS.">DeleteFile</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *FileName) = 0;
<a name="l00294"></a>00294 
<a name="l00299"></a>00299   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiVFS.html#9864dda3ba04d3485d01e188fc4ec306" title="Close all opened archives, free temporary storage etc.">Sync</a> () = 0;
<a name="l00300"></a>00300 
<a name="l00313"></a>00313   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiVFS.html#5369f998bd4365de414def1ff3761424" title="Create or add a symbolic link within the VFS (works like unix &amp;#39;ln -s&amp;#39; command)...">SymbolicLink</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *Target, <span class="keyword">const</span> <span class="keywordtype">char</span> *Link = 0, 
<a name="l00314"></a>00314     <span class="keywordtype">int</span> priority = 0) = 0;
<a name="l00315"></a>00315 
<a name="l00325"></a>00325   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiVFS.html#9b7868aa50296cc265f2155db59d949f" title="Mount an VFS path on a &amp;quot;real-world-filesystem&amp;quot; path.">Mount</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *VirtualPath, <span class="keyword">const</span> <span class="keywordtype">char</span> *RealPath) = 0;
<a name="l00326"></a>00326 
<a name="l00341"></a>00341   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiVFS.html#437201152b29b7cd2c33ee0bd8d18911" title="Unmount a VFS path.">Unmount</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *VirtualPath, <span class="keyword">const</span> <span class="keywordtype">char</span> *RealPath) = 0;
<a name="l00342"></a>00342 
<a name="l00353"></a>00353   <span class="keyword">virtual</span> <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iStringArray&gt;</a> <a class="code" href="structiVFS.html#f21bcf2a97b88d09abe77a724e044b77" title="Mount the root directory or directories beneath the given virtual path.">MountRoot</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *VirtualPath) = 0;
<a name="l00354"></a>00354 
<a name="l00359"></a>00359   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiVFS.html#8d6c1e1b5017fb7f08ae2a35c9a67879" title="Save current configuration back into configuration file.">SaveMounts</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *FileName) = 0;
<a name="l00364"></a>00364   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiVFS.html#295be4436c5c9851e3c29b1dcf0632a1" title="Loads mounts from a configuration file.">LoadMountsFromFile</a> (<a class="code" href="structiConfigFile.html" title="Configuration file interface.">iConfigFile</a>* file) = 0;
<a name="l00365"></a>00365 
<a name="l00392"></a>00392   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiVFS.html#ae2aa2b5133872ad0b99e36777a14613" title="Convenience function to set the current VFS directory to the given path.">ChDirAuto</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* path, <span class="keyword">const</span> <a class="code" href="classcsStringArray.html" title="An array of strings.">csStringArray</a>* paths = 0,
<a name="l00393"></a>00393         <span class="keyword">const</span> <span class="keywordtype">char</span>* vfspath = 0, <span class="keyword">const</span> <span class="keywordtype">char</span>* filename = 0) = 0;
<a name="l00394"></a>00394 
<a name="l00399"></a>00399   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiVFS.html#649ecd5c1666845a587a26108570b4e8" title="Query file date/time.">GetFileTime</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *FileName, <a class="code" href="structcsFileTime.html" title="File time structure - used to query and set the last-modification time of a file...">csFileTime</a> &amp;oTime) <span class="keyword">const</span> = 0;
<a name="l00404"></a>00404   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiVFS.html#24c2110148f811cd6293c066e33ebbbd" title="Set file date/time.">SetFileTime</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *FileName, <span class="keyword">const</span> <a class="code" href="structcsFileTime.html" title="File time structure - used to query and set the last-modification time of a file...">csFileTime</a> &amp;iTime) = 0;
<a name="l00405"></a>00405 
<a name="l00410"></a>00410   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiVFS.html#6185ce7a8cb8ed32c2651dff76e4a1ca" title="Query file size (without opening it).">GetFileSize</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *FileName, <span class="keywordtype">size_t</span> &amp;oSize) = 0;
<a name="l00411"></a>00411 
<a name="l00424"></a>00424   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iDataBuffer&gt;</a> <a class="code" href="structiVFS.html#7351c1bf1ed9cf7b9aa17b0ad716468a" title="Query real-world path from given VFS path.">GetRealPath</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *FileName) = 0;
<a name="l00425"></a>00425 
<a name="l00430"></a>00430   <span class="keyword">virtual</span> <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iStringArray&gt;</a> <a class="code" href="structiVFS.html#1fb70e1f2ffcfddf95421643dabd34bb" title="Get a list of all current virtual mount paths.">GetMounts</a> () = 0;
<a name="l00431"></a>00431 
<a name="l00439"></a>00439   <span class="keyword">virtual</span> <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iStringArray&gt;</a> <a class="code" href="structiVFS.html#0d9e9847b2f485237455a48f8ae9a0b5" title="Get the real paths associated with a mount.">GetRealMountPaths</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *VirtualPath) = 0;
<a name="l00440"></a>00440 };
<a name="l00441"></a>00441 
<a name="l00444"></a>00444 <span class="preprocessor">#endif // __CS_IUTIL_VFS_H__</span>
</pre></div><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>