Sophie

Sophie

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

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::HasLevel 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="a00084.html">HasLevel</a>
  </div>
</div>
<div class="contents">
<h1>frepple::HasLevel Class Reference</h1><!-- doxytag: class="frepple::HasLevel" -->
<p>The purpose of this class is to compute the levels of all buffers, operations and resources in the model, and to categorize them in clusters.  
<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::HasLevel:</div>
<div class="dynsection">
<div class="center"><img src="a00428.png" border="0" usemap="#frepple_1_1_has_level_inherit__map" alt="Inheritance graph"/></div>
<map name="frepple_1_1_has_level_inherit__map" id="frepple_1_1_has_level_inherit__map">
<area shape="rect" id="node3" href="a00008.html" title="A buffer represents a combination of a item and location. &#160;It is the entity for keeping..." alt="" coords="187,81,285,109"/>
<area shape="rect" id="node11" href="a00121.html" title="An operation represents an activity: these consume and produce material, take time..." alt="" coords="175,258,297,286"/>
<area shape="rect" id="node23" href="a00156.html" title="This class represents a workcentre, a physical or logical representation of capacity..." alt="" coords="175,410,297,438"/>
<area shape="rect" id="node5" href="a00009.html" title="This class is the default implementation of the abstract Buffer class." alt="" coords="369,5,508,33"/>
<area shape="rect" id="node7" href="a00010.html" title="This class represents a material buffer with an infinite supply of extra material..." alt="" coords="371,55,507,83"/>
<area shape="rect" id="node9" href="a00012.html" title="This class models a buffer that is replenish by an external supplier using a reorder&#45;point..." alt="" coords="367,106,511,134"/>
<area shape="rect" id="node13" href="a00122.html" title="This class represents a choice between multiple operations. The alternates are sorted..." alt="" coords="351,157,527,185"/>
<area shape="rect" id="node15" href="a00123.html" title="Models an operation that takes a fixed amount of time, independent of the quantity..." alt="" coords="347,207,531,235"/>
<area shape="rect" id="node17" href="a00128.html" title="Represents a routing operation, i.e. an operation consisting of multiple, sequential..." alt="" coords="355,258,523,286"/>
<area shape="rect" id="node19" href="a00129.html" title="Models an operation to convert a setup on a resource." alt="" coords="360,309,517,337"/>
<area shape="rect" id="node21" href="a00130.html" title="Models an operation whose duration is the sum of a constant time, plus a cetain time..." alt="" coords="353,359,524,387"/>
<area shape="rect" id="node25" href="a00157.html" title="This class is the default implementation of the abstract Resource class." alt="" coords="357,410,520,438"/>
<area shape="rect" id="node27" href="a00158.html" title="This class represents a resource that&#39;ll never have any capacity shortage." alt="" coords="359,461,519,489"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="a00429.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">unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a1bd01594632b07953d6fa9babfa39d58">getCluster</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a44c879fcf3b6ae9193c393630e25fd13">getLevel</a> () const </td></tr>
<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a3ca2d3cc73481022456c9b8096500887">getNumberOfClusters</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a17d39a67f629050d9f47e97fb25d52f1">getNumberOfHangingClusters</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a93fd169e7f2260c640cb278cac466025">triggerLazyRecomputation</a> ()</td></tr>
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#af119eb614c625845a517eef77526a0e4">HasLevel</a> (const <a class="el" href="a00084.html">HasLevel</a> &amp;o)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#aa27720332b7cde5320446a2596ef1e61">HasLevel</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a2f891f0f1e3556877af60ac9ae413821">~HasLevel</a> ()</td></tr>
<tr><td colspan="2"><h2>Static Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#ad4ad785abe021067699241becaac1a93">computeLevels</a> ()</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>The purpose of this class is to compute the levels of all buffers, operations and resources in the model, and to categorize them in clusters. </p>
<p>Resources and buffers linked to the delivery operations of the demand are assigned level 1. buffers one level upstream have level 2, and so on...</p>
<p>A cluster is group of planning entities (buffers, resources and operations) that are linked together using loads and/or flows. Each cluster can be seen as a completely independent part of the model and the planning problem. There is no interaction possible between clusters. Clusters are helpful is multi-threading the planning problem, partial replanning of the model, etc... </p>

<p>Definition at line <a class="el" href="a00218_source.html#l01280">1280</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="aa27720332b7cde5320446a2596ef1e61"></a><!-- doxytag: member="frepple::HasLevel::HasLevel" ref="aa27720332b7cde5320446a2596ef1e61" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">frepple::HasLevel::HasLevel </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Default constructor. The initial level is -1 and basically indicates that this HasHierarchy (either <a class="el" href="a00121.html" title="An operation represents an activity: these consume and produce material, take time...">Operation</a>, <a class="el" href="a00008.html" title="A buffer represents a combination of a item and location.  It is the entity for keeping...">Buffer</a> or <a class="el" href="a00156.html" title="This class represents a workcentre, a physical or logical representation of capacity...">Resource</a>) is not being used at all... </p>

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

</div>
</div>
<a class="anchor" id="af119eb614c625845a517eef77526a0e4"></a><!-- doxytag: member="frepple::HasLevel::HasLevel" ref="af119eb614c625845a517eef77526a0e4" args="(const HasLevel &amp;o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">frepple::HasLevel::HasLevel </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00084.html">HasLevel</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>o</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Copy constructor. Since the characterictics of the new object are the same as the original, the level and cluster are also the same. No recomputation is required. </p>

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

</div>
</div>
<a class="anchor" id="a2f891f0f1e3556877af60ac9ae413821"></a><!-- doxytag: member="frepple::HasLevel::~HasLevel" ref="a2f891f0f1e3556877af60ac9ae413821" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">frepple::HasLevel::~HasLevel </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Destructor. Deleting a <a class="el" href="a00084.html" title="The purpose of this class is to compute the levels of all buffers, operations and...">HasLevel</a> object triggers recomputation of the level and cluster computation, since the network now has changed. </p>

<p>Definition at line <a class="el" href="a00218_source.html#l01333">1333</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="ad4ad785abe021067699241becaac1a93"></a><!-- doxytag: member="frepple::HasLevel::computeLevels" ref="ad4ad785abe021067699241becaac1a93" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void frepple::HasLevel::computeLevels </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function recomputes all levels in the model. It is called automatically when the getLevel or <a class="el" href="a00084.html#a1bd01594632b07953d6fa9babfa39d58">getCluster()</a> function on a <a class="el" href="a00008.html" title="A buffer represents a combination of a item and location.  It is the entity for keeping...">Buffer</a>, <a class="el" href="a00156.html" title="This class represents a workcentre, a physical or logical representation of capacity...">Resource</a> or <a class="el" href="a00121.html" title="An operation represents an activity: these consume and produce material, take time...">Operation</a> are called while the "recomputeLevels" flag is set. Right, this is an example of a 'lazy' algorithm: only compute the information when it is required. Note however that the computation is triggered over the complete model, not a subset... The runtime of the algorithm is pretty much linear with the total number of operations in the model. The cluster size also has some (limited) impact on the performance: a network with larger cluster size will take longer to analyze. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>LogicException</em>&nbsp;</td><td>Generated when there are too many clusters in your model. The maximum limit is USHRT_MAX, i.e. the greatest number that can be stored in a variable of type "unsigned short". The limit is platform dependent. On 32-bit platforms it will typically be 65535. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00209_source.html#l00048">48</a> of file <a class="el" href="a00209_source.html">leveled.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a1bd01594632b07953d6fa9babfa39d58"></a><!-- doxytag: member="frepple::HasLevel::getCluster" ref="a1bd01594632b07953d6fa9babfa39d58" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned short frepple::HasLevel::getCluster </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return the cluster number (and recompute first if required). </p>

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

</div>
</div>
<a class="anchor" id="a44c879fcf3b6ae9193c393630e25fd13"></a><!-- doxytag: member="frepple::HasLevel::getLevel" ref="a44c879fcf3b6ae9193c393630e25fd13" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">short frepple::HasLevel::getLevel </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return the level (and recompute first if required). </p>

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

</div>
</div>
<a class="anchor" id="a3ca2d3cc73481022456c9b8096500887"></a><!-- doxytag: member="frepple::HasLevel::getNumberOfClusters" ref="a3ca2d3cc73481022456c9b8096500887" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static unsigned short frepple::HasLevel::getNumberOfClusters </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the total number of clusters.<br/>
 If not up to date the recomputation will be triggered. </p>

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

</div>
</div>
<a class="anchor" id="a17d39a67f629050d9f47e97fb25d52f1"></a><!-- doxytag: member="frepple::HasLevel::getNumberOfHangingClusters" ref="a17d39a67f629050d9f47e97fb25d52f1" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static unsigned short frepple::HasLevel::getNumberOfHangingClusters </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the total number of hanging clusters. A hanging cluster is a cluster that consists of a single entity that isn't connected to any other entity.<br/>
 If not up to date the recomputation will be triggered. </p>

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

</div>
</div>
<a class="anchor" id="a93fd169e7f2260c640cb278cac466025"></a><!-- doxytag: member="frepple::HasLevel::triggerLazyRecomputation" ref="a93fd169e7f2260c640cb278cac466025" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void frepple::HasLevel::triggerLazyRecomputation </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function should be called when something is changed in the network structure. The notification sets a flag, but does not immediately trigger the recomputation. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00084.html#ad4ad785abe021067699241becaac1a93">computeLevels</a> </dd></dl>

<p>Definition at line <a class="el" href="a00218_source.html#l01394">1394</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="a00209_source.html">leveled.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>