Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 54cac1c2268db633d66eeff1b4faa585 > files > 410

frepple-doc-0.8.1-3.fc15.noarch.rpm

<!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::Problem 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&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;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&nbsp;List</span></a></li>
      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="a00256.html">frepple</a>::<a class="el" href="a00134.html">Problem</a>
  </div>
</div>
<div class="contents">
<h1>frepple::Problem Class Reference</h1><!-- doxytag: class="frepple::Problem" --><!-- doxytag: inherits="frepple::utils::NonCopyable,frepple::utils::Object" -->
<p>A problem represents infeasibilities, alerts and warnings in the plan.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="a00218_source.html">model.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for frepple::Problem:</div>
<div class="dynsection">
<div class="center"><img src="a00483.png" border="0" usemap="#frepple_1_1_problem_inherit__map" alt="Inheritance graph"/></div>
<map name="frepple_1_1_problem_inherit__map" id="frepple_1_1_problem_inherit__map">
<area shape="rect" id="node9" href="a00135.html" title="A problem of this class is created when an operationplan is being planned in the..." alt="" coords="691,5,885,33"/>
<area shape="rect" id="node11" href="a00136.html" title="A problem of this class is created when an operationplan is being planned before..." alt="" coords="695,55,881,83"/>
<area shape="rect" id="node13" href="a00137.html" title="A problem of this class is created when a resource is being overloaded during a certain..." alt="" coords="680,106,896,134"/>
<area shape="rect" id="node15" href="a00138.html" title="A problem of this class is created when a resource is loaded below its minimum during..." alt="" coords="676,157,900,185"/>
<area shape="rect" id="node17" href="a00139.html" title="A Problem of this class is created in the model when a new demand is brought in the..." alt="" coords="673,207,903,235"/>
<area shape="rect" id="node19" href="a00140.html" title="A problem of this class is created when a demand is planned earlier than the accepted..." alt="" coords="716,258,860,286"/>
<area shape="rect" id="node21" href="a00141.html" title="A problem of this class is created when a demand is planned for more than the requested..." alt="" coords="708,309,868,337"/>
<area shape="rect" id="node23" href="a00142.html" title="A Problem of this class is created in the model when a data exception prevents planning..." alt="" coords="700,359,876,387"/>
<area shape="rect" id="node25" href="a00144.html" title="A problem of this class is created when a demand is satisfied later than the accepted..." alt="" coords="719,410,857,438"/>
<area shape="rect" id="node27" href="a00145.html" title="A problem of this class is created when a buffer is carrying too much material during..." alt="" coords="685,461,891,489"/>
<area shape="rect" id="node29" href="a00146.html" title="A problem of this class is created when a buffer is having a material shortage during..." alt="" coords="681,511,895,539"/>
<area shape="rect" id="node31" href="a00147.html" title="A problem of this class is created when the sequence of two operationplans in a routing..." alt="" coords="696,562,880,590"/>
<area shape="rect" id="node33" href="a00148.html" title="A problem of this class is created when a demand is planned for less than the requested..." alt="" coords="715,613,861,641"/>
<area shape="rect" id="node2" href="a00119.html" title="Class NonCopyable is a base class. Derive your own class from it when you want to..." alt="" coords="283,283,459,311"/>
<area shape="rect" id="node4" href="a00120.html" title="Object is the abstract base class for the main entities." alt="" coords="303,334,439,362"/>
<area shape="rect" id="node6" href="a00151.html" title="This is a base class for all Python extension types." alt="" coords="7,334,233,362"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="a00484.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html">const_iterator</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class models an STL-like iterator that allows us to iterate over the named entities in a simple and safe way.  <a href="a00039.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00100.html">List</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This auxilary class is used to maintain a list of problem models.  <a href="a00100.html#_details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a49aee06a6db1789ca881192b9e21db7f">endElement</a> (<a class="el" href="a00186.html">XMLInput</a> &amp;, const <a class="el" href="a00002.html">Attribute</a> &amp;, const <a class="el" href="a00047.html">DataElement</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">PyObject *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a0e4d549feb1341e3e0a24a6dc554ee4a">getattro</a> (const <a class="el" href="a00002.html">Attribute</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="a00050.html">DateRange</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#af283f4815d85c0b33d112efe4435737b">getDates</a> () const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a37253df6ba9ebdbea97e9f789dfb8bb2">getDescription</a> () const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a393e211b1d4da9fbc4cb1b1284248c1b">getEntity</a> () const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="a00120.html">Object</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a66e1a9cb011d009afffb32f428c06fdf">getOwner</a> () const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="a00115.html">MetaClass</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a8a73cf77f0bed3a807e65f9844d9baf4">getType</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#aeac2c097edda9dee786247f8cd69bb4b">getWeight</a> () const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a3ce24ef75c043698afa411a6f9eeca61">isFeasible</a> () const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#af98d64828b21c449532283240ea5d418">Problem</a> (<a class="el" href="a00086.html">HasProblems</a> *p=NULL)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">PyObject *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a9ce2fc49c64c0067e9e6c210bbcd1ce9">str</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a8a88411ea52743d1d78ed68ed06e9507">writeElement</a> (<a class="el" href="a00189.html">XMLOutput</a> *, const <a class="el" href="a00096.html">Keyword</a> &amp;, <a class="el" href="a00257.html#a20c2c7e4c6b668e71c154ae3eb18f398">mode</a>=DEFAULT) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a2dd86a0d72c2b8349f5d6222e63cea13">~Problem</a> ()</td></tr>
<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00039.html">const_iterator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a71c75d34039d739b3949aab50637d1a4">begin</a> (<a class="el" href="a00086.html">HasProblems</a> *, bool=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00039.html">const_iterator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a1532b2bb7078ebcd527a8bf332ffb861">begin</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a0f7f4dca83f15c8807b6f7a4b0733bd5">clearProblems</a> (<a class="el" href="a00086.html">HasProblems</a> &amp;p, bool setchanged=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a53c01969a6eae0dbfff416560242b454">clearProblems</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="a00039.html">const_iterator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#ae3fc9d1129b3e956ac2c9ec6c54035d8">end</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#ae6d44efda41e2197216ba1d0e7cb2d90">initialize</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#ab40e26683cdfa2c097fb04648ddea01e">writer</a> (const <a class="el" href="a00114.html">MetaCategory</a> *, <a class="el" href="a00189.html">XMLOutput</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> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a9e707be88274a5c5d7bc4c71f2ea1338">metadata</a></td></tr>
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a4a54565c28b3f557882917db82415c7c">addProblem</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a2f71c4ed90e3ed268a804550a45b0cb3">operator&lt;</a> (const <a class="el" href="a00134.html">Problem</a> &amp;a) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a2960a1116a82c6d0f3351229667a122e">removeProblem</a> ()</td></tr>
<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00134.html">Problem</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#ad638c0a23c7a37fa2b3e0463d837e1e0">nextProblem</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00086.html">HasProblems</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a1f4c26a4eff13faa79d88287beb204c2">owner</a></td></tr>
<tr><td colspan="2"><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#ac220ce1c155db1ac44146c12d178056f">const_iterator</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html#a8cee552d09eaeb60a09d95309a87b498">List</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>A problem represents infeasibilities, alerts and warnings in the plan. </p>
<p>Problems are maintained internally by the system. They are thus only exported, meaning that you can't directly import or create problems.<br/>
 This class is the pure virtual base class for all problem types.<br/>
 The usage of the problem objects is based on the following principles:</p>
<ul>
<li>Problems objects are passive. They don't actively change the model state.</li>
<li>Objects of the <a class="el" href="a00086.html" title="Classes that keep track of problem conditions need to implement this class.">HasProblems</a> class actively create and destroy <a class="el" href="a00134.html" title="A problem represents infeasibilities, alerts and warnings in the plan.">Problem</a> objects.</li>
<li><a class="el" href="a00134.html" title="A problem represents infeasibilities, alerts and warnings in the plan.">Problem</a> objects are managed in a 'lazy' way, meaning they only are getting created when the list of problems is requested by the user.<br/>
 During normal planning activities we merely mark the planning entities that have changed, so we can easily pick up which entities to recompute the problems for. In this way we can avoid the cpu and memory overhead of keeping the problem list up to date at all times, while still providing the user with the correct list of problems when required.</li>
<li>Given the above, Problems are lightweight objects that consume limited memory. </li>
</ul>

<p>Definition at line <a class="el" href="a00218_source.html#l00874">874</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="af98d64828b21c449532283240ea5d418"></a><!-- doxytag: member="frepple::Problem::Problem" ref="af98d64828b21c449532283240ea5d418" args="(HasProblems *p=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">frepple::Problem::Problem </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00086.html">HasProblems</a> *&nbsp;</td>
          <td class="paramname"> <em>p</em> = <code>NULL</code></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, explicit]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Constructor.<br/>
 Note that this method can't manipulate the problem container, since the problem objects aren't fully constructed yet. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00134.html#a4a54565c28b3f557882917db82415c7c">addProblem</a> </dd></dl>

<p>Definition at line <a class="el" href="a00218_source.html#l00887">887</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2dd86a0d72c2b8349f5d6222e63cea13"></a><!-- doxytag: member="frepple::Problem::~Problem" ref="a2dd86a0d72c2b8349f5d6222e63cea13" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual frepple::Problem::~Problem </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Destructor. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00134.html#a2960a1116a82c6d0f3351229667a122e">removeProblem</a> </dd></dl>

<p>Definition at line <a class="el" href="a00218_source.html#l00896">896</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a4a54565c28b3f557882917db82415c7c"></a><!-- doxytag: member="frepple::Problem::addProblem" ref="a4a54565c28b3f557882917db82415c7c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::Problem::addProblem </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Adds a newly created problem to the problem container. This method needs to be called in the constructor of a problem subclass. It can't be called from the constructor of the base <a class="el" href="a00134.html" title="A problem represents infeasibilities, alerts and warnings in the plan.">Problem</a> class, since the object isn't fully created yet and thus misses the proper information used by the compare method. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00134.html#a2960a1116a82c6d0f3351229667a122e">removeProblem</a> </dd></dl>

<p>Definition at line <a class="el" href="a00227_source.html#l00109">109</a> of file <a class="el" href="a00227_source.html">problem.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a71c75d34039d739b3949aab50637d1a4"></a><!-- doxytag: member="frepple::Problem::begin" ref="a71c75d34039d739b3949aab50637d1a4" args="(HasProblems *, bool=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00039.html">Problem::const_iterator</a> frepple::Problem::begin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00086.html">HasProblems</a> *&nbsp;</td>
          <td class="paramname"> <em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>refresh</em> = <code>true</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return an iterator to the first problem of this entity. The iterator can be incremented till it points past the last problem of this plannable entity.<br/>
 The boolean argument specifies whether the problems need to be recomputed as part of this method. </p>

<p>Definition at line <a class="el" href="a00227_source.html#l00519">519</a> of file <a class="el" href="a00227_source.html">problem.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a1532b2bb7078ebcd527a8bf332ffb861"></a><!-- doxytag: member="frepple::Problem::begin" ref="a1532b2bb7078ebcd527a8bf332ffb861" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00039.html">Problem::const_iterator</a> frepple::Problem::begin </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns an iterator to the very first problem. The iterator can be incremented till it points past the very last problem. </p>

<p>Definition at line <a class="el" href="a00227_source.html#l00512">512</a> of file <a class="el" href="a00227_source.html">problem.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a0f7f4dca83f15c8807b6f7a4b0733bd5"></a><!-- doxytag: member="frepple::Problem::clearProblems" ref="a0f7f4dca83f15c8807b6f7a4b0733bd5" args="(HasProblems &amp;p, bool setchanged=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::Problem::clearProblems </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00086.html">HasProblems</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>setchanged</em> = <code>true</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Erases the list of problems linked with a certain plannable object.<br/>
 If the second parameter is set to true, the problems will be recreated when the next problem detection round is triggered. </p>

<p>Definition at line <a class="el" href="a00227_source.html#l00250">250</a> of file <a class="el" href="a00227_source.html">problem.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a53c01969a6eae0dbfff416560242b454"></a><!-- doxytag: member="frepple::Problem::clearProblems" ref="a53c01969a6eae0dbfff416560242b454" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::Problem::clearProblems </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Erases the list of all problems. This methods can be used reduce the memory consumption at critical points. The list of problems will be recreated when the problem detection is triggered again. </p>

<p>Definition at line <a class="el" href="a00227_source.html#l00238">238</a> of file <a class="el" href="a00227_source.html">problem.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="ae3fc9d1129b3e956ac2c9ec6c54035d8"></a><!-- doxytag: member="frepple::Problem::end" ref="ae3fc9d1129b3e956ac2c9ec6c54035d8" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00039.html">Problem::const_iterator</a> frepple::Problem::end </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return an iterator pointing beyond the last problem. </p>

<p>Definition at line <a class="el" href="a00227_source.html#l00530">530</a> of file <a class="el" href="a00227_source.html">problem.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a49aee06a6db1789ca881192b9e21db7f"></a><!-- doxytag: member="frepple::Problem::endElement" ref="a49aee06a6db1789ca881192b9e21db7f" args="(XMLInput &amp;, const Attribute &amp;, const DataElement &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::Problem::endElement </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00186.html">XMLInput</a> &amp;&nbsp;</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> &amp;&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00047.html">DataElement</a> &amp;&nbsp;</td>
          <td class="paramname"></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Called while restoring the model from an XML-file.<br/>
 This is called when the corresponding close element tag is encountered, and the Data() member of pElement is valid. </p>

<p>Implements <a class="el" href="a00120.html#a88eab6db69f9b38c6b3f5ea37da630fd">frepple::utils::Object</a>.</p>

<p>Definition at line <a class="el" href="a00218_source.html#l00921">921</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0e4d549feb1341e3e0a24a6dc554ee4a"></a><!-- doxytag: member="frepple::Problem::getattro" ref="a0e4d549feb1341e3e0a24a6dc554ee4a" args="(const Attribute &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PyObject * frepple::Problem::getattro </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00002.html">Attribute</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>attr</em></td>
          <td>&nbsp;)&nbsp;</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="a00227_source.html#l00536">536</a> of file <a class="el" href="a00227_source.html">problem.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="af283f4815d85c0b33d112efe4435737b"></a><!-- doxytag: member="frepple::Problem::getDates" ref="af283f4815d85c0b33d112efe4435737b" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="a00050.html">DateRange</a> frepple::Problem::getDates </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the duration of this problem. </p>

<p>Implemented in <a class="el" href="a00135.html#ae39b2ae37ed350393f7d84ed1969d498">frepple::ProblemBeforeCurrent</a>, <a class="el" href="a00136.html#a5c6ccce23efea9387074d10d41c100ce">frepple::ProblemBeforeFence</a>, <a class="el" href="a00147.html#a344122af479e0d73206f4ac229313093">frepple::ProblemPrecedence</a>, <a class="el" href="a00139.html#ac27f2ccb5380e2177fbcfa3618dc0c14">frepple::ProblemDemandNotPlanned</a>, <a class="el" href="a00144.html#abd7b025e57b1384f85d0403d70ebb3ae">frepple::ProblemLate</a>, <a class="el" href="a00140.html#acd0b81e032251aa2638f769c614c76b5">frepple::ProblemEarly</a>, <a class="el" href="a00142.html#af3bbb2a72681a70a455aed16abbf728e">frepple::ProblemInvalidData</a>, <a class="el" href="a00148.html#af176220d947ae07001eebaca1fb214bb">frepple::ProblemShort</a>, <a class="el" href="a00141.html#a31b18022012cec9f70595070645440cd">frepple::ProblemExcess</a>, <a class="el" href="a00137.html#a9922f56dcb6a1be746c864a9c7da675d">frepple::ProblemCapacityOverload</a>, <a class="el" href="a00138.html#a7a94ce3804d80f244f4b6a3fb20bb9d2">frepple::ProblemCapacityUnderload</a>, <a class="el" href="a00146.html#a027667dec2675ca7db769bfde15bd93e">frepple::ProblemMaterialShortage</a>, and <a class="el" href="a00145.html#a6653ad9a6e4ce29b0d295e2e301f8649">frepple::ProblemMaterialExcess</a>.</p>

</div>
</div>
<a class="anchor" id="a37253df6ba9ebdbea97e9f789dfb8bb2"></a><!-- doxytag: member="frepple::Problem::getDescription" ref="a37253df6ba9ebdbea97e9f789dfb8bb2" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual string frepple::Problem::getDescription </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns a text description of this problem. </p>

<p>Implemented in <a class="el" href="a00135.html#a3b624fbeb13f03d1d76f250f9d3e3ac1">frepple::ProblemBeforeCurrent</a>, <a class="el" href="a00136.html#acbd381b4956abdba6c3ca7a1d2450f03">frepple::ProblemBeforeFence</a>, <a class="el" href="a00147.html#a42b465e523a57421bd44bfe7b4664356">frepple::ProblemPrecedence</a>, <a class="el" href="a00139.html#afb590e7b7865a0f83ae1adc5588039d5">frepple::ProblemDemandNotPlanned</a>, <a class="el" href="a00144.html#ade00d69b8bb4102807e6b2f7642f2ca7">frepple::ProblemLate</a>, <a class="el" href="a00140.html#ac710c5342837f6917534231a7b80e304">frepple::ProblemEarly</a>, <a class="el" href="a00142.html#afa3fda28f4b2686e8167e0d1e4b53b4b">frepple::ProblemInvalidData</a>, <a class="el" href="a00148.html#a12d1ceaa4e0f7288129a19686666de61">frepple::ProblemShort</a>, <a class="el" href="a00141.html#a717c6f8e0b963903cd31117fe5ab433e">frepple::ProblemExcess</a>, <a class="el" href="a00137.html#a2ea4a1ba2b3127a1100e066754b39a9f">frepple::ProblemCapacityOverload</a>, <a class="el" href="a00138.html#a717cb990c20a07721dd0e404385b2729">frepple::ProblemCapacityUnderload</a>, <a class="el" href="a00146.html#ac3d8341677c055e80576121579494893">frepple::ProblemMaterialShortage</a>, and <a class="el" href="a00145.html#a3622b0b058f2916388ff057e36e281e7">frepple::ProblemMaterialExcess</a>.</p>

</div>
</div>
<a class="anchor" id="a393e211b1d4da9fbc4cb1b1284248c1b"></a><!-- doxytag: member="frepple::Problem::getEntity" ref="a393e211b1d4da9fbc4cb1b1284248c1b" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual string frepple::Problem::getEntity </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the object type having this problem. </p>

<p>Implemented in <a class="el" href="a00135.html#a2539269b3eb9bc7867c4ed0e84a1e667">frepple::ProblemBeforeCurrent</a>, <a class="el" href="a00136.html#a1cf7de790ed1e394764430a241fe02b6">frepple::ProblemBeforeFence</a>, <a class="el" href="a00147.html#a77adc580bca3d5406401aaa96c48072b">frepple::ProblemPrecedence</a>, <a class="el" href="a00139.html#a8bcbb4f79c50a0716205daca53787456">frepple::ProblemDemandNotPlanned</a>, <a class="el" href="a00144.html#af254ff5c31b041fe1de41f3bd542ae6f">frepple::ProblemLate</a>, <a class="el" href="a00140.html#ad44e67cadfcee6b0ccab59cc8b8b8ff3">frepple::ProblemEarly</a>, <a class="el" href="a00142.html#a2d17bb2d5d0518898e17db468f62c455">frepple::ProblemInvalidData</a>, <a class="el" href="a00148.html#af1c89433c53a1bbb7d4ca807fe46feba">frepple::ProblemShort</a>, <a class="el" href="a00141.html#abdec5818be9fcc66e3c8a61a0a1e7bc1">frepple::ProblemExcess</a>, <a class="el" href="a00137.html#a2fe091b3d530d69d29b515dc81f7f163">frepple::ProblemCapacityOverload</a>, <a class="el" href="a00138.html#a5d5b6bef525ced461e6e496a7779fbb2">frepple::ProblemCapacityUnderload</a>, <a class="el" href="a00146.html#a52d9d36cadc8481c9936fb3a79487d73">frepple::ProblemMaterialShortage</a>, and <a class="el" href="a00145.html#ab616a59e816348086e9146fe2eab55cb">frepple::ProblemMaterialExcess</a>.</p>

</div>
</div>
<a class="anchor" id="a66e1a9cb011d009afffb32f428c06fdf"></a><!-- doxytag: member="frepple::Problem::getOwner" ref="a66e1a9cb011d009afffb32f428c06fdf" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="a00120.html">Object</a>* frepple::Problem::getOwner </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns a pointer to the object that owns this problem. </p>

<p>Implemented in <a class="el" href="a00135.html#a70ddc8dd9d0441628ff200e93db72e72">frepple::ProblemBeforeCurrent</a>, <a class="el" href="a00136.html#abf48c828b5152c0824d2462e67c7f06d">frepple::ProblemBeforeFence</a>, <a class="el" href="a00147.html#a4c39b6a130bcd9fc38c268f8b2d22f61">frepple::ProblemPrecedence</a>, <a class="el" href="a00139.html#a250b5b2d85022440f9fff83c4cc559ef">frepple::ProblemDemandNotPlanned</a>, <a class="el" href="a00144.html#aed53e0f2671f091f0a33a458e20ea232">frepple::ProblemLate</a>, <a class="el" href="a00140.html#aa561127356b359e05a87abf0ad888183">frepple::ProblemEarly</a>, <a class="el" href="a00142.html#a2b2e1a7228ccb5854b7720a2d699dc30">frepple::ProblemInvalidData</a>, <a class="el" href="a00148.html#a76a7021082161e5a5eea83bf0178c6aa">frepple::ProblemShort</a>, <a class="el" href="a00141.html#ab33b5c56a30d80b43653d66c2429f654">frepple::ProblemExcess</a>, <a class="el" href="a00137.html#a13c984ea173b1859314f4f2242064e89">frepple::ProblemCapacityOverload</a>, <a class="el" href="a00138.html#ab634866e277828bfc8c53a5a2a2b41b2">frepple::ProblemCapacityUnderload</a>, <a class="el" href="a00146.html#a62f5d8f941f6f7e954426401809478f1">frepple::ProblemMaterialShortage</a>, and <a class="el" href="a00145.html#acc45e53d3c623cd3b7beba84860c9147">frepple::ProblemMaterialExcess</a>.</p>

</div>
</div>
<a class="anchor" id="a8a73cf77f0bed3a807e65f9844d9baf4"></a><!-- doxytag: member="frepple::Problem::getType" ref="a8a73cf77f0bed3a807e65f9844d9baf4" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="a00115.html">MetaClass</a>&amp; frepple::Problem::getType </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return a reference to the metadata structure. </p>

<p>Implements <a class="el" href="a00120.html#a2e5ff5e5d9c32647f692abd04a0d72d2">frepple::utils::Object</a>.</p>

<p>Reimplemented in <a class="el" href="a00135.html#a20ab0616d899abc0d02436b49e9c5a00">frepple::ProblemBeforeCurrent</a>, <a class="el" href="a00136.html#a6c7eba44d9459001054176f8f1f64014">frepple::ProblemBeforeFence</a>, <a class="el" href="a00147.html#aafbbd37615a5b38dcdf2dcc99d708d63">frepple::ProblemPrecedence</a>, <a class="el" href="a00139.html#abcd98e70b62af7f3c15234f2031e6a40">frepple::ProblemDemandNotPlanned</a>, <a class="el" href="a00144.html#add6e6b77214edcfd08c1ad3aee38baf6">frepple::ProblemLate</a>, <a class="el" href="a00140.html#a719bca02cf8bcaa306d9937f51309386">frepple::ProblemEarly</a>, <a class="el" href="a00142.html#a2db282b507ee45309395bcae4180752e">frepple::ProblemInvalidData</a>, <a class="el" href="a00148.html#a8df93a6e825787be1b12dc12658bc661">frepple::ProblemShort</a>, <a class="el" href="a00141.html#a856e1af5628234d746752d458d617f2e">frepple::ProblemExcess</a>, <a class="el" href="a00137.html#a7a79b8ed4938884bf731056b67ff097f">frepple::ProblemCapacityOverload</a>, <a class="el" href="a00138.html#a4daac3b4c7a3e8767986731e5114cd86">frepple::ProblemCapacityUnderload</a>, <a class="el" href="a00146.html#a281677189c571b7ab43e936203a6c0d6">frepple::ProblemMaterialShortage</a>, and <a class="el" href="a00145.html#a6db44172c2f9697d4d3c412252665bdf">frepple::ProblemMaterialExcess</a>.</p>

<p>Definition at line <a class="el" href="a00218_source.html#l00962">962</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="aeac2c097edda9dee786247f8cd69bb4b"></a><!-- doxytag: member="frepple::Problem::getWeight" ref="aeac2c097edda9dee786247f8cd69bb4b" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual double frepple::Problem::getWeight </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns a double number reflecting the magnitude of the problem. This allows us to focus on the significant problems and filter out the small ones. </p>

<p>Implemented in <a class="el" href="a00135.html#a2a30d05e90c590a826acfab7b762bfc3">frepple::ProblemBeforeCurrent</a>, <a class="el" href="a00136.html#a48e7a0ec8536f28fac9296a6ee9821dc">frepple::ProblemBeforeFence</a>, <a class="el" href="a00147.html#aa4cf4dc08e2360a8bc7dae9f282f29d3">frepple::ProblemPrecedence</a>, <a class="el" href="a00139.html#a49ca31caa618d065d82373a844f8847b">frepple::ProblemDemandNotPlanned</a>, <a class="el" href="a00144.html#ae0e5e79371ce65e23314d293be7f3bc1">frepple::ProblemLate</a>, <a class="el" href="a00140.html#ae21dda70dc7b3aaa4670b8c9fbf0b67b">frepple::ProblemEarly</a>, <a class="el" href="a00142.html#aa0359b6fb897e08e9a26b72508fa6875">frepple::ProblemInvalidData</a>, <a class="el" href="a00148.html#a3de89621bfe57e16094def6c376ede4a">frepple::ProblemShort</a>, <a class="el" href="a00141.html#a83b2236a056b4be1560a9604b3828124">frepple::ProblemExcess</a>, <a class="el" href="a00137.html#ad4e3131c7f9190da5462ce6c608b50a5">frepple::ProblemCapacityOverload</a>, <a class="el" href="a00138.html#a948fa0b92f9d05a3be6ef5d02c8ed669">frepple::ProblemCapacityUnderload</a>, <a class="el" href="a00146.html#a683218c246b9700737eea06cb9c85d3f">frepple::ProblemMaterialShortage</a>, and <a class="el" href="a00145.html#a138db05c9a4c8893a9664ab3c7f21168">frepple::ProblemMaterialExcess</a>.</p>

</div>
</div>
<a class="anchor" id="ae6d44efda41e2197216ba1d0e7cb2d90"></a><!-- doxytag: member="frepple::Problem::initialize" ref="ae6d44efda41e2197216ba1d0e7cb2d90" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int frepple::Problem::initialize </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</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="a00227_source.html#l00052">52</a> of file <a class="el" href="a00227_source.html">problem.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a3ce24ef75c043698afa411a6f9eeca61"></a><!-- doxytag: member="frepple::Problem::isFeasible" ref="a3ce24ef75c043698afa411a6f9eeca61" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool frepple::Problem::isFeasible </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns true if the plan remains feasible even if it contains this problem, i.e. if the problems flags only a warning. Returns false if a certain problem points at an infeasibility of the plan. </p>

<p>Implemented in <a class="el" href="a00135.html#aff50819db44955d4d5efc41d71b7d246">frepple::ProblemBeforeCurrent</a>, <a class="el" href="a00136.html#a012c9c47ca4464ce2e1d7a0bd34fa919">frepple::ProblemBeforeFence</a>, <a class="el" href="a00147.html#a0aa2ca4ff10c0414f97898f473c776ad">frepple::ProblemPrecedence</a>, <a class="el" href="a00139.html#a8d1507c58f953a312ce57693adb5bb60">frepple::ProblemDemandNotPlanned</a>, <a class="el" href="a00144.html#ae0710cbf6ed49797a3031c93efe97bf1">frepple::ProblemLate</a>, <a class="el" href="a00140.html#a13a4eb640fef0880d82dd7f051316abd">frepple::ProblemEarly</a>, <a class="el" href="a00142.html#a75d3e152ba273b0dc6aa886e4b726c9d">frepple::ProblemInvalidData</a>, <a class="el" href="a00148.html#a252c3aecb7959af2e18cd9bf19e2ad6f">frepple::ProblemShort</a>, <a class="el" href="a00141.html#a808791989bac2894fb5f56c288e3eeea">frepple::ProblemExcess</a>, <a class="el" href="a00137.html#a6a30768f2d97c3b7a6889c976bf27d55">frepple::ProblemCapacityOverload</a>, <a class="el" href="a00138.html#a4715b3d7323394fb63a9e36507a4796a">frepple::ProblemCapacityUnderload</a>, <a class="el" href="a00146.html#af95f2b12cb2cb5160f21e506af31bb36">frepple::ProblemMaterialShortage</a>, and <a class="el" href="a00145.html#a4c051777fae489fd9ac066e5a0373d87">frepple::ProblemMaterialExcess</a>.</p>

</div>
</div>
<a class="anchor" id="a2f71c4ed90e3ed268a804550a45b0cb3"></a><!-- doxytag: member="frepple::Problem::operator&lt;" ref="a2f71c4ed90e3ed268a804550a45b0cb3" args="(const Problem &amp;a) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool frepple::Problem::operator&lt; </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00134.html">Problem</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>a</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Comparison of 2 problems.<br/>
 To garantuee that the problems are sorted in a consistent and stable way, the following sorting criteria are used (in order of priority): </p>
<ol>
<li>
Entity<br/>
 This sort is to be ensured by the client. This method can't compare problems of different entities! </li>
<li>
Type<br/>
 Each problem type has a hashcode used for sorting. </li>
<li>
Start date</li>
</ol>
<p>The sorting is expected such that it can be used as a key, i.e. no two problems of will ever evaluate to be identical. </p>

<p>Definition at line <a class="el" href="a00227_source.html#l00096">96</a> of file <a class="el" href="a00227_source.html">problem.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a2960a1116a82c6d0f3351229667a122e"></a><!-- doxytag: member="frepple::Problem::removeProblem" ref="a2960a1116a82c6d0f3351229667a122e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::Problem::removeProblem </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Removes a problem from the problem container. This method needs to be called from the destructor of a problem subclass.<br/>
 Due to the single linked list data structure, this methods' performance is linear with the number of problems of an entity. This is acceptable since we don't expect entities with a huge amount of problems. </p>
<dl class="see"><dt><b>See also:</b></dt><dd>addproblem </dd></dl>

<p>Definition at line <a class="el" href="a00227_source.html#l00135">135</a> of file <a class="el" href="a00227_source.html">problem.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a9ce2fc49c64c0067e9e6c210bbcd1ce9"></a><!-- doxytag: member="frepple::Problem::str" ref="a9ce2fc49c64c0067e9e6c210bbcd1ce9" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PyObject* frepple::Problem::str </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Default str method. <br/>
 Subclasses are expected to implement an override if the type supports conversion to a string. </p>

<p>Reimplemented from <a class="el" href="a00151.html#a5107e1ef282ff7f6b4e9cd47e74bb069">frepple::utils::PythonExtensionBase</a>.</p>

<p>Definition at line <a class="el" href="a00218_source.html#l00926">926</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8a88411ea52743d1d78ed68ed06e9507"></a><!-- doxytag: member="frepple::Problem::writeElement" ref="a8a88411ea52743d1d78ed68ed06e9507" args="(XMLOutput *, const Keyword &amp;, mode=DEFAULT) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::Problem::writeElement </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00189.html">XMLOutput</a> *&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00096.html">Keyword</a> &amp;&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00257.html#a20c2c7e4c6b668e71c154ae3eb18f398">mode</a>&nbsp;</td>
          <td class="paramname"> = <code>DEFAULT</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Called while writing the model into an XML-file. The user class should write itself out, using the IOutStream members for its "simple" members and calling writeElement recursively for any contained objects. Not all classes are expected to implement this method. In instances of such a class can be created but can't be persisted. E.g. Command </p>

<p>Reimplemented from <a class="el" href="a00120.html#a324e43c334cb519909fcbdad0f8cbd82">frepple::utils::Object</a>.</p>

<p>Definition at line <a class="el" href="a00227_source.html#l00286">286</a> of file <a class="el" href="a00227_source.html">problem.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="ab40e26683cdfa2c097fb04648ddea01e"></a><!-- doxytag: member="frepple::Problem::writer" ref="ab40e26683cdfa2c097fb04648ddea01e" args="(const MetaCategory *, XMLOutput *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::Problem::writer </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00114.html">MetaCategory</a> *&nbsp;</td>
          <td class="paramname"> <em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00189.html">XMLOutput</a> *&nbsp;</td>
          <td class="paramname"> <em>o</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00227_source.html#l00270">270</a> of file <a class="el" href="a00227_source.html">problem.cpp</a>.</p>

</div>
</div>
<hr/><h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="ac220ce1c155db1ac44146c12d178056f"></a><!-- doxytag: member="frepple::Problem::const_iterator" ref="ac220ce1c155db1ac44146c12d178056f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="a00039.html">const_iterator</a><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00218_source.html#l00877">877</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8cee552d09eaeb60a09d95309a87b498"></a><!-- doxytag: member="frepple::Problem::List" ref="a8cee552d09eaeb60a09d95309a87b498" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="a00100.html">List</a><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00218_source.html#l00879">879</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a9e707be88274a5c5d7bc4c71f2ea1338"></a><!-- doxytag: member="frepple::Problem::metadata" ref="a9e707be88274a5c5d7bc4c71f2ea1338" 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="a00134.html#a9e707be88274a5c5d7bc4c71f2ea1338">frepple::Problem::metadata</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Storing metadata on this class. </p>

<p>Reimplemented in <a class="el" href="a00135.html#aa55a9bf686195db07c0fa8723c2479f2">frepple::ProblemBeforeCurrent</a>, <a class="el" href="a00136.html#abd86b7cbefa986340a2b6d80c9aeab17">frepple::ProblemBeforeFence</a>, <a class="el" href="a00147.html#af89b5d820370b17b6b6733617c51de81">frepple::ProblemPrecedence</a>, <a class="el" href="a00139.html#a3380f2e8ec96f239a3712dc1b93c4282">frepple::ProblemDemandNotPlanned</a>, <a class="el" href="a00144.html#a33185ea2e94702f670e163c3f5de6b1e">frepple::ProblemLate</a>, <a class="el" href="a00140.html#abf3dfbf6f5b6e0880e76feb008872728">frepple::ProblemEarly</a>, <a class="el" href="a00142.html#a5d8c463f13053c0527013927e8b737ee">frepple::ProblemInvalidData</a>, <a class="el" href="a00148.html#a0a9c872d51817d6a7cf8736e5ad3aaf9">frepple::ProblemShort</a>, <a class="el" href="a00141.html#a4e6592a41b83e966a3a8df59b44a27e4">frepple::ProblemExcess</a>, <a class="el" href="a00137.html#ae943a0ede255ced55bc8ac355c50fff6">frepple::ProblemCapacityOverload</a>, <a class="el" href="a00138.html#a06ab88f4c56687c0697b6609e196dff8">frepple::ProblemCapacityUnderload</a>, <a class="el" href="a00146.html#aabbcfbf928d9353d5be6097a1d05942c">frepple::ProblemMaterialShortage</a>, and <a class="el" href="a00145.html#ac6f6be43c695f9298f4ac95292906319">frepple::ProblemMaterialExcess</a>.</p>

<p>Definition at line <a class="el" href="a00218_source.html#l00965">965</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad638c0a23c7a37fa2b3e0463d837e1e0"></a><!-- doxytag: member="frepple::Problem::nextProblem" ref="ad638c0a23c7a37fa2b3e0463d837e1e0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00134.html">Problem</a>* <a class="el" href="a00134.html#ad638c0a23c7a37fa2b3e0463d837e1e0">frepple::Problem::nextProblem</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Each <a class="el" href="a00134.html" title="A problem represents infeasibilities, alerts and warnings in the plan.">Problem</a> contains a pointer to the next pointer for the same owner. This class implements thus an intrusive single linked list of <a class="el" href="a00134.html" title="A problem represents infeasibilities, alerts and warnings in the plan.">Problem</a> objects. </p>

<p>Definition at line <a class="el" href="a00218_source.html#l00974">974</a> of file <a class="el" href="a00218_source.html">model.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1f4c26a4eff13faa79d88287beb204c2"></a><!-- doxytag: member="frepple::Problem::owner" ref="a1f4c26a4eff13faa79d88287beb204c2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00086.html">HasProblems</a>* <a class="el" href="a00134.html#a1f4c26a4eff13faa79d88287beb204c2">frepple::Problem::owner</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Each <a class="el" href="a00134.html" title="A problem represents infeasibilities, alerts and warnings in the plan.">Problem</a> object references a HasProblem object as its owner. </p>

<p>Definition at line <a class="el" href="a00218_source.html#l00969">969</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="a00227_source.html">problem.cpp</a></li>
</ul>
</div>
<hr size="1"/><address style="align: right;"><small>Documentation generated for frePPLe by&nbsp;
<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>