<!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::Plan 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="a00132.html">Plan</a> </div> </div> <div class="contents"> <h1>frepple::Plan Class Reference</h1><!-- doxytag: class="frepple::Plan" --><!-- doxytag: inherits="frepple::Plannable,frepple::utils::Object" --> <p>This is the (logical) top class of the complete model. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="a00218_source.html">model.h</a>></code></p> <div class="dynheader"> Inheritance diagram for frepple::Plan:</div> <div class="dynsection"> <div class="center"><img src="a00479.png" border="0" usemap="#frepple_1_1_plan_inherit__map" alt="Inheritance graph"/></div> <map name="frepple_1_1_plan_inherit__map" id="frepple_1_1_plan_inherit__map"> <area shape="rect" id="node2" href="a00133.html" title="This class needs to be implemented by all classes that implement dynamic behavior..." alt="" coords="169,83,292,111"/> <area shape="rect" id="node4" href="a00086.html" title="Classes that keep track of problem conditions need to implement this class." alt="" coords="5,6,149,34"/> <area shape="rect" id="node6" href="a00170.html" title="This class needs to be implemented by all classes that implement dynamic behavior..." alt="" coords="173,6,288,34"/> <area shape="rect" id="node8" href="a00120.html" title="Object is the abstract base class for the main entities." alt="" coords="336,83,472,111"/> <area shape="rect" id="node10" href="a00151.html" title="This is a base class for all Python extension types." alt="" coords="312,6,539,34"/> </map> <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> <p><a href="a00480.html">List of all members.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <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="a00132.html#a69390b798aac12228870a8d00cf57139">beginElement</a> (<a class="el" href="a00186.html">XMLInput</a> &, const <a class="el" href="a00002.html">Attribute</a> &)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html#a728ace4034264f9e326eaeeab2e27464">endElement</a> (<a class="el" href="a00186.html">XMLInput</a> &, const <a class="el" href="a00002.html">Attribute</a> &, const <a class="el" href="a00047.html">DataElement</a> &)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">PyObject * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html#adb96bf22aea81017e5a22e1a79e66346">getattro</a> (const <a class="el" href="a00002.html">Attribute</a> &)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a00049.html">Date</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html#a6a07002deb9c4f380a54a3e3465e487b">getCurrent</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">const string & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html#aa258fa8c73cc6f011b929d3a38d16e6d">getDescription</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">const string & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html#ad9e672a1adfed1ac541fe9e716189717">getName</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html#a38abcdb5ec8be568c5f5c0888f264f86">getSize</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a00115.html">MetaClass</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html#ae2ddb7d3b960abdd7b48780fb22f77e9">getType</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html#aaa8813a55cf233ef424fea26df99d12f">setattro</a> (const <a class="el" href="a00002.html">Attribute</a> &, const <a class="el" href="a00154.html">PythonObject</a> &)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html#a87c02047a5498e35f90aed3ee68baafd">setCurrent</a> (<a class="el" href="a00049.html">Date</a>)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html#a2fa52b6e7ff72c5aad7db51c67385333">setDescription</a> (const string &str)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html#a33e28fd899ebacbe1719a4c986cb5abc">setName</a> (const string &s)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html#a544cf2b66a6c03c2e209fbe8f2ec1bee">solve</a> (<a class="el" href="a00171.html">Solver</a> &s, void *v=NULL) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html#ada03a9129c46c22ac81a8e475b9d33bf">updateProblems</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html#abf19f56523e84d1ff33187bb7af4ba6b">writeElement</a> (<a class="el" href="a00189.html">XMLOutput</a> *, const <a class="el" href="a00096.html">Keyword</a> &, <a class="el" href="a00257.html#a20c2c7e4c6b668e71c154ae3eb18f398">mode</a>=DEFAULT) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html#a1c0599bc9b82961927871d3d94763eee">~Plan</a> ()</td></tr> <tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html#a8b9cb720dcd2e2e00e5b12d774f05eab">initialize</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00132.html">Plan</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html#ab297b1f299d472a457784f8022849303">instance</a> ()</td></tr> <tr><td colspan="2"><h2>Static Public Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="a00114.html">MetaCategory</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html#afaa64bb4e333f99bc73c823453a46aea">metadata</a></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>This is the (logical) top class of the complete model. </p> <p>This is a singleton class: only a single instance can be created. The data model has other limitations that make it not obvious to support building multiple models/plans in memory of the same application: e.g. the operations, resources, problems, operationplans... etc are all implemented in static, global lists. An entity can't be simply linked with a particular plan if multiple ones would exist. </p> <p>Definition at line <a class="el" href="a00218_source.html#l04210">4210</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a1c0599bc9b82961927871d3d94763eee"></a><!-- doxytag: member="frepple::Plan::~Plan" ref="a1c0599bc9b82961927871d3d94763eee" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">frepple::Plan::~Plan </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Destructor. </p> <dl class="warning"><dt><b>Warning:</b></dt><dd>In multi threaded applications, the destructor is never called and the plan object leaks when we exit the application. In single-threaded applications this function is called properly, when the static plan variable is deleted. </dd></dl> <p>Definition at line <a class="el" href="a00226_source.html#l00065">65</a> of file <a class="el" href="a00226_source.html">plan.cpp</a>.</p> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a69390b798aac12228870a8d00cf57139"></a><!-- doxytag: member="frepple::Plan::beginElement" ref="a69390b798aac12228870a8d00cf57139" args="(XMLInput &, const Attribute &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void frepple::Plan::beginElement </td> <td>(</td> <td class="paramtype"><a class="el" href="a00186.html">XMLInput</a> & </td> <td class="paramname">, </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"></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Called while restoring the model from an XML-file.<br/> This is called for each element within the "this" element, for which the "this" element is immediate parent.<br/> It is called when the open element tag is encountered. </p> <p>Reimplemented from <a class="el" href="a00120.html#ac17c9f7df359ee20839f5e09723d38f1">frepple::utils::Object</a>.</p> <p>Definition at line <a class="el" href="a00226_source.html#l00123">123</a> of file <a class="el" href="a00226_source.html">plan.cpp</a>.</p> </div> </div> <a class="anchor" id="a728ace4034264f9e326eaeeab2e27464"></a><!-- doxytag: member="frepple::Plan::endElement" ref="a728ace4034264f9e326eaeeab2e27464" args="(XMLInput &, const Attribute &, const DataElement &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void frepple::Plan::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><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Reimplemented from <a class="el" href="a00133.html#adbaec4d97d9773b4eb1d63ea935d75ba">frepple::Plannable</a>.</p> <p>Definition at line <a class="el" href="a00226_source.html#l00108">108</a> of file <a class="el" href="a00226_source.html">plan.cpp</a>.</p> </div> </div> <a class="anchor" id="adb96bf22aea81017e5a22e1a79e66346"></a><!-- doxytag: member="frepple::Plan::getattro" ref="adb96bf22aea81017e5a22e1a79e66346" args="(const Attribute &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">PyObject * frepple::Plan::getattro </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00002.html">Attribute</a> & </td> <td class="paramname"> <em>attr</em></td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Default getattro method. <br/> Subclasses are expected to implement an override if the type supports gettattro. </p> <p>Reimplemented from <a class="el" href="a00151.html#af3cfc29003472070ba9e133bcf5eb335">frepple::utils::PythonExtensionBase</a>.</p> <p>Definition at line <a class="el" href="a00226_source.html#l00140">140</a> of file <a class="el" href="a00226_source.html">plan.cpp</a>.</p> </div> </div> <a class="anchor" id="a6a07002deb9c4f380a54a3e3465e487b"></a><!-- doxytag: member="frepple::Plan::getCurrent" ref="a6a07002deb9c4f380a54a3e3465e487b" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="a00049.html">Date</a>& frepple::Plan::getCurrent </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the current Date of the plan. </p> <p>Definition at line <a class="el" href="a00218_source.html#l04252">4252</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p> </div> </div> <a class="anchor" id="aa258fa8c73cc6f011b929d3a38d16e6d"></a><!-- doxytag: member="frepple::Plan::getDescription" ref="aa258fa8c73cc6f011b929d3a38d16e6d" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const string& frepple::Plan::getDescription </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the description of the plan. </p> <p>Definition at line <a class="el" href="a00218_source.html#l04261">4261</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p> </div> </div> <a class="anchor" id="ad9e672a1adfed1ac541fe9e716189717"></a><!-- doxytag: member="frepple::Plan::getName" ref="ad9e672a1adfed1ac541fe9e716189717" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const string& frepple::Plan::getName </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the plan name. </p> <p>Definition at line <a class="el" href="a00218_source.html#l04246">4246</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p> </div> </div> <a class="anchor" id="a38abcdb5ec8be568c5f5c0888f264f86"></a><!-- doxytag: member="frepple::Plan::getSize" ref="a38abcdb5ec8be568c5f5c0888f264f86" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual size_t frepple::Plan::getSize </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td> const<code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Return the memory size of the object in bytes. </p> <p>Implements <a class="el" href="a00120.html#ae381655a0e700d1e0d9ef72379792872">frepple::utils::Object</a>.</p> <p>Definition at line <a class="el" href="a00218_source.html#l04287">4287</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p> </div> </div> <a class="anchor" id="ae2ddb7d3b960abdd7b48780fb22f77e9"></a><!-- doxytag: member="frepple::Plan::getType" ref="ae2ddb7d3b960abdd7b48780fb22f77e9" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="a00115.html">MetaClass</a>& frepple::Plan::getType </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td> const<code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>This returns the type information on the object, a bit similar to the standard type_info information. </p> <p>Implements <a class="el" href="a00120.html#a2e5ff5e5d9c32647f692abd04a0d72d2">frepple::utils::Object</a>.</p> <p>Definition at line <a class="el" href="a00218_source.html#l04285">4285</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p> </div> </div> <a class="anchor" id="a8b9cb720dcd2e2e00e5b12d774f05eab"></a><!-- doxytag: member="frepple::Plan::initialize" ref="a8b9cb720dcd2e2e00e5b12d774f05eab" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int frepple::Plan::initialize </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Initialize the class. </p> <p>Definition at line <a class="el" href="a00226_source.html#l00039">39</a> of file <a class="el" href="a00226_source.html">plan.cpp</a>.</p> </div> </div> <a class="anchor" id="ab297b1f299d472a457784f8022849303"></a><!-- doxytag: member="frepple::Plan::instance" ref="ab297b1f299d472a457784f8022849303" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="a00132.html">Plan</a>& frepple::Plan::instance </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [inline, static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Return a pointer to the singleton plan object. The singleton object is created during the initialization of the library. </p> <p>Definition at line <a class="el" href="a00218_source.html#l04235">4235</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p> </div> </div> <a class="anchor" id="aaa8813a55cf233ef424fea26df99d12f"></a><!-- doxytag: member="frepple::Plan::setattro" ref="aaa8813a55cf233ef424fea26df99d12f" args="(const Attribute &, const PythonObject &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int frepple::Plan::setattro </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00002.html">Attribute</a> & </td> <td class="paramname"> <em>attr</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00154.html">PythonObject</a> & </td> <td class="paramname"> <em>field</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Default setattro method. <br/> Subclasses are expected to implement an override if the type supports settattro. </p> <p>Reimplemented from <a class="el" href="a00151.html#a0a1bd051198a1b82fd23d3ca04c3ee8d">frepple::utils::PythonExtensionBase</a>.</p> <p>Definition at line <a class="el" href="a00226_source.html#l00154">154</a> of file <a class="el" href="a00226_source.html">plan.cpp</a>.</p> </div> </div> <a class="anchor" id="a87c02047a5498e35f90aed3ee68baafd"></a><!-- doxytag: member="frepple::Plan::setCurrent" ref="a87c02047a5498e35f90aed3ee68baafd" args="(Date)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void frepple::Plan::setCurrent </td> <td>(</td> <td class="paramtype"><a class="el" href="a00049.html">Date</a> </td> <td class="paramname"> <em>l</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Updates the current date of the plan. This method can be relatively heavy in a plan where operationplans already exist, since the detection for BeforeCurrent problems needs to be rerun. </p> <p>Definition at line <a class="el" href="a00226_source.html#l00075">75</a> of file <a class="el" href="a00226_source.html">plan.cpp</a>.</p> </div> </div> <a class="anchor" id="a2fa52b6e7ff72c5aad7db51c67385333"></a><!-- doxytag: member="frepple::Plan::setDescription" ref="a2fa52b6e7ff72c5aad7db51c67385333" args="(const string &str)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void frepple::Plan::setDescription </td> <td>(</td> <td class="paramtype">const string & </td> <td class="paramname"> <em>str</em></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Updates the description of the plan. </p> <p>Definition at line <a class="el" href="a00218_source.html#l04264">4264</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p> </div> </div> <a class="anchor" id="a33e28fd899ebacbe1719a4c986cb5abc"></a><!-- doxytag: member="frepple::Plan::setName" ref="a33e28fd899ebacbe1719a4c986cb5abc" args="(const string &s)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void frepple::Plan::setName </td> <td>(</td> <td class="paramtype">const string & </td> <td class="paramname"> <em>s</em></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Updates the plan name. </p> <p>Definition at line <a class="el" href="a00218_source.html#l04249">4249</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p> </div> </div> <a class="anchor" id="a544cf2b66a6c03c2e209fbe8f2ec1bee"></a><!-- doxytag: member="frepple::Plan::solve" ref="a544cf2b66a6c03c2e209fbe8f2ec1bee" args="(Solver &s, void *v=NULL) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void frepple::Plan::solve </td> <td>(</td> <td class="paramtype"><a class="el" href="a00171.html">Solver</a> & </td> <td class="paramname"> <em>s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>v</em> = <code>NULL</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td> const<code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>This method basically solves the whole planning problem. </p> <p>Reimplemented from <a class="el" href="a00170.html#a35ad0dc1632fbfaee0ecc55752980c29">frepple::Solvable</a>.</p> <p>Definition at line <a class="el" href="a00218_source.html#l04283">4283</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p> </div> </div> <a class="anchor" id="ada03a9129c46c22ac81a8e475b9d33bf"></a><!-- doxytag: member="frepple::Plan::updateProblems" ref="ada03a9129c46c22ac81a8e475b9d33bf" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void frepple::Plan::updateProblems </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Called to update the list of problems. The function will only be called when:</p> <ul> <li>the list of problems is being recomputed</li> <li>AND, problem detection is enabled for this object</li> <li>AND, the object has changed since the last problem computation </li> </ul> <p>Implements <a class="el" href="a00086.html#aaa5a254f9a1c7aab3d423de333185b87">frepple::HasProblems</a>.</p> <p>Definition at line <a class="el" href="a00218_source.html#l04280">4280</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p> </div> </div> <a class="anchor" id="abf19f56523e84d1ff33187bb7af4ba6b"></a><!-- doxytag: member="frepple::Plan::writeElement" ref="abf19f56523e84d1ff33187bb7af4ba6b" args="(XMLOutput *, const Keyword &, mode=DEFAULT) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void frepple::Plan::writeElement </td> <td>(</td> <td class="paramtype"><a class="el" href="a00189.html">XMLOutput</a> * </td> <td class="paramname"> <em>o</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00096.html">Keyword</a> & </td> <td class="paramname"> <em>tag</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00257.html#a20c2c7e4c6b668e71c154ae3eb18f398">mode</a> </td> <td class="paramname"> <em>m</em> = <code>DEFAULT</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td> const<code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>This method writes out the model information. Depending on a flag in the XMLOutput object a complete model is written, or only the dynamic plan information. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00036.html" title="This command writes the complete model to an XML-file.">CommandSave</a>, <a class="el" href="a00037.html" title="This command writes the dynamic part of the plan to an text file.">CommandSavePlan</a> </dd></dl> <p>Reimplemented from <a class="el" href="a00133.html#af52c6c3386a937db2bc91a1950622462">frepple::Plannable</a>.</p> <p>Definition at line <a class="el" href="a00226_source.html#l00087">87</a> of file <a class="el" href="a00226_source.html">plan.cpp</a>.</p> </div> </div> <hr/><h2>Member Data Documentation</h2> <a class="anchor" id="afaa64bb4e333f99bc73c823453a46aea"></a><!-- doxytag: member="frepple::Plan::metadata" ref="afaa64bb4e333f99bc73c823453a46aea" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="a00114.html">MetaCategory</a> * <a class="el" href="a00132.html#afaa64bb4e333f99bc73c823453a46aea">frepple::Plan::metadata</a><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="a00218_source.html#l04286">4286</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="a00218_source.html">model.h</a></li> <li><a class="el" href="a00226_source.html">plan.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>