<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>FIFE: FIFE::VFSSourceProvider Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="search/search.js"></script> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript"> $(document).ready(initResizable); </script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body onload='searchBox.OnSelectItem(0);'> <!-- Generated by Doxygen 1.7.4 --> <script type="text/javascript"><!-- var searchBox = new SearchBox("searchBox", "search",false,'Search'); --></script> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">FIFE <span id="projectnumber">2008.0</span></div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> <li id="searchli"> <div id="MSearchBox" class="MSearchBoxInactive"> <span class="left"> <img id="MSearchSelect" src="search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> </span><span class="right"> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </span> </div> </li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> </div> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> initNavTree('class_f_i_f_e_1_1_v_f_s_source_provider.html',''); </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> </div> <div class="headertitle"> <div class="title">FIFE::VFSSourceProvider Class Reference</div> </div> </div> <div class="contents"> <!-- doxytag: class="FIFE::VFSSourceProvider" --> <p><code>#include <<a class="el" href="vfssourceprovider_8h_source.html">vfssourceprovider.h</a>></code></p> <div class="dynheader"> Inheritance diagram for FIFE::VFSSourceProvider:</div> <div class="dyncontent"> <div class="center"><img src="class_f_i_f_e_1_1_v_f_s_source_provider__inherit__graph.png" border="0" usemap="#_f_i_f_e_1_1_v_f_s_source_provider_inherit__map" alt="Inheritance graph"/></div> <map name="_f_i_f_e_1_1_v_f_s_source_provider_inherit__map" id="_f_i_f_e_1_1_v_f_s_source_provider_inherit__map"> <area shape="rect" id="node3" href="class_f_i_f_e_1_1_directory_provider.html" title="{FIFE::DirectoryProvider\n|- m_name\l|+ DirectoryProvider()\l+ isReadable()\l+ createSource()\l}" alt="" coords="5,261,165,381"/><area shape="rect" id="node5" href="class_f_i_f_e_1_1_zip_provider.html" title="{FIFE::ZipProvider\n||+ ZipProvider()\l+ isReadable()\l+ createSource()\l}" alt="" coords="189,261,315,381"/></map> <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div> <div class="dynheader"> Collaboration diagram for FIFE::VFSSourceProvider:</div> <div class="dyncontent"> <div class="center"><img src="class_f_i_f_e_1_1_v_f_s_source_provider__coll__graph.png" border="0" usemap="#_f_i_f_e_1_1_v_f_s_source_provider_coll__map" alt="Collaboration graph"/></div> <map name="_f_i_f_e_1_1_v_f_s_source_provider_coll__map" id="_f_i_f_e_1_1_v_f_s_source_provider_coll__map"> <area shape="rect" id="node2" href="class_f_i_f_e_1_1_v_f_s.html" title="{FIFE::VFS\n|- m_providers\l- m_sources\l- m_usedfiles\l|+ VFS()\l+ ~VFS()\l+ cleanup()\l+ addProvider()\l+ createSource()\l+ addNewSource()\l+ addSource()\l+ removeSource()\l+ exists()\l+ isDirectory()\l+ open()\l+ listFiles()\l+ listFiles()\l+ listDirectories()\l+ listDirectories()\l- filterList()\l- getSourceForFile()\l}" alt="" coords="24,5,160,403"/></map> <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div> <p><a href="class_f_i_f_e_1_1_v_f_s_source_provider-members.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const std::string & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_i_f_e_1_1_v_f_s_source_provider.html#ad226418bb85fef560b4f639dc513368a">getName</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_i_f_e_1_1_v_f_s_source_provider.html#aa181f5e08ede4c0058ff53b6c2eb8dba">setVFS</a> (<a class="el" href="class_f_i_f_e_1_1_v_f_s.html">VFS</a> *vfs)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_i_f_e_1_1_v_f_s_source_provider.html#a5b74e4ac6d6cfdfc7b137735ad4b0eb5">isReadable</a> (const std::string &file) const =0</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_f_i_f_e_1_1_v_f_s_source.html">VFSSource</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_i_f_e_1_1_v_f_s_source_provider.html#a4c1fce8557da05d17d600d521c3ba7ae">createSource</a> (const std::string &file) const =0</td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p><a class="el" href="class_f_i_f_e_1_1_v_f_s_source_provider.html">VFSSourceProvider</a> abstract baseclass</p> <p>If you add support for a new archive-type (like the fallout1&dat files) you should also create a new <a class="el" href="class_f_i_f_e_1_1_v_f_s_source_provider.html">VFSSourceProvider</a> for your <a class="el" href="class_f_i_f_e_1_1_v_f_s_source.html">VFSSource</a> - once this is done its very easy to load new archives even without knowing their real type. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_f_i_f_e_1_1_v_f_s.html">VFS</a> </dd> <dd> <a class="el" href="class_f_i_f_e_1_1_v_f_s_source.html">VFSSource</a> </dd> <dd> VFSSourceFactory </dd></dl> <p>Definition at line <a class="el" href="vfssourceprovider_8h_source.html#l00049">49</a> of file <a class="el" href="vfssourceprovider_8h_source.html">vfssourceprovider.h</a>.</p> </div><hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a4c1fce8557da05d17d600d521c3ba7ae"></a><!-- doxytag: member="FIFE::VFSSourceProvider::createSource" ref="a4c1fce8557da05d17d600d521c3ba7ae" args="(const std::string &file) const =0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="class_f_i_f_e_1_1_v_f_s_source.html">VFSSource</a>* FIFE::VFSSourceProvider::createSource </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>file</em></td><td>)</td> <td> const<code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Create a new instance of a <a class="el" href="class_f_i_f_e_1_1_v_f_s_source.html">VFSSource</a> initialized with the given file</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">file</td><td>the filename to open (the archive-file) </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the new <a class="el" href="class_f_i_f_e_1_1_v_f_s_source.html">VFSSource</a> </dd></dl> <p>Implemented in <a class="el" href="class_f_i_f_e_1_1_directory_provider.html#a55a24c70d4e89ade71ff6ace3ba024a6">FIFE::DirectoryProvider</a>, and <a class="el" href="class_f_i_f_e_1_1_zip_provider.html#ac834e357bfa3cbbd41f19db5ae51acbc">FIFE::ZipProvider</a>.</p> <p>Referenced by <a class="el" href="vfs_8cpp_source.html#l00071">FIFE::VFS::createSource()</a>.</p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dyncontent"> <div class="center"><img src="class_f_i_f_e_1_1_v_f_s_source_provider_a4c1fce8557da05d17d600d521c3ba7ae_icgraph.png" border="0" usemap="#class_f_i_f_e_1_1_v_f_s_source_provider_a4c1fce8557da05d17d600d521c3ba7ae_icgraph" alt=""/></div> <map name="class_f_i_f_e_1_1_v_f_s_source_provider_a4c1fce8557da05d17d600d521c3ba7ae_icgraph" id="class_f_i_f_e_1_1_v_f_s_source_provider_a4c1fce8557da05d17d600d521c3ba7ae_icgraph"> <area shape="rect" id="node3" href="class_f_i_f_e_1_1_v_f_s.html#af8f37971e4d6663ae658a3604360663b" title="FIFE::VFS::createSource" alt="" coords="312,5,483,35"/><area shape="rect" id="node5" href="class_f_i_f_e_1_1_v_f_s.html#a08bb8b750490d6eea8ff0175e08f0b45" title="FIFE::VFS::addNewSource" alt="" coords="532,5,713,35"/></map> </div> </p> </div> </div> <a class="anchor" id="ad226418bb85fef560b4f639dc513368a"></a><!-- doxytag: member="FIFE::VFSSourceProvider::getName" ref="ad226418bb85fef560b4f639dc513368a" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const std::string & FIFE::VFSSourceProvider::getName </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Returns the name of this <a class="el" href="class_f_i_f_e_1_1_v_f_s_source_provider.html">VFSSourceProvider</a></p> <dl class="return"><dt><b>Returns:</b></dt><dd>name </dd></dl> <p>Definition at line <a class="el" href="vfssourceprovider_8cpp_source.html#l00052">52</a> of file <a class="el" href="vfssourceprovider_8cpp_source.html">vfssourceprovider.cpp</a>.</p> <p>Referenced by <a class="el" href="vfs_8cpp_source.html#l00065">FIFE::VFS::addProvider()</a>, and <a class="el" href="vfs_8cpp_source.html#l00071">FIFE::VFS::createSource()</a>.</p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dyncontent"> <div class="center"><img src="class_f_i_f_e_1_1_v_f_s_source_provider_ad226418bb85fef560b4f639dc513368a_icgraph.png" border="0" usemap="#class_f_i_f_e_1_1_v_f_s_source_provider_ad226418bb85fef560b4f639dc513368a_icgraph" alt=""/></div> <map name="class_f_i_f_e_1_1_v_f_s_source_provider_ad226418bb85fef560b4f639dc513368a_icgraph" id="class_f_i_f_e_1_1_v_f_s_source_provider_ad226418bb85fef560b4f639dc513368a_icgraph"> <area shape="rect" id="node3" href="class_f_i_f_e_1_1_v_f_s.html#a4b7c9796c865c8da6ad8027aa19a148a" title="FIFE::VFS::addProvider" alt="" coords="292,5,455,35"/><area shape="rect" id="node5" href="class_f_i_f_e_1_1_v_f_s.html#af8f37971e4d6663ae658a3604360663b" title="FIFE::VFS::createSource" alt="" coords="288,59,459,88"/><area shape="rect" id="node7" href="class_f_i_f_e_1_1_v_f_s.html#a08bb8b750490d6eea8ff0175e08f0b45" title="FIFE::VFS::addNewSource" alt="" coords="508,59,689,88"/></map> </div> </p> </div> </div> <a class="anchor" id="a5b74e4ac6d6cfdfc7b137735ad4b0eb5"></a><!-- doxytag: member="FIFE::VFSSourceProvider::isReadable" ref="a5b74e4ac6d6cfdfc7b137735ad4b0eb5" args="(const std::string &file) const =0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual bool FIFE::VFSSourceProvider::isReadable </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>file</em></td><td>)</td> <td> const<code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Check if a given file is readable for this <a class="el" href="class_f_i_f_e_1_1_v_f_s_source.html">VFSSource</a></p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">file</td><td>the filename to check </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>true if readable, false otherwise </dd></dl> <p>Implemented in <a class="el" href="class_f_i_f_e_1_1_directory_provider.html#a40f9180cb8e18c6d42d74ba0641aedde">FIFE::DirectoryProvider</a>, and <a class="el" href="class_f_i_f_e_1_1_zip_provider.html#a58139fdde784e0ada06aa3f7c07def3f">FIFE::ZipProvider</a>.</p> <p>Referenced by <a class="el" href="vfs_8cpp_source.html#l00071">FIFE::VFS::createSource()</a>.</p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dyncontent"> <div class="center"><img src="class_f_i_f_e_1_1_v_f_s_source_provider_a5b74e4ac6d6cfdfc7b137735ad4b0eb5_icgraph.png" border="0" usemap="#class_f_i_f_e_1_1_v_f_s_source_provider_a5b74e4ac6d6cfdfc7b137735ad4b0eb5_icgraph" alt=""/></div> <map name="class_f_i_f_e_1_1_v_f_s_source_provider_a5b74e4ac6d6cfdfc7b137735ad4b0eb5_icgraph" id="class_f_i_f_e_1_1_v_f_s_source_provider_a5b74e4ac6d6cfdfc7b137735ad4b0eb5_icgraph"> <area shape="rect" id="node3" href="class_f_i_f_e_1_1_v_f_s.html#af8f37971e4d6663ae658a3604360663b" title="FIFE::VFS::createSource" alt="" coords="301,5,472,35"/><area shape="rect" id="node5" href="class_f_i_f_e_1_1_v_f_s.html#a08bb8b750490d6eea8ff0175e08f0b45" title="FIFE::VFS::addNewSource" alt="" coords="521,5,703,35"/></map> </div> </p> </div> </div> <a class="anchor" id="aa181f5e08ede4c0058ff53b6c2eb8dba"></a><!-- doxytag: member="FIFE::VFSSourceProvider::setVFS" ref="aa181f5e08ede4c0058ff53b6c2eb8dba" args="(VFS *vfs)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void FIFE::VFSSourceProvider::setVFS </td> <td>(</td> <td class="paramtype"><a class="el" href="class_f_i_f_e_1_1_v_f_s.html">VFS</a> * </td> <td class="paramname"><em>vfs</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get the <a class="el" href="class_f_i_f_e_1_1_v_f_s.html">VFS</a> this provider is using. Providers will not be able to locate sources before a <a class="el" href="class_f_i_f_e_1_1_v_f_s.html">VFS</a> is set. <a class="el" href="class_f_i_f_e_1_1_v_f_s.html#a4b7c9796c865c8da6ad8027aa19a148a">VFS::addProvider</a> sets this automatically. </p> <p>Definition at line <a class="el" href="vfssourceprovider_8cpp_source.html#l00044">44</a> of file <a class="el" href="vfssourceprovider_8cpp_source.html">vfssourceprovider.cpp</a>.</p> <p>Referenced by <a class="el" href="vfs_8cpp_source.html#l00065">FIFE::VFS::addProvider()</a>.</p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dyncontent"> <div class="center"><img src="class_f_i_f_e_1_1_v_f_s_source_provider_aa181f5e08ede4c0058ff53b6c2eb8dba_icgraph.png" border="0" usemap="#class_f_i_f_e_1_1_v_f_s_source_provider_aa181f5e08ede4c0058ff53b6c2eb8dba_icgraph" alt=""/></div> <map name="class_f_i_f_e_1_1_v_f_s_source_provider_aa181f5e08ede4c0058ff53b6c2eb8dba_icgraph" id="class_f_i_f_e_1_1_v_f_s_source_provider_aa181f5e08ede4c0058ff53b6c2eb8dba_icgraph"> <area shape="rect" id="node3" href="class_f_i_f_e_1_1_v_f_s.html#a4b7c9796c865c8da6ad8027aa19a148a" title="FIFE::VFS::addProvider" alt="" coords="280,5,443,35"/></map> </div> </p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li>engine/core/vfs/<a class="el" href="vfssourceprovider_8h_source.html">vfssourceprovider.h</a></li> <li>engine/core/vfs/<a class="el" href="vfssourceprovider_8cpp_source.html">vfssourceprovider.cpp</a></li> </ul> </div> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespace_f_i_f_e.html">FIFE</a> </li> <li class="navelem"><a class="el" href="class_f_i_f_e_1_1_v_f_s_source_provider.html">VFSSourceProvider</a> </li> <li class="footer">Generated on Sun Jul 10 2011 for FIFE by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li> </ul> </div> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerator</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> </body> </html>