Sophie

Sophie

distrib > Fedora > 18 > x86_64 > media > updates > by-pkgid > 45a94e45036b4f2592a7e2c3922f90c7 > files > 43

adevs-doc-2.6-4.fc18.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>adevs: adevs::Devs Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">adevs
   
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</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>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><b>adevs</b>      </li>
      <li class="navelem"><a class="el" href="classadevs_1_1Devs.html">Devs</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">adevs::Devs Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="adevs::Devs" -->
<p><code>#include &lt;<a class="el" href="adevs__models_8h_source.html">adevs_models.h</a>&gt;</code></p>

<p><a href="classadevs_1_1Devs-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac1994ac2712b2b628e90720f690061f1"></a><!-- doxytag: member="adevs::Devs::Devs" ref="ac1994ac2712b2b628e90720f690061f1" args="()" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadevs_1_1Devs.html#ac1994ac2712b2b628e90720f690061f1">Devs</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace2824629b6557f9abddb9bbcd131052"></a><!-- doxytag: member="adevs::Devs::~Devs" ref="ace2824629b6557f9abddb9bbcd131052" args="()" -->
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadevs_1_1Devs.html#ace2824629b6557f9abddb9bbcd131052">~Devs</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classadevs_1_1Network.html">Network</a>&lt; X, T &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadevs_1_1Devs.html#a560e7b6e6df1bc6db81186a97e05fff5">typeIsNetwork</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac90e35866eba6235aab47a56052217fa"></a><!-- doxytag: member="adevs::Devs::typeIsAtomic" ref="ac90e35866eba6235aab47a56052217fa" args="()" -->
virtual <a class="el" href="classadevs_1_1Atomic.html">Atomic</a>&lt; X, T &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadevs_1_1Devs.html#ac90e35866eba6235aab47a56052217fa">typeIsAtomic</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns NULL if this is not an atomic model; returns itself otherwise. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classadevs_1_1Network.html">Network</a>&lt; X, T &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadevs_1_1Devs.html#ab332e9863bda09f9f57d281b9d32ca4a">getParent</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada2abe82778acce76f75f54e5a5caac2"></a><!-- doxytag: member="adevs::Devs::getParent" ref="ada2abe82778acce76f75f54e5a5caac2" args="()" -->
<a class="el" href="classadevs_1_1Network.html">Network</a>&lt; X, T &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>getParent</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadevs_1_1Devs.html#afc67a3b478a4873f88456a1606857184">setParent</a> (<a class="el" href="classadevs_1_1Network.html">Network</a>&lt; X, T &gt; *parent)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadevs_1_1Devs.html#a42003c526efe5bb96f483878c3311a54">model_transition</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadevs_1_1Devs.html#a9ab1eff1b8f0ee9cccfc01dda401a24f">lookahead</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadevs_1_1Devs.html#a88096e5a06f7dce037c8ef7ebf28bdf5">setProc</a> (int proc)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadevs_1_1Devs.html#a6f9baf192532374f4c3ecd158dd6dd09">getProc</a> ()</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>The <a class="el" href="classadevs_1_1Devs.html">Devs</a> class provides basic operations for all devs models. The model I/O type is set by the template argument X. The type to be used for time is set with the template argument T. The default type for time is double. </p>
</div><hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ab332e9863bda09f9f57d281b9d32ca4a"></a><!-- doxytag: member="adevs::Devs::getParent" ref="ab332e9863bda09f9f57d281b9d32ca4a" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classadevs_1_1Network.html">Network</a>&lt;X,T&gt;* adevs::Devs::getParent </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get the model that contains this model as a component. Returns NULL if this model is at the top of the hierarchy. </p>

</div>
</div>
<a class="anchor" id="a6f9baf192532374f4c3ecd158dd6dd09"></a><!-- doxytag: member="adevs::Devs::getProc" ref="a6f9baf192532374f4c3ecd158dd6dd09" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int adevs::Devs::getProc </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get the processor assignment for this model. A negative number is returned if no assignment was made. </p>

</div>
</div>
<a class="anchor" id="a9ab1eff1b8f0ee9cccfc01dda401a24f"></a><!-- doxytag: member="adevs::Devs::lookahead" ref="a9ab1eff1b8f0ee9cccfc01dda401a24f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual T adevs::Devs::lookahead </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This method should return the model's lookahead, which is used by the parallel simulator to detect opportunities for parallel execution. The lookahead of a model (network or atomic) is the time into the future for which its output can be predicted without knowledge of the input to that that. This method returns zero by default. </p>

</div>
</div>
<a class="anchor" id="a42003c526efe5bb96f483878c3311a54"></a><!-- doxytag: member="adevs::Devs::model_transition" ref="a42003c526efe5bb96f483878c3311a54" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool adevs::Devs::model_transition </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is the structure transition function. It should return true if a structure change is to occur, and false otherwise. False is the default return value. This method is used by the simulator to limit the execution of potentially expensive structure changes. If the return value is true, then the parent's <a class="el" href="classadevs_1_1Devs.html#a42003c526efe5bb96f483878c3311a54">model_transition()</a> will also be evaluated. For network models, the <a class="el" href="classadevs_1_1Devs.html#a42003c526efe5bb96f483878c3311a54">model_transition()</a> function is preceded and anteceded by a call to getComponents(). The difference of these two sets is used to determine if any models were added or removed as part of the model transition. </p>

</div>
</div>
<a class="anchor" id="afc67a3b478a4873f88456a1606857184"></a><!-- doxytag: member="adevs::Devs::setParent" ref="afc67a3b478a4873f88456a1606857184" args="(Network&lt; X, T &gt; *parent)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void adevs::Devs::setParent </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classadevs_1_1Network.html">Network</a>&lt; X, T &gt; *&#160;</td>
          <td class="paramname"><em>parent</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Assign a new parent to this model. <a class="el" href="classadevs_1_1Network.html">Network</a> model's should always call this method to make themselves the parent of their components. If the parent is not set correctly, then the event routing algorithm in the simulator will fail. </p>

<p>Referenced by <a class="el" href="classadevs_1_1CellSpace.html#a3cefd9adadf43e66160cb3c985348d39">adevs::CellSpace::add()</a>, <a class="el" href="classadevs_1_1Digraph.html#ad00d20b550ce9f359017de9f26ec06b1">adevs::Digraph::add()</a>, and <a class="el" href="classadevs_1_1SimpleDigraph.html#aadd436b4b2fde287a1d71c3cec8d6154">adevs::SimpleDigraph::add()</a>.</p>

</div>
</div>
<a class="anchor" id="a88096e5a06f7dce037c8ef7ebf28bdf5"></a><!-- doxytag: member="adevs::Devs::setProc" ref="a88096e5a06f7dce037c8ef7ebf28bdf5" args="(int proc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void adevs::Devs::setProc </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>proc</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This assigns the model to a processor on the parallel computer. If this is a network model, then its assignment will override the assignment of its components. If no assignment is made, then the atomic leaves of the model (or the model itself if it is already atomic) are assigned at random. </p>

</div>
</div>
<a class="anchor" id="a560e7b6e6df1bc6db81186a97e05fff5"></a><!-- doxytag: member="adevs::Devs::typeIsNetwork" ref="a560e7b6e6df1bc6db81186a97e05fff5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classadevs_1_1Network.html">Network</a>&lt;X,T&gt;* adevs::Devs::typeIsNetwork </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns NULL if this is not a network model; returns a pointer to itself otherwise. This method is used to avoid a relatively expensive dynamic cast. </p>

<p>Reimplemented in <a class="el" href="classadevs_1_1Network.html#a4086b7e0b26181510d3b314a4281bd65">adevs::Network</a>.</p>

<p>Referenced by <a class="el" href="classadevs_1_1Simulator.html#a831541133fce9ccc045b3bf6a159331a">adevs::Simulator::computeNextState()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>/home/rotten/adevs-2.6/include/<a class="el" href="adevs__models_8h_source.html">adevs_models.h</a></li>
</ul>
</div>


<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 10 2012 18:42:49 for adevs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.5
</small></address>

</body>
</html>