<!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: CS::Utility Namespace 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 class="current"><a href="namespaces.html"><span>Namespaces</span></a></li> <li><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="namespaces.html"><span>Namespace List</span></a></li> <li><a href="namespacemembers.html"><span>Namespace Members</span></a></li> </ul> </div> <div class="nav"> <a class="el" href="namespaceCS.html">CS</a>::<a class="el" href="namespaceCS_1_1Utility.html">Utility</a></div> <h1>CS::Utility Namespace Reference</h1>Assorted utility functions and classes that doesn't belong anywhere else. <a href="#_details">More...</a> <p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classCS_1_1Utility_1_1ImportKit.html">ImportKit</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Crystal Space Import Kit. <a href="classCS_1_1Utility_1_1ImportKit.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classCS_1_1Utility_1_1PriorityQueue.html">PriorityQueue</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">An implementation of a priority queue. <a href="classCS_1_1Utility_1_1PriorityQueue.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classCS_1_1Utility_1_1ScopedDelete.html">ScopedDelete</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Helper class to <code>delete</code> a pointer when exiting a scope. <a href="classCS_1_1Utility_1_1ScopedDelete.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classCS_1_1Utility_1_1WeakReferenced.html">WeakReferenced</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This is a class which provides basic weak reference-counting semantics. <a href="classCS_1_1Utility_1_1WeakReferenced.html#_details">More...</a><br></td></tr> <tr><td colspan="2"><br><h2>Namespaces</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">namespace </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCS_1_1Utility_1_1BitOps.html">BitOps</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Bit operations. <br></td></tr> <p> <tr><td class="memItemLeft" nowrap align="right" valign="top">namespace </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCS_1_1Utility_1_1Implementation.html">Implementation</a></td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsPtr.html">csPtr</a>< <a class="el" href="structiFile.html">iFile</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCS_1_1Utility.html#6bdcbcc2d3ff3e0c00e122483ab41fbd">SmartFileOpen</a> (<a class="el" href="structiVFS.html">iVFS</a> *vfs, const char *path, const char *defaultFilename=0, const char **actualFilename=0)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">"Smartly" try to locate a file given a path that could be: a plain file name, directory, name of a level in /lev/, or .zip file. <a href="#6bdcbcc2d3ff3e0c00e122483ab41fbd"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Assorted utility functions and classes that doesn't belong anywhere else. <hr><h2>Function Documentation</h2> <a class="anchor" name="6bdcbcc2d3ff3e0c00e122483ab41fbd"></a><!-- doxytag: member="CS::Utility::SmartFileOpen" ref="6bdcbcc2d3ff3e0c00e122483ab41fbd" args="(iVFS *vfs, const char *path, const char *defaultFilename=0, const char **actualFilename=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsPtr.html">csPtr</a><<a class="el" href="structiFile.html">iFile</a>> CS::Utility::SmartFileOpen </td> <td>(</td> <td class="paramtype"><a class="el" href="structiVFS.html">iVFS</a> * </td> <td class="paramname"> <em>vfs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>path</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>defaultFilename</em> = <code>0</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char ** </td> <td class="paramname"> <em>actualFilename</em> = <code>0</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> "Smartly" try to locate a file given a path that could be: a plain file name, directory, name of a level in /lev/, or .zip file. <p> Try to open a file given a path that could be any of a VFS path, a plain file name or directory in the real file system, name of a level in /lev/, or .zip file.<p> This is for example useful for tool applications which want to let the user specify paths and file locations in a variety of ways.<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>vfs</em> </td><td>The VFS interface to use to open the file. </td></tr> <tr><td valign="top"></td><td valign="top"><em>path</em> </td><td>The path that is attempted to be opened. </td></tr> <tr><td valign="top"></td><td valign="top"><em>defaultFilename</em> </td><td>Default filename, used when the provided path is a directory or .zip file. </td></tr> <tr><td valign="top"></td><td valign="top"><em>actualFilename</em> </td><td>Can return the actual filename opened. (Note: is either <em>defaultFilename</em> or a pointer into <em>path</em>. </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>The file if opening succeeded. </dd></dl> </div> </div><p> <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>