<html> <head> <title>Ogre::ArchiveFactory class Reference - OGRE Documentation</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link type="text/css" rel="stylesheet" href="style.css"> </head> <body> <!-- Generated by Doxygen 1.2.16 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="namespaces.html">Namespace List</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="namespacemembers.html">Namespace Members</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> <a class="qindex" href="pages.html">Related Pages</a> </center> <hr><h1>Ogre::ArchiveFactory Class Reference</h1>Abstract factory class, archive codec plugins can register concrete subclasses of this. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="OgreArchiveFactory_8h-source.html">OgreArchiveFactory.h</a>></code> <p> Inheritance diagram for Ogre::ArchiveFactory:<p><center><img src="classOgre_1_1ArchiveFactory__inherit__graph.png" border="0" usemap="#Ogre_1_1ArchiveFactory__inherit__map" alt="Inheritance graph"></center> <map name="Ogre_1_1ArchiveFactory__inherit__map"> <area href="classOgre_1_1ZipArchiveFactory.html" shape="rect" coords="27,174,184,156" alt=""> <area href="classOgre_1_1FactoryObj.html" shape="rect" coords="7,36,204,17" alt=""> </map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for Ogre::ArchiveFactory:<p><center><img src="classOgre_1_1ArchiveFactory__coll__graph.png" border="0" usemap="#Ogre_1_1ArchiveFactory__coll__map" alt="Collaboration graph"></center> <map name="Ogre_1_1ArchiveFactory__coll__map"> <area href="classOgre_1_1FactoryObj.html" shape="rect" coords="7,36,204,17" alt=""> </map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classOgre_1_1ArchiveFactory-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0> <tr><td colspan=2><br><h2>Public Methods</h2></td></tr> <tr><td nowrap align=right valign=top>virtual <a class="el" href="classOgre_1_1ArchiveEx.html">ArchiveEx</a> * </td><td valign=bottom><a class="el" href="classOgre_1_1ArchiveFactory.html#Ogre_1_1ArchiveFactorya0">createObj</a> (const <a class="el" href="classOgre_1_1String.html">String</a> &name)=0</td></tr> <tr><td> </td><td><font size=-1><em>'Produces' a new object.</em> <a href="#Ogre_1_1ArchiveFactorya0"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>virtual <a class="el" href="classOgre_1_1String.html">String</a> </td><td valign=bottom><a class="el" href="classOgre_1_1ArchiveFactory.html#Ogre_1_1ArchiveFactorya1">getType</a> () const=0</td></tr> <tr><td> </td><td><font size=-1><em>Returns the factory type.</em> <a href="#Ogre_1_1ArchiveFactorya1"></a><em></em></font><br><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Abstract factory class, archive codec plugins can register concrete subclasses of this. <p> <dl compact><dt><b> Remarks: </b><dd> All access to 'archives' (collections of files, compressed or just folders, maybe even remote) is managed via the abstract <a class="el" href="classOgre_1_1ArchiveEx.html">ArchiveEx</a> class. Plugins are expected to provide the implementation for the actual codec itself, but because a subclass of <a class="el" href="classOgre_1_1ArchiveEx.html">ArchiveEx</a> has to be created for every archive, a factory class is required to create the appropriate subclass. <p> So archive plugins create a subclass of <a class="el" href="classOgre_1_1ArchiveEx.html">ArchiveEx</a> AND a subclass of <a class="el" href="classOgre_1_1ArchiveFactory.html">ArchiveFactory</a> which creates instances of the <a class="el" href="classOgre_1_1ArchiveEx.html">ArchiveEx</a> subclass. See the '<a class="el" href="classOgre_1_1Zip.html">Zip</a>' and 'FileSystem' plugins for examples. Each <a class="el" href="classOgre_1_1ArchiveEx.html">ArchiveEx</a> and <a class="el" href="classOgre_1_1ArchiveFactory.html">ArchiveFactory</a> subclass pair deal with a single archive type (identified by a string). </dl> <p> <p> Definition at line <a class="el" href="OgreArchiveFactory_8h-source.html#l00050">50</a> of file <a class="el" href="OgreArchiveFactory_8h-source.html">OgreArchiveFactory.h</a>.<hr><h2>Member Function Documentation</h2> <a name="Ogre_1_1ArchiveFactorya0" doxytag="Ogre::ArchiveFactory::createObj"></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"> virtual <a class="el" href="classOgre_1_1ArchiveEx.html">ArchiveEx</a>* Ogre::ArchiveFactory::createObj </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="classOgre_1_1String.html">String</a> & </td> <td class="mdname1" valign="top" nowrap> <em>name</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap><code> [pure virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> 'Produces' a new object. <p> <dl compact><dt><b> Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>name</em> </td><td> Name of the object to create </td></tr> </table> </dl><dl compact><dt><b> Returns: </b><dd> An object created by the factory. The type of the object depends on the factory. </dl> <p> Implements <a class="el" href="classOgre_1_1FactoryObj.html#Ogre_1_1FactoryObja2">Ogre::FactoryObj< ArchiveEx ></a>. <p> Implemented in <a class="el" href="classOgre_1_1ZipArchiveFactory.html#Ogre_1_1ZipArchiveFactorya2">Ogre::ZipArchiveFactory</a>. </td> </tr> </table> <a name="Ogre_1_1ArchiveFactorya1" doxytag="Ogre::ArchiveFactory::getType"></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"> virtual <a class="el" href="classOgre_1_1String.html">String</a> Ogre::ArchiveFactory::getType </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap> const<code> [pure virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Returns the factory type. <p> <dl compact><dt><b> Returns: </b><dd> The factory type. </dl> <p> Implements <a class="el" href="classOgre_1_1FactoryObj.html#Ogre_1_1FactoryObja1">Ogre::FactoryObj< ArchiveEx ></a>. <p> Implemented in <a class="el" href="classOgre_1_1ZipArchiveFactory.html#Ogre_1_1ZipArchiveFactorya3">Ogre::ZipArchiveFactory</a>. <p> Referenced by <a class="el" href="OgreArchiveManager_8cpp-source.html#l00085">Ogre::ArchiveManager::addArchiveFactory</a>(). </td> </tr> </table> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="OgreArchiveFactory_8h-source.html">OgreArchiveFactory.h</a></ul> <p> Copyright © 2002-2003 by The OGRE Team<br /> Last modified Wed Jan 21 00:16:40 2004 </p> </body> </html>