<!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>OpenSceneGraph: osgDB::DynamicLibrary Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.1 --> <div class="navigation" id="top"> <div 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> </ul> </div> <div class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div class="navpath"> <ul> <li><a class="el" href="a01630.html">osgDB</a> </li> <li><a class="el" href="a00234.html">osgDB::DynamicLibrary</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-types">Public Types</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="#pub-static-methods">Static Public Member Functions</a> | <a href="#pro-methods">Protected Member Functions</a> | <a href="#pro-static-methods">Static Protected Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> </div> <div class="headertitle"> <h1>osgDB::DynamicLibrary Class Reference</h1> </div> </div> <div class="contents"> <!-- doxytag: class="osgDB::DynamicLibrary" --><!-- doxytag: inherits="osg::Referenced" --> <p><a class="el" href="a00234.html" title="DynamicLibrary - encapsulates the loading and unloading of dynamic libraries, typically used for load...">DynamicLibrary</a> - encapsulates the loading and unloading of dynamic libraries, typically used for loading <a class="el" href="a00615.html" title="pure virtual base class for reading and writing of non native formats.">ReaderWriter</a> plug-ins. <a href="#_details">More...</a></p> <div class="dynheader"> Inheritance diagram for osgDB::DynamicLibrary:</div> <div class="dyncontent"> <div class="center"><img src="a02577.png" border="0" usemap="#osgDB_1_1DynamicLibrary_inherit__map" alt="Inheritance graph"/></div> <map name="osgDB_1_1DynamicLibrary_inherit__map" id="osgDB_1_1DynamicLibrary_inherit__map"> <area shape="rect" id="node2" href="a00627.html" title="Base class from providing referencing counted objects." alt="" coords="27,5,144,35"/></map> <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> <p><a href="a02578.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-types"></a> Public Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef void * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#a6e75f01c927baed0ec4332b079120d13">HANDLE</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef void * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#a5c65dc1d2c78b67c861a7b8d6163dd91">PROC_ADDRESS</a></td></tr> <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="a00234.html#a9a880a5b0ed5454cc75d851d123019d6">getName</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return name of library stripped of path. <a href="#a9a880a5b0ed5454cc75d851d123019d6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const std::string & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#a0c22ea104bffad45f6ea293c8ffa43d6">getFullName</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return name of library including full path to it. <a href="#a0c22ea104bffad45f6ea293c8ffa43d6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00234.html#a6e75f01c927baed0ec4332b079120d13">HANDLE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ad5f2d607312e214afd70b890e8cfffc7">getHandle</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return handle to .dso/.dll dynamic library itself. <a href="#ad5f2d607312e214afd70b890e8cfffc7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00234.html#a5c65dc1d2c78b67c861a7b8d6163dd91">PROC_ADDRESS</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#a985059bcb7a013d0b7280247220e20dd">getProcAddress</a> (const std::string &procName)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return address of function located in library. <a href="#a985059bcb7a013d0b7280247220e20dd"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pub-static-methods"></a> Static Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00234.html">DynamicLibrary</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#a978e7644b7bca3ea4d8bcacbcab47681">loadLibrary</a> (const std::string &libraryName)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">returns a pointer to a <a class="el" href="a00234.html" title="DynamicLibrary - encapsulates the loading and unloading of dynamic libraries, typically used for load...">DynamicLibrary</a> object on successfully opening of library returns NULL on failure. <a href="#a978e7644b7bca3ea4d8bcacbcab47681"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pro-methods"></a> Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#a8e9391389cb3699fc79c5895d163a619">DynamicLibrary</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">disallow default constructor. <a href="#a8e9391389cb3699fc79c5895d163a619"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#affffeb2472a9f44009f5e9fa482ec833">DynamicLibrary</a> (const <a class="el" href="a00234.html">DynamicLibrary</a> &)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">disallow copy constructor. <a href="#affffeb2472a9f44009f5e9fa482ec833"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00234.html">DynamicLibrary</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#abae2edd40a7fe9403128d5453f75de6a">operator=</a> (const <a class="el" href="a00234.html">DynamicLibrary</a> &)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">disallow copy operator. <a href="#abae2edd40a7fe9403128d5453f75de6a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ac73cc7a3b9aa0a3b2fba7342a3205212">DynamicLibrary</a> (const std::string &name, <a class="el" href="a00234.html#a6e75f01c927baed0ec4332b079120d13">HANDLE</a> handle)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Disallow public construction so that users have to go through <a class="el" href="a00234.html#a978e7644b7bca3ea4d8bcacbcab47681" title="returns a pointer to a DynamicLibrary object on successfully opening of library returns NULL on failu...">loadLibrary()</a> above which returns NULL on failure, a valid <a class="el" href="a00234.html" title="DynamicLibrary - encapsulates the loading and unloading of dynamic libraries, typically used for load...">DynamicLibrary</a> object on success. <a href="#ac73cc7a3b9aa0a3b2fba7342a3205212"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#a10b941467c4ac92d68e17e2231cbb02e">~DynamicLibrary</a> ()</td></tr> <tr><td colspan="2"><h2><a name="pro-static-methods"></a> Static Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00234.html#a6e75f01c927baed0ec4332b079120d13">HANDLE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#a54862d279f5ffbf914eb6a0b52761a52">getLibraryHandle</a> (const std::string &libraryName)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get handle to library file <a href="#a54862d279f5ffbf914eb6a0b52761a52"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pro-attribs"></a> Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00234.html#a6e75f01c927baed0ec4332b079120d13">HANDLE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#a3c63d3c9b1a7d198d1710b9cb9fb5ed9">_handle</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#aca7ff1a661416d667911db3a0221dea2">_name</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ae1c1447cb6227c8dd52052361d6ee06f">_fullName</a></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p><a class="el" href="a00234.html" title="DynamicLibrary - encapsulates the loading and unloading of dynamic libraries, typically used for load...">DynamicLibrary</a> - encapsulates the loading and unloading of dynamic libraries, typically used for loading <a class="el" href="a00615.html" title="pure virtual base class for reading and writing of non native formats.">ReaderWriter</a> plug-ins. </p> <hr/><h2>Member Typedef Documentation</h2> <a class="anchor" id="a6e75f01c927baed0ec4332b079120d13"></a><!-- doxytag: member="osgDB::DynamicLibrary::HANDLE" ref="a6e75f01c927baed0ec4332b079120d13" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void* <a class="el" href="a00234.html#a6e75f01c927baed0ec4332b079120d13">osgDB::DynamicLibrary::HANDLE</a></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a5c65dc1d2c78b67c861a7b8d6163dd91"></a><!-- doxytag: member="osgDB::DynamicLibrary::PROC_ADDRESS" ref="a5c65dc1d2c78b67c861a7b8d6163dd91" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void* <a class="el" href="a00234.html#a5c65dc1d2c78b67c861a7b8d6163dd91">osgDB::DynamicLibrary::PROC_ADDRESS</a></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a8e9391389cb3699fc79c5895d163a619"></a><!-- doxytag: member="osgDB::DynamicLibrary::DynamicLibrary" ref="a8e9391389cb3699fc79c5895d163a619" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">osgDB::DynamicLibrary::DynamicLibrary </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>disallow default constructor. </p> </div> </div> <a class="anchor" id="affffeb2472a9f44009f5e9fa482ec833"></a><!-- doxytag: member="osgDB::DynamicLibrary::DynamicLibrary" ref="affffeb2472a9f44009f5e9fa482ec833" args="(const DynamicLibrary &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">osgDB::DynamicLibrary::DynamicLibrary </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00234.html">DynamicLibrary</a> & </td> <td class="paramname"></td> <td> ) </td> <td><code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>disallow copy constructor. </p> </div> </div> <a class="anchor" id="ac73cc7a3b9aa0a3b2fba7342a3205212"></a><!-- doxytag: member="osgDB::DynamicLibrary::DynamicLibrary" ref="ac73cc7a3b9aa0a3b2fba7342a3205212" args="(const std::string &name, HANDLE handle)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">osgDB::DynamicLibrary::DynamicLibrary </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"> <em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00234.html#a6e75f01c927baed0ec4332b079120d13">HANDLE</a> </td> <td class="paramname"> <em>handle</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Disallow public construction so that users have to go through <a class="el" href="a00234.html#a978e7644b7bca3ea4d8bcacbcab47681" title="returns a pointer to a DynamicLibrary object on successfully opening of library returns NULL on failu...">loadLibrary()</a> above which returns NULL on failure, a valid <a class="el" href="a00234.html" title="DynamicLibrary - encapsulates the loading and unloading of dynamic libraries, typically used for load...">DynamicLibrary</a> object on success. </p> </div> </div> <a class="anchor" id="a10b941467c4ac92d68e17e2231cbb02e"></a><!-- doxytag: member="osgDB::DynamicLibrary::~DynamicLibrary" ref="a10b941467c4ac92d68e17e2231cbb02e" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">osgDB::DynamicLibrary::~DynamicLibrary </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a0c22ea104bffad45f6ea293c8ffa43d6"></a><!-- doxytag: member="osgDB::DynamicLibrary::getFullName" ref="a0c22ea104bffad45f6ea293c8ffa43d6" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const std::string& osgDB::DynamicLibrary::getFullName </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>return name of library including full path to it. </p> </div> </div> <a class="anchor" id="ad5f2d607312e214afd70b890e8cfffc7"></a><!-- doxytag: member="osgDB::DynamicLibrary::getHandle" ref="ad5f2d607312e214afd70b890e8cfffc7" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00234.html#a6e75f01c927baed0ec4332b079120d13">HANDLE</a> osgDB::DynamicLibrary::getHandle </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>return handle to .dso/.dll dynamic library itself. </p> </div> </div> <a class="anchor" id="a54862d279f5ffbf914eb6a0b52761a52"></a><!-- doxytag: member="osgDB::DynamicLibrary::getLibraryHandle" ref="a54862d279f5ffbf914eb6a0b52761a52" args="(const std::string &libraryName)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="a00234.html#a6e75f01c927baed0ec4332b079120d13">HANDLE</a> osgDB::DynamicLibrary::getLibraryHandle </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"> <em>libraryName</em></td> <td> ) </td> <td><code> [static, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>get handle to library file </p> </div> </div> <a class="anchor" id="a9a880a5b0ed5454cc75d851d123019d6"></a><!-- doxytag: member="osgDB::DynamicLibrary::getName" ref="a9a880a5b0ed5454cc75d851d123019d6" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const std::string& osgDB::DynamicLibrary::getName </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>return name of library stripped of path. </p> </div> </div> <a class="anchor" id="a985059bcb7a013d0b7280247220e20dd"></a><!-- doxytag: member="osgDB::DynamicLibrary::getProcAddress" ref="a985059bcb7a013d0b7280247220e20dd" args="(const std::string &procName)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00234.html#a5c65dc1d2c78b67c861a7b8d6163dd91">PROC_ADDRESS</a> osgDB::DynamicLibrary::getProcAddress </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"> <em>procName</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>return address of function located in library. </p> </div> </div> <a class="anchor" id="a978e7644b7bca3ea4d8bcacbcab47681"></a><!-- doxytag: member="osgDB::DynamicLibrary::loadLibrary" ref="a978e7644b7bca3ea4d8bcacbcab47681" args="(const std::string &libraryName)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="a00234.html">DynamicLibrary</a>* osgDB::DynamicLibrary::loadLibrary </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"> <em>libraryName</em></td> <td> ) </td> <td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>returns a pointer to a <a class="el" href="a00234.html" title="DynamicLibrary - encapsulates the loading and unloading of dynamic libraries, typically used for load...">DynamicLibrary</a> object on successfully opening of library returns NULL on failure. </p> </div> </div> <a class="anchor" id="abae2edd40a7fe9403128d5453f75de6a"></a><!-- doxytag: member="osgDB::DynamicLibrary::operator=" ref="abae2edd40a7fe9403128d5453f75de6a" args="(const DynamicLibrary &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00234.html">DynamicLibrary</a>& osgDB::DynamicLibrary::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00234.html">DynamicLibrary</a> & </td> <td class="paramname"></td> <td> ) </td> <td><code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>disallow copy operator. </p> </div> </div> <hr/><h2>Member Data Documentation</h2> <a class="anchor" id="ae1c1447cb6227c8dd52052361d6ee06f"></a><!-- doxytag: member="osgDB::DynamicLibrary::_fullName" ref="ae1c1447cb6227c8dd52052361d6ee06f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::string <a class="el" href="a00234.html#ae1c1447cb6227c8dd52052361d6ee06f">osgDB::DynamicLibrary::_fullName</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a3c63d3c9b1a7d198d1710b9cb9fb5ed9"></a><!-- doxytag: member="osgDB::DynamicLibrary::_handle" ref="a3c63d3c9b1a7d198d1710b9cb9fb5ed9" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00234.html#a6e75f01c927baed0ec4332b079120d13">HANDLE</a> <a class="el" href="a00234.html#a3c63d3c9b1a7d198d1710b9cb9fb5ed9">osgDB::DynamicLibrary::_handle</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="aca7ff1a661416d667911db3a0221dea2"></a><!-- doxytag: member="osgDB::DynamicLibrary::_name" ref="aca7ff1a661416d667911db3a0221dea2" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::string <a class="el" href="a00234.html#aca7ff1a661416d667911db3a0221dea2">osgDB::DynamicLibrary::_name</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li>osgDB/<a class="el" href="a01362.html">DynamicLibrary</a></li> </ul> </div> <hr> <table border="0"><tr><td> <img src="osg32-32.png" alt="osg logo" /> </td><td> <address><small>Generated at Thu Aug 19 2010 16:22:44 for the <a href="http://www.openscenegraph.org/">OpenSceneGraph</a> by <a href="http://www.doxygen.org">doxygen</a> 1.7.1.</small></address> <!-- Dimitri van Heesch's e-mail address removed, lest he get messages on the OpenSceneGraph --> </td></tr></table> </body> </html>