<!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>C++ API frePPLe: frepple::utils::CommandLoadLibrary Class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> <link href="../styles.css" rel="stylesheet" type="text/css"> </head> <body> <div id="container"> <div id="menubar"> <div id="logo" align="center"> <br/><img src='../frepple.bmp' alt="frepple" /><br/> <a href='http://www.frepple.com/'> <strong>a Free<br/>Production Planning<br/>Library</strong> </a> </div> <div id="menu"> <br/> <h3><a href='../Main/HomePage.html'>Main</a></h3> <h3><a href='../UI/Main.html'>User Manual</a></h3> <h3><a href='../Tutorial/Main.html'>Tutorial</a></h3> <h3><a href='../Frepple/Main.html'>Reference Manual</a></h3> <h3><a href='../Main/FAQ.html'>FAQ</a></h3> <h3><a href='index.html'>C++ API</a></h3> <br/> </div> </div> <div id="content"> <br/> <!-- Generated by Doxygen 1.6.1 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <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="tabs"> <ul> <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"><a class="el" href="a00256.html">frepple</a>::<a class="el" href="a00257.html">utils</a>::<a class="el" href="a00030.html">CommandLoadLibrary</a> </div> </div> <div class="contents"> <h1>frepple::utils::CommandLoadLibrary Class Reference</h1><!-- doxytag: class="frepple::utils::CommandLoadLibrary" --><!-- doxytag: inherits="frepple::utils::Command" --> <p><a class="el" href="a00025.html" title="Abstract base class for all commands.">Command</a> to dynamically load a shared library in frePPLe. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="a00252_source.html">utils.h</a>></code></p> <div class="dynheader"> Inheritance diagram for frepple::utils::CommandLoadLibrary:</div> <div class="dynsection"> <div class="center"><img src="a00562.png" border="0" usemap="#frepple_1_1utils_1_1_command_load_library_inherit__map" alt="Inheritance graph"/></div> <map name="frepple_1_1utils_1_1_command_load_library_inherit__map" id="frepple_1_1utils_1_1_command_load_library_inherit__map"> <area shape="rect" id="node2" href="a00025.html" title="Abstract base class for all commands." alt="" coords="39,6,196,34"/> </map> <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> <p><a href="a00563.html">List of all members.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Public Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef map< string, <a class="el" href="a00184.html">XMLElement</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#abed9d8d8563f8322df35b7b9723d6f4f">ParameterList</a></td></tr> <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#a890dd7d0116345c582046ff3126c805c">addParameter</a> (const string &name, const string &value)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#a60e009a39342c4bc867b713150b73df0">CommandLoadLibrary</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#a681ab3a8af432b39ff08c3d5383e14c6">CommandLoadLibrary</a> (const string &libname)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#a15ce183310d118f8da47f72c95f340b6">endElement</a> (<a class="el" href="a00186.html">XMLInput</a> &pIn, const <a class="el" href="a00002.html">Attribute</a> &pAttr, const <a class="el" href="a00047.html">DataElement</a> &pElement)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#ae01fb1b64614999277cb015e054c7787">execute</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">string </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#ae2e4396cf3357cf1d010ceba88f7ee34">getLibraryName</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#a0ad3d36e87e5e2a1482c24a828bcce6b">setLibraryName</a> (const string &libname)</td></tr> <tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static PyObject * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#a349de99833ded53d9190cc3c6693808a">executePython</a> (PyObject *, PyObject *, PyObject *)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#aa1e62d2e269e854017f037d87174d61a">isLoaded</a> (const string &s)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#a69cb317baf676b1a6b6f4c864fd25b40">printModules</a> ()</td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p><a class="el" href="a00025.html" title="Abstract base class for all commands.">Command</a> to dynamically load a shared library in frePPLe. </p> <p>After loading the library, the function "initialize" of the module is executed.</p> <p>The current implementation of the command works on the following platforms:</p> <ul> <li>Windows</li> <li>Linux</li> <li>Unix systems supporting the dlopen function in the standard way. Some unix systems have other or deviating APIs. A pretty messy story :-< </li> </ul> <p>Definition at line <a class="el" href="a00252_source.html#l04001">4001</a> of file <a class="el" href="a00252_source.html">utils.h</a>.</p> <hr/><h2>Member Typedef Documentation</h2> <a class="anchor" id="abed9d8d8563f8322df35b7b9723d6f4f"></a><!-- doxytag: member="frepple::utils::CommandLoadLibrary::ParameterList" ref="abed9d8d8563f8322df35b7b9723d6f4f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef map<string,<a class="el" href="a00184.html">XMLElement</a>> <a class="el" href="a00030.html#abed9d8d8563f8322df35b7b9723d6f4f">frepple::utils::CommandLoadLibrary::ParameterList</a></td> </tr> </table> </div> <div class="memdoc"> <p>Type for storing parameters. </p> <p>Definition at line <a class="el" href="a00252_source.html#l04008">4008</a> of file <a class="el" href="a00252_source.html">utils.h</a>.</p> </div> </div> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a681ab3a8af432b39ff08c3d5383e14c6"></a><!-- doxytag: member="frepple::utils::CommandLoadLibrary::CommandLoadLibrary" ref="a681ab3a8af432b39ff08c3d5383e14c6" args="(const string &libname)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">frepple::utils::CommandLoadLibrary::CommandLoadLibrary </td> <td>(</td> <td class="paramtype">const string & </td> <td class="paramname"> <em>libname</em></td> <td> ) </td> <td><code> [inline, explicit]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Constructor. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>libname</em> </td><td>File name of the library </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="a00252_source.html#l04013">4013</a> of file <a class="el" href="a00252_source.html">utils.h</a>.</p> </div> </div> <a class="anchor" id="a60e009a39342c4bc867b713150b73df0"></a><!-- doxytag: member="frepple::utils::CommandLoadLibrary::CommandLoadLibrary" ref="a60e009a39342c4bc867b713150b73df0" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">frepple::utils::CommandLoadLibrary::CommandLoadLibrary </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [inline, explicit]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Default constructor. </p> <p>Definition at line <a class="el" href="a00252_source.html#l04016">4016</a> of file <a class="el" href="a00252_source.html">utils.h</a>.</p> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a890dd7d0116345c582046ff3126c805c"></a><!-- doxytag: member="frepple::utils::CommandLoadLibrary::addParameter" ref="a890dd7d0116345c582046ff3126c805c" args="(const string &name, const string &value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void frepple::utils::CommandLoadLibrary::addParameter </td> <td>(</td> <td class="paramtype">const string & </td> <td class="paramname"> <em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const string & </td> <td class="paramname"> <em>value</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Add a parameter for the module. </p> <p>Definition at line <a class="el" href="a00252_source.html#l04038">4038</a> of file <a class="el" href="a00252_source.html">utils.h</a>.</p> </div> </div> <a class="anchor" id="a15ce183310d118f8da47f72c95f340b6"></a><!-- doxytag: member="frepple::utils::CommandLoadLibrary::endElement" ref="a15ce183310d118f8da47f72c95f340b6" args="(XMLInput &pIn, const Attribute &pAttr, const DataElement &pElement)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void frepple::utils::CommandLoadLibrary::endElement </td> <td>(</td> <td class="paramtype"><a class="el" href="a00186.html">XMLInput</a> & </td> <td class="paramname"> <em>pIn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00002.html">Attribute</a> & </td> <td class="paramname"> <em>pAttr</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00047.html">DataElement</a> & </td> <td class="paramname"> <em>pElement</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="ae01fb1b64614999277cb015e054c7787"></a><!-- doxytag: member="frepple::utils::CommandLoadLibrary::execute" ref="ae01fb1b64614999277cb015e054c7787" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void frepple::utils::CommandLoadLibrary::execute </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p><a class="el" href="a00103.html" title="This class links a resource to a certain operation.">Load</a> the library, and execute the <a class="el" href="a00258.html#ab6da5933e0f8c7727413e2ec5d45654a">initialize()</a> method. </p> <dl><dt><b>Exceptions:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em><a class="el" href="a00162.html" title="An exception of this type is thrown when the library runs into problems that are...">RuntimeException</a></em> </td><td>When the library can't be loaded or when the <a class="el" href="a00258.html#ab6da5933e0f8c7727413e2ec5d45654a">initialize()</a> method doesn't exist in the library. </td></tr> </table> </dd> </dl> <p>Implements <a class="el" href="a00025.html#acc6f6bc4f9a9ce8cfa2de41fd12f3024">frepple::utils::Command</a>.</p> <p>Definition at line <a class="el" href="a00193_source.html#l00388">388</a> of file <a class="el" href="a00193_source.html">utils/actions.cpp</a>.</p> </div> </div> <a class="anchor" id="a349de99833ded53d9190cc3c6693808a"></a><!-- doxytag: member="frepple::utils::CommandLoadLibrary::executePython" ref="a349de99833ded53d9190cc3c6693808a" args="(PyObject *, PyObject *, PyObject *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">PyObject * frepple::utils::CommandLoadLibrary::executePython </td> <td>(</td> <td class="paramtype">PyObject * </td> <td class="paramname"> <em>self</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">PyObject * </td> <td class="paramname"> <em>args</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">PyObject * </td> <td class="paramname"> <em>kwds</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Python equivalent of this command. </p> <p>Definition at line <a class="el" href="a00193_source.html#l00483">483</a> of file <a class="el" href="a00193_source.html">utils/actions.cpp</a>.</p> </div> </div> <a class="anchor" id="ae2e4396cf3357cf1d010ceba88f7ee34"></a><!-- doxytag: member="frepple::utils::CommandLoadLibrary::getLibraryName" ref="ae2e4396cf3357cf1d010ceba88f7ee34" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">string frepple::utils::CommandLoadLibrary::getLibraryName </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the command line that will be run. </p> <p>Definition at line <a class="el" href="a00252_source.html#l04024">4024</a> of file <a class="el" href="a00252_source.html">utils.h</a>.</p> </div> </div> <a class="anchor" id="aa1e62d2e269e854017f037d87174d61a"></a><!-- doxytag: member="frepple::utils::CommandLoadLibrary::isLoaded" ref="aa1e62d2e269e854017f037d87174d61a" args="(const string &s)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static bool frepple::utils::CommandLoadLibrary::isLoaded </td> <td>(</td> <td class="paramtype">const string & </td> <td class="paramname"> <em>s</em></td> <td> ) </td> <td><code> [inline, static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns true if a module with this name has been loaded. </p> <p>Definition at line <a class="el" href="a00252_source.html#l04042">4042</a> of file <a class="el" href="a00252_source.html">utils.h</a>.</p> </div> </div> <a class="anchor" id="a69cb317baf676b1a6b6f4c864fd25b40"></a><!-- doxytag: member="frepple::utils::CommandLoadLibrary::printModules" ref="a69cb317baf676b1a6b6f4c864fd25b40" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void frepple::utils::CommandLoadLibrary::printModules </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Print all modules that have been loaded. </p> <p>Definition at line <a class="el" href="a00193_source.html#l00523">523</a> of file <a class="el" href="a00193_source.html">utils/actions.cpp</a>.</p> </div> </div> <a class="anchor" id="a0ad3d36e87e5e2a1482c24a828bcce6b"></a><!-- doxytag: member="frepple::utils::CommandLoadLibrary::setLibraryName" ref="a0ad3d36e87e5e2a1482c24a828bcce6b" args="(const string &libname)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void frepple::utils::CommandLoadLibrary::setLibraryName </td> <td>(</td> <td class="paramtype">const string & </td> <td class="paramname"> <em>libname</em></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Updates the command line to be executed.<br/> </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>libname</em> </td><td>Path of the library to be loaded </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="a00252_source.html#l04021">4021</a> of file <a class="el" href="a00252_source.html">utils.h</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="a00252_source.html">utils.h</a></li> <li><a class="el" href="a00193_source.html">utils/actions.cpp</a></li> <li><a class="el" href="a00211_source.html">utils/library.cpp</a></li> </ul> </div> <hr size="1"/><address style="align: right;"><small>Documentation generated for frePPLe by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"/></a></small></address> </div> </div> </body> </html>