diff options
Diffstat (limited to '')
-rw-r--r-- | docs/doxygen/nel/a02825.html | 1599 |
1 files changed, 1599 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02825.html b/docs/doxygen/nel/a02825.html new file mode 100644 index 00000000..060c978c --- /dev/null +++ b/docs/doxygen/nel/a02825.html @@ -0,0 +1,1599 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> +<title>NeL: NLLOGIC::CLogicStateMachine class Reference</title> +<link href="doxygen.css" rel="stylesheet" type="text/css"> +</head><body> +<!-- Generated by Doxygen 1.3.6 --> +<div class="qindex"> <form class="search" action="search.php" method="get"> +<a class="qindex" href="main.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a> | <span class="search"><u>S</u>earch for <input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div> +<h1>NLLOGIC::CLogicStateMachine Class Reference</h1><code>#include <<a class="el" href="a05955.html">logic_state_machine.h</a>></code> +<p> +<hr><a name="_details"></a><h2>Detailed Description</h2> +<a class="el" href="a02825.html">CLogicStateMachine</a><p> +<dl compact><dt><b>Author:</b></dt><dd>Stephane Coutelas <p> +Nevrax France </dd></dl> +<dl compact><dt><b>Date:</b></dt><dd>2001 </dd></dl> + +<p> + +<p> +Definition at line <a class="el" href="a05955.html#l00056">56</a> of file <a class="el" href="a05955.html">logic_state_machine.h</a>.<table border=0 cellpadding=0 cellspacing=0> +<tr><td></td></tr> +<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea0">addCondition</a> (<a class="el" href="a02816.html">CLogicCondition</a> <a class="el" href="a04223.html#a584">condition</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea1">addCounter</a> (<a class="el" href="a02819.html">CLogicCounter</a> counter)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea2">addSIdMap</a> (const <a class="el" href="a05376.html#a0">TSIdMap</a> &sIdMap)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea3">addState</a> (<a class="el" href="a02824.html">CLogicState</a> logicState)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea4">addVariable</a> (<a class="el" href="a02820.html">CLogicVariable</a> var)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea5">CLogicStateMachine</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea6">displayStates</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea7">displayVariables</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea8">getCondition</a> (const std::string &condName, <a class="el" href="a02816.html">CLogicCondition</a> &cond)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const std::map< std::string,<br> + <a class="el" href="a02816.html">CLogicCondition</a> > & </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea9">getConditions</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const std::map< std::string,<br> + <a class="el" href="a02819.html">CLogicCounter</a> > & </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea10">getCounters</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea11">getMessagesToSend</a> (std::multimap< <a class="el" href="a02189.html">NLMISC::CEntityId</a>, <a class="el" href="a02918.html">NLNET::CMessage</a> > &msgs)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>std::string </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea12">getName</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea13">getSelfAddressedMessages</a> (std::list< <a class="el" href="a02918.html">NLNET::CMessage</a> > &msgs)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const std::map< std::string,<br> + <a class="el" href="a02824.html">CLogicState</a> > & </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea14">getStates</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea15">getVariable</a> (std::string &varName, <a class="el" href="a02820.html">CLogicVariable</a> &var)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const std::map< std::string,<br> + <a class="el" href="a02820.html">CLogicVariable</a> > & </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea16">getVariables</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea17">modifyVariable</a> (std::string varName, std::string modifOperator, <a class="el" href="a04558.html#a12">sint64</a> <a class="el" href="a04223.html#a658">value</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea18">processLogic</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea19">read</a> (xmlNodePtr node)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea20">setCurrentState</a> (std::string stateName)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea21">setName</a> (const std::string &name)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea22">setVerbose</a> (std::string varName, bool b)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea23">write</a> (xmlDocPtr doc) const </td></tr> + +<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::map< std::string, <a class="el" href="a02816.html">CLogicCondition</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner0">_Conditions</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">conditions used in this state machine <a href="#NLLOGIC_1_1CLogicStateMachiner0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::map< std::string, <a class="el" href="a02819.html">CLogicCounter</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner1">_Counters</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">counters <a href="#NLLOGIC_1_1CLogicStateMachiner1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::string </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner2">_CurrentState</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">name of the current state <a href="#NLLOGIC_1_1CLogicStateMachiner2"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::string </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner3">_Name</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">name of this sate machine <a href="#NLLOGIC_1_1CLogicStateMachiner3"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::map< std::string, <a class="el" href="a02824.html">CLogicState</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">_States</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">states <a href="#NLLOGIC_1_1CLogicStateMachiner4"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::map< std::string, <a class="el" href="a02820.html">CLogicVariable</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner5">_Variables</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">variables <a href="#NLLOGIC_1_1CLogicStateMachiner5"></a><br><br></td></tr> +</table> +<hr><h2>Constructor & Destructor Documentation</h2> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea5" doxytag="NLLOGIC::CLogicStateMachine::CLogicStateMachine" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> NLLOGIC::CLogicStateMachine::CLogicStateMachine </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Default constructor +<p> +Definition at line <a class="el" href="a05955.html#l00087">87</a> of file <a class="el" href="a05955.html">logic_state_machine.h</a>. +<p> +<div class="fragment"><pre>00087 { <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner3">_Name</a> = <span class="stringliteral">"no_name"</span>; } +</pre></div> </td> + </tr> +</table> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea0" doxytag="NLLOGIC::CLogicStateMachine::addCondition" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLLOGIC::CLogicStateMachine::addCondition </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02816.html">CLogicCondition</a> </td> + <td class="mdname1" valign="top" nowrap> <em>condition</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Add a condition in the state machine<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>condition</em> </td><td>is the new condition to add in this state machine</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a05954.html#l00124">124</a> of file <a class="el" href="a05954.html">logic_state_machine.cpp</a>. +<p> +References <a class="el" href="a05955.html#l00065">_Conditions</a>, and <a class="el" href="a05646.html#l00405">condition</a>. +<p> +<div class="fragment"><pre>00125 { +00126 <a class="code" href="a04223.html#a584">condition</a>.setLogicStateMachine(<span class="keyword">this</span>); +00127 <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner0">_Conditions</a>.insert(make_pair(<a class="code" href="a04223.html#a584">condition</a>.getName(),<a class="code" href="a04223.html#a584">condition</a>)); +00128 +00129 } <span class="comment">// addCondition //</span> +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea1" doxytag="NLLOGIC::CLogicStateMachine::addCounter" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLLOGIC::CLogicStateMachine::addCounter </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02819.html">CLogicCounter</a> </td> + <td class="mdname1" valign="top" nowrap> <em>counter</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Add a counter in the state machine<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>counter</em> </td><td>is the new counter to add in this state machine</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a05955.html#l00150">150</a> of file <a class="el" href="a05955.html">logic_state_machine.h</a>. +<p> +References <a class="el" href="a05955.html#l00062">_Counters</a>, and <a class="el" href="a05957.html#l00076">NLLOGIC::CLogicVariable::getName()</a>. +<p> +<div class="fragment"><pre>00150 { <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner1">_Counters</a>.insert( std::make_pair(counter.getName(),counter) ); } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea2" doxytag="NLLOGIC::CLogicStateMachine::addSIdMap" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLLOGIC::CLogicStateMachine::addSIdMap </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a05376.html#a0">TSIdMap</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>sIdMap</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +call the <a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea2">addSIdMap()</a> method for each sate machines<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>sIdMap</em> </td><td>is the map associating destination name with a destination id</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a05954.html#l00151">151</a> of file <a class="el" href="a05954.html">logic_state_machine.cpp</a>. +<p> +References <a class="el" href="a05953.html#l00047">NLLOGIC::TSIdMap</a>. +<p> +<div class="fragment"><pre>00152 { +00153 <span class="comment">// call addSIdMap for each state</span> +00154 map<string,CLogicState>::iterator itStates; +00155 <span class="keywordflow">for</span>( itStates = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">_States</a>.begin(); itStates != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">_States</a>.end(); ++itStates ) +00156 { +00157 (*itStates).second.addSIdMap( sIdMap ); +00158 } +00159 +00160 } <span class="comment">// addSIdMap //</span> +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea3" doxytag="NLLOGIC::CLogicStateMachine::addState" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLLOGIC::CLogicStateMachine::addState </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02824.html">CLogicState</a> </td> + <td class="mdname1" valign="top" nowrap> <em>logicState</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Add a state to the state machine<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>state</em> </td><td>is the new state to add in this state machine</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a05954.html#l00137">137</a> of file <a class="el" href="a05954.html">logic_state_machine.cpp</a>. +<p> +References <a class="el" href="a05953.html#l00104">NLLOGIC::CLogicState::getName()</a>, and <a class="el" href="a05952.html#l00054">NLLOGIC::CLogicState::setLogicStateMachine()</a>. +<p> +<div class="fragment"><pre>00138 { +00139 logicState.setLogicStateMachine( <span class="keyword">this</span> ); +00140 <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">_States</a>.insert( std::make_pair(logicState.getName(),logicState) ); +00141 +00142 } <span class="comment">// addState //</span> +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea4" doxytag="NLLOGIC::CLogicStateMachine::addVariable" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLLOGIC::CLogicStateMachine::addVariable </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02820.html">CLogicVariable</a> </td> + <td class="mdname1" valign="top" nowrap> <em>var</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Add a variable in the state machine<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>var</em> </td><td>is the new variable to add in this state machine</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a05955.html#l00134">134</a> of file <a class="el" href="a05955.html">logic_state_machine.h</a>. +<p> +References <a class="el" href="a05955.html#l00059">_Variables</a>, and <a class="el" href="a05957.html#l00076">NLLOGIC::CLogicVariable::getName()</a>. +<p> +<div class="fragment"><pre>00134 { <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner5">_Variables</a>.insert( std::make_pair(var.getName(),var) ); } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea6" doxytag="NLLOGIC::CLogicStateMachine::displayStates" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLLOGIC::CLogicStateMachine::displayStates </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Display the states +<p> +Definition at line <a class="el" href="a05954.html#l00381">381</a> of file <a class="el" href="a05954.html">logic_state_machine.cpp</a>. +<p> +References <a class="el" href="a05622.html#l00111">nlinfo</a>. +<p> +<div class="fragment"><pre>00382 { +00383 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"There are %d STATES in the state machine \"%s\": "</span>,<a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">_States</a>.size(),<a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner3">_Name</a>.c_str()); +00384 map<string, CLogicState>::const_iterator itS; +00385 <span class="keywordflow">for</span>( itS = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">_States</a>.begin(); itS != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">_States</a>.end(); ++itS ) +00386 { +00387 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"%s"</span>,(*itS).first.c_str()); +00388 } +00389 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"The current state is : \"%s\""</span>,<a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner2">_CurrentState</a>.c_str()); +00390 +00391 } <span class="comment">// displayStates //</span> +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea7" doxytag="NLLOGIC::CLogicStateMachine::displayVariables" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLLOGIC::CLogicStateMachine::displayVariables </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Display the variables +<p> +Definition at line <a class="el" href="a05954.html#l00316">316</a> of file <a class="el" href="a05954.html">logic_state_machine.cpp</a>. +<p> +References <a class="el" href="a05955.html#l00059">_Variables</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05673.html#l00251">NLMISC::CEntityId::setCreatorId()</a>, <a class="el" href="a05673.html#l00239">NLMISC::CEntityId::setDynamicId()</a>, <a class="el" href="a05673.html#l00263">NLMISC::CEntityId::setType()</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +<div class="fragment"><pre>00317 { +00318 multimap<CEntityId,string> allVariables; +00319 +00320 <span class="comment">// // get vars referenced in the states</span> +00321 map<string, CLogicState>::iterator itS; +00322 <span class="keywordflow">for</span>( itS = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">_States</a>.begin(); itS != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">_States</a>.end(); ++itS ) +00323 { +00324 (*itS).second.fillVarMap( allVariables ); +00325 } +00326 +00327 <span class="comment">// extract the unclaimed variables from all the variables</span> +00328 vector<string> unclaimedVariables; +00329 <a class="code" href="a02189.html">CEntityId</a> unknown; +00330 unknown.<a class="code" href="a02189.html#NLAIAGENT_1_1CIdenta29">setType</a>( 0xfe ); +00331 unknown.<a class="code" href="a02189.html#NLAIAGENT_1_1CIdenta26">setCreatorId</a>( 0 ); +00332 unknown.<a class="code" href="a02189.html#NLAIAGENT_1_1CIdenta27">setDynamicId</a>( 0 ); +00333 pair<multimap<CEntityId,string>::iterator,multimap<CEntityId,string>::iterator> itVarsRng = allVariables.equal_range(unknown); +00334 multimap<CEntityId,string>::iterator itVars; +00335 +00336 <span class="keywordflow">for</span>( itVars = itVarsRng.first; itVars != itVarsRng.second; ) +00337 { +00338 multimap<CEntityId,string>::iterator itDel = itVars++; +00339 unclaimedVariables.push_back( (*itDel).second ); +00340 allVariables.erase( itDel ); +00341 } +00342 <span class="comment">/*</span> +00343 <span class="comment"> if( itVarsRng.first != allVariables.end() )</span> +00344 <span class="comment"> {</span> +00345 <span class="comment"> itVars = itVarsRng.first;</span> +00346 <span class="comment"> do</span> +00347 <span class="comment"> {</span> +00348 <span class="comment"> multimap<CEntityId,string>::iterator itDel = itVars++;</span> +00349 <span class="comment"> unclaimedVariables.push_back( (*itDel).second );</span> +00350 <span class="comment"> allVariables.erase( itDel );</span> +00351 <span class="comment"> }</span> +00352 <span class="comment"> while( itVars != itVarsRng.second );</span> +00353 <span class="comment"> }</span> +00354 <span class="comment"> */</span> +00355 +00356 +00357 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"VARIABLES/COUNTERS in %s : %d/%d are registered : "</span>,<a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner3">_Name</a>.c_str(),allVariables.size(),allVariables.size()+unclaimedVariables.size()); +00358 <span class="comment">// display the registered variables</span> +00359 <span class="keywordflow">for</span>( itVars = allVariables.begin(); itVars != allVariables.end(); ++itVars ) +00360 { +00361 map<string, CLogicVariable>::const_iterator itV = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner5">_Variables</a>.find( (*itVars).second ); +00362 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"[%d] %s = %f"</span>,(<a class="code" href="a04558.html#a7">uint8</a>)(*itVars).first.getDynamicId(),(*itV).first.c_str(),(<span class="keywordtype">double</span>)(*itV).second.getValue()); +00363 } +00364 +00365 <span class="comment">// display the unclaimed variables</span> +00366 sort( unclaimedVariables.begin(), unclaimedVariables.end() ); +00367 vector<string>::iterator itUV; +00368 <span class="keywordflow">for</span>( itUV = unclaimedVariables.begin(); itUV != unclaimedVariables.end(); ++itUV ) +00369 { +00370 map<string, CLogicVariable>::const_iterator itV = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner5">_Variables</a>.find( *itUV ); +00371 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"(-)%s = %f"</span>,(*itV).first.c_str(),(<span class="keywordtype">double</span>)(*itV).second.getValue()); +00372 } +00373 +00374 } <span class="comment">// displayVariables //</span> +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea8" doxytag="NLLOGIC::CLogicStateMachine::getCondition" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NLLOGIC::CLogicStateMachine::getCondition </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::string & </td> + <td class="mdname" nowrap> <em>condName</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02816.html">CLogicCondition</a> & </td> + <td class="mdname" nowrap> <em>cond</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the condition<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>condName</em> </td><td>is the name of the condition to get </td></tr> + <tr><td valign=top><em>cond</em> </td><td>is the condition to get </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>true if the condition has been found, false if not</dd></dl> + +<p> +Definition at line <a class="el" href="a05954.html#l00233">233</a> of file <a class="el" href="a05954.html">logic_state_machine.cpp</a>. +<p> +References <a class="el" href="a05955.html#l00065">_Conditions</a>. +<p> +Referenced by <a class="el" href="a05952.html#l00315">NLLOGIC::CLogicState::fillVarMap()</a>, <a class="el" href="a05946.html#l00193">NLLOGIC::CLogicConditionLogicBlock::fillVarSet()</a>, <a class="el" href="a05948.html#l00195">NLLOGIC::CLogicEvent::testCondition()</a>, and <a class="el" href="a05946.html#l00148">NLLOGIC::CLogicConditionLogicBlock::testLogic()</a>. +<p> +<div class="fragment"><pre>00234 { +00235 map<string,CLogicCondition>::iterator itCond = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner0">_Conditions</a>.find( condName ); +00236 <span class="keywordflow">if</span>( itCond != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner0">_Conditions</a>.end() ) +00237 { +00238 cond = (*itCond).second; +00239 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00240 } +00241 <span class="keywordflow">else</span> +00242 { +00243 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00244 } +00245 +00246 } <span class="comment">// getCondition //</span> +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea9" doxytag="NLLOGIC::CLogicStateMachine::getConditions" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> const std::map<std::string, <a class="el" href="a02816.html">CLogicCondition</a>>& NLLOGIC::CLogicStateMachine::getConditions </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05955.html#l00080">80</a> of file <a class="el" href="a05955.html">logic_state_machine.h</a>. +<p> +References <a class="el" href="a05955.html#l00065">_Conditions</a>. +<p> +<div class="fragment"><pre>00080 { <span class="keywordflow">return</span> <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner0">_Conditions</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea10" doxytag="NLLOGIC::CLogicStateMachine::getCounters" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> const std::map<std::string, <a class="el" href="a02819.html">CLogicCounter</a>>& NLLOGIC::CLogicStateMachine::getCounters </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05955.html#l00079">79</a> of file <a class="el" href="a05955.html">logic_state_machine.h</a>. +<p> +References <a class="el" href="a05955.html#l00062">_Counters</a>. +<p> +<div class="fragment"><pre>00079 { <span class="keywordflow">return</span> <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner1">_Counters</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea11" doxytag="NLLOGIC::CLogicStateMachine::getMessagesToSend" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLLOGIC::CLogicStateMachine::getMessagesToSend </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::multimap< <a class="el" href="a02189.html">NLMISC::CEntityId</a>, <a class="el" href="a02918.html">NLNET::CMessage</a> > & </td> + <td class="mdname1" valign="top" nowrap> <em>msgs</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the messages to send<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>msgs</em> </td><td>is the list used to store the messages to send</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a05954.html#l00190">190</a> of file <a class="el" href="a05954.html">logic_state_machine.cpp</a>. +<p> +<div class="fragment"><pre>00191 { +00192 map<std::string, CLogicState>::iterator itState; +00193 <span class="keywordflow">for</span>( itState = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">_States</a>.begin(); itState != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">_States</a>.end(); ++itState ) +00194 { +00195 (*itState).second.getMessagesToSend( msgs ); +00196 } +00197 +00198 } <span class="comment">// getMessagesToSend //</span> +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea12" doxytag="NLLOGIC::CLogicStateMachine::getName" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> std::string NLLOGIC::CLogicStateMachine::getName </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the state machine name<p> +<dl compact><dt><b>Returns:</b></dt><dd>the name of this state machine</dd></dl> + +<p> +Definition at line <a class="el" href="a05955.html#l00101">101</a> of file <a class="el" href="a05955.html">logic_state_machine.h</a>. +<p> +Referenced by <a class="el" href="a05946.html#l00148">NLLOGIC::CLogicConditionLogicBlock::testLogic()</a>. +<p> +<div class="fragment"><pre>00101 { <span class="keywordflow">return</span> <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner3">_Name</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea13" doxytag="NLLOGIC::CLogicStateMachine::getSelfAddressedMessages" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLLOGIC::CLogicStateMachine::getSelfAddressedMessages </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::list< <a class="el" href="a02918.html">NLNET::CMessage</a> > & </td> + <td class="mdname1" valign="top" nowrap> <em>msgs</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the self-addressed message<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>msgs</em> </td><td>is the list used to store the self-addressed messages</td></tr> + </table> +</dl> + </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea14" doxytag="NLLOGIC::CLogicStateMachine::getStates" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> const std::map<std::string, <a class="el" href="a02824.html">CLogicState</a>>& NLLOGIC::CLogicStateMachine::getStates </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05955.html#l00081">81</a> of file <a class="el" href="a05955.html">logic_state_machine.h</a>. +<p> +<div class="fragment"><pre>00081 { <span class="keywordflow">return</span> <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">_States</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea15" doxytag="NLLOGIC::CLogicStateMachine::getVariable" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NLLOGIC::CLogicStateMachine::getVariable </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::string & </td> + <td class="mdname" nowrap> <em>varName</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02820.html">CLogicVariable</a> & </td> + <td class="mdname" nowrap> <em>var</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the variable<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>varName</em> </td><td>is the name of the variable to get </td></tr> + <tr><td valign=top><em>var</em> </td><td>is the variable to get </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>true if the variable has been found, false if not</dd></dl> + +<p> +Definition at line <a class="el" href="a05954.html#l00207">207</a> of file <a class="el" href="a05954.html">logic_state_machine.cpp</a>. +<p> +References <a class="el" href="a05955.html#l00062">_Counters</a>, and <a class="el" href="a05955.html#l00059">_Variables</a>. +<p> +Referenced by <a class="el" href="a05946.html#l00061">NLLOGIC::CLogicComparisonBlock::testLogic()</a>. +<p> +<div class="fragment"><pre>00208 { +00209 map<string,CLogicVariable>::iterator itVar = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner5">_Variables</a>.find( varName ); +00210 <span class="keywordflow">if</span>( itVar != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner5">_Variables</a>.end() ) +00211 { +00212 var = (*itVar).second; +00213 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00214 } +00215 +00216 map<string,CLogicCounter>::iterator itCount = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner1">_Counters</a>.find( varName ); +00217 <span class="keywordflow">if</span>( itCount != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner1">_Counters</a>.end() ) +00218 { +00219 var = (*itCount).second; +00220 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00221 } +00222 +00223 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00224 +00225 } <span class="comment">// getVariable //</span> +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea16" doxytag="NLLOGIC::CLogicStateMachine::getVariables" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> const std::map<std::string, <a class="el" href="a02820.html">CLogicVariable</a>>& NLLOGIC::CLogicStateMachine::getVariables </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05955.html#l00078">78</a> of file <a class="el" href="a05955.html">logic_state_machine.h</a>. +<p> +References <a class="el" href="a05955.html#l00059">_Variables</a>. +<p> +<div class="fragment"><pre>00078 { <span class="keywordflow">return</span> <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner5">_Variables</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea17" doxytag="NLLOGIC::CLogicStateMachine::modifyVariable" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLLOGIC::CLogicStateMachine::modifyVariable </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::string </td> + <td class="mdname" nowrap> <em>varName</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>std::string </td> + <td class="mdname" nowrap> <em>modifOperator</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a12">sint64</a> </td> + <td class="mdname" nowrap> <em>value</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +modify a variable<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>varName</em> </td><td>is the name of the variable to modify </td></tr> + <tr><td valign=top><em>modifOperator</em> </td><td>can be one of these operators :"SET"("set"),"ADD"("add"),"SUB"("sub"),"MUL"("mul"),"DIV"("div") </td></tr> + <tr><td valign=top><em>value</em> </td><td>is the value to use along with the modificator</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a05954.html#l00253">253</a> of file <a class="el" href="a05954.html">logic_state_machine.cpp</a>. +<p> +References <a class="el" href="a05955.html#l00062">_Counters</a>, <a class="el" href="a05955.html#l00059">_Variables</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05981.html#l00101">sint64</a>, and <a class="el" href="a05646.html#l01132">value</a>. +<p> +<div class="fragment"><pre>00254 { +00255 map<string,CLogicVariable>::iterator itVar = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner5">_Variables</a>.find( varName ); +00256 <span class="keywordflow">if</span>( itVar != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner5">_Variables</a>.end() ) +00257 { +00258 (*itVar).second.applyModification( modifOperator, value ); +00259 <span class="keywordflow">return</span>; +00260 } +00261 map<string,CLogicCounter>::iterator itCount = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner1">_Counters</a>.find( varName ); +00262 <span class="keywordflow">if</span>( itCount != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner1">_Counters</a>.end() ) +00263 { +00264 (*itCount).second.applyModification( modifOperator, value ); +00265 <span class="keywordflow">return</span>; +00266 } +00267 +00268 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"(LOGIC)<CLogicStateMachine::modifyVariable> The variable \"%s\" is not in the state machine \"%s\""</span>,varName.c_str(),<a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner3">_Name</a>.c_str()); +00269 +00270 } <span class="comment">// modifyVariable //</span> +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea18" doxytag="NLLOGIC::CLogicStateMachine::processLogic" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLLOGIC::CLogicStateMachine::processLogic </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +call the processLogic method for each sate machines +<p> +Definition at line <a class="el" href="a05954.html#l00168">168</a> of file <a class="el" href="a05954.html">logic_state_machine.cpp</a>. +<p> +References <a class="el" href="a05955.html#l00062">_Counters</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +<div class="fragment"><pre>00169 { +00170 <span class="comment">// call processLogic for the current state</span> +00171 map<string,CLogicState>::iterator itStates = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">_States</a>.find( _CurrentState ); +00172 <a class="code" href="a04199.html#a6">nlassert</a>( itStates != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">_States</a>.end() ); +00173 (*itStates).second.processLogic(); +00174 +00175 <span class="comment">// update the counters</span> +00176 map<string,CLogicCounter>::iterator itCount; +00177 <span class="keywordflow">for</span>( itCount = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner1">_Counters</a>.begin(); itCount != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner1">_Counters</a>.end(); ++itCount ) +00178 { +00179 (*itCount).second.update(); +00180 } +00181 +00182 } <span class="comment">// processLogic //</span> +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea19" doxytag="NLLOGIC::CLogicStateMachine::read" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLLOGIC::CLogicStateMachine::read </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">xmlNodePtr </td> + <td class="mdname1" valign="top" nowrap> <em>node</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05954.html#l00571">571</a> of file <a class="el" href="a05954.html">logic_state_machine.cpp</a>. +<p> +References <a class="el" href="a05955.html#l00065">_Conditions</a>, <a class="el" href="a05955.html#l00062">_Counters</a>, <a class="el" href="a05955.html#l00059">_Variables</a>, <a class="el" href="a05954.html#l00072">NLLOGIC::getXMLProp()</a>, <a class="el" href="a05954.html#l00098">setCurrentState()</a>, <a class="el" href="a05955.html#l00094">setName()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05646.html#l00237">v</a>, and <a class="el" href="a05954.html#l00042">NLLOGIC::xmlCheckNodeName()</a>. +<p> +<div class="fragment"><pre>00572 { +00573 <a class="code" href="a05376.html#a2">xmlCheckNodeName</a> (node, <span class="stringliteral">"STATE_MACHINE"</span>); +00574 +00575 <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea21">setName</a> (getXMLProp (node, <span class="stringliteral">"Name"</span>)); +00576 +00577 { +00578 <span class="comment">// Count the parent</span> +00579 <a class="code" href="a04558.html#a15">uint</a> nb = CIXml::countChildren (node, <span class="stringliteral">"VARIABLE"</span>); +00580 <a class="code" href="a04558.html#a15">uint</a> i = 0; +00581 xmlNodePtr parent = CIXml::getFirstChildNode (node, <span class="stringliteral">"VARIABLE"</span>); +00582 <span class="keywordflow">while</span> (i<nb) +00583 { +00584 CLogicVariable <a class="code" href="a04223.html#a576">v</a>; +00585 <a class="code" href="a04223.html#a576">v</a>.read(parent); +00586 <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner5">_Variables</a>.insert (make_pair(<a class="code" href="a04223.html#a576">v</a>.getName(), <a class="code" href="a04223.html#a576">v</a>)); +00587 +00588 <span class="comment">// Next parent</span> +00589 parent = CIXml::getNextChildNode (parent, <span class="stringliteral">"VARIABLE"</span>); +00590 i++; +00591 } +00592 } +00593 +00594 { +00595 <span class="comment">// Count the parent</span> +00596 <a class="code" href="a04558.html#a15">uint</a> nb = CIXml::countChildren (node, <span class="stringliteral">"COUNTER"</span>); +00597 <a class="code" href="a04558.html#a15">uint</a> i = 0; +00598 xmlNodePtr parent = CIXml::getFirstChildNode (node, <span class="stringliteral">"COUNTER"</span>); +00599 <span class="keywordflow">while</span> (i<nb) +00600 { +00601 CLogicCounter <a class="code" href="a04223.html#a576">v</a>; +00602 <a class="code" href="a04223.html#a576">v</a>.read(parent); +00603 <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner1">_Counters</a>.insert (make_pair(<a class="code" href="a04223.html#a576">v</a>.getName(), <a class="code" href="a04223.html#a576">v</a>)); +00604 +00605 <span class="comment">// Next parent</span> +00606 parent = CIXml::getNextChildNode (parent, <span class="stringliteral">"COUNTER"</span>); +00607 i++; +00608 } +00609 } +00610 +00611 { +00612 <span class="comment">// Count the parent</span> +00613 <a class="code" href="a04558.html#a15">uint</a> nb = CIXml::countChildren (node, <span class="stringliteral">"CONDITION"</span>); +00614 <a class="code" href="a04558.html#a15">uint</a> i = 0; +00615 xmlNodePtr parent = CIXml::getFirstChildNode (node, <span class="stringliteral">"CONDITION"</span>); +00616 <span class="keywordflow">while</span> (i<nb) +00617 { +00618 CLogicCondition <a class="code" href="a04223.html#a576">v</a>; +00619 <a class="code" href="a04223.html#a576">v</a>.read(parent); +00620 <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner0">_Conditions</a>.insert (make_pair(<a class="code" href="a04223.html#a576">v</a>.getName(), <a class="code" href="a04223.html#a576">v</a>)); +00621 +00622 <span class="comment">// Next parent</span> +00623 parent = CIXml::getNextChildNode (parent, <span class="stringliteral">"CONDITION"</span>); +00624 i++; +00625 } +00626 } +00627 +00628 { +00629 <span class="comment">// Count the parent</span> +00630 <a class="code" href="a04558.html#a15">uint</a> nb = CIXml::countChildren (node, <span class="stringliteral">"STATE"</span>); +00631 <a class="code" href="a04558.html#a15">uint</a> i = 0; +00632 xmlNodePtr parent = CIXml::getFirstChildNode (node, <span class="stringliteral">"STATE"</span>); +00633 <span class="keywordflow">while</span> (i<nb) +00634 { +00635 CLogicState <a class="code" href="a04223.html#a576">v</a>; +00636 <a class="code" href="a04223.html#a576">v</a>.read(parent); +00637 <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">_States</a>.insert (make_pair(<a class="code" href="a04223.html#a576">v</a>.getName(), <a class="code" href="a04223.html#a576">v</a>)); +00638 +00639 <span class="comment">// Next parent</span> +00640 parent = CIXml::getNextChildNode (parent, <span class="stringliteral">"STATE"</span>); +00641 i++; +00642 } +00643 } +00644 +00645 <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachinea20">setCurrentState</a> (getXMLProp (node, <span class="stringliteral">"CurrentState"</span>)); +00646 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea20" doxytag="NLLOGIC::CLogicStateMachine::setCurrentState" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLLOGIC::CLogicStateMachine::setCurrentState </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::string </td> + <td class="mdname1" valign="top" nowrap> <em>stateName</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set the current state<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>stateName</em> </td><td>is the name of the state to give focus to</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a05954.html#l00098">98</a> of file <a class="el" href="a05954.html">logic_state_machine.cpp</a>. +<p> +References <a class="el" href="a05622.html#l00111">nlinfo</a>, and <a class="el" href="a05622.html#l00135">nlwarning</a>. +<p> +Referenced by <a class="el" href="a05952.html#l00148">NLLOGIC::CLogicState::processLogic()</a>, and <a class="el" href="a05954.html#l00571">read()</a>. +<p> +<div class="fragment"><pre>00099 { +00100 map<string,CLogicState>::iterator itStates = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">_States</a>.find( stateName ); +00101 <span class="keywordflow">if</span>( itStates != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">_States</a>.end() ) +00102 { +00103 (*itStates).second.exitState(); +00104 +00105 <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner2">_CurrentState</a> = stateName; +00106 +00107 (*itStates).second.enterState(); +00108 +00109 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"Switching to state \"%s\""</span>,<a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner2">_CurrentState</a>.c_str()); +00110 } +00111 <span class="keywordflow">else</span> +00112 { +00113 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"(LOGIC)<CLogicStateMachine::setCurrentState> The state \"%s\" is not in the state machine \"%s\""</span>,stateName.c_str(),<a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner3">_Name</a>.c_str()); +00114 } +00115 +00116 } <span class="comment">// setCurrentState //</span> +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea21" doxytag="NLLOGIC::CLogicStateMachine::setName" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLLOGIC::CLogicStateMachine::setName </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::string & </td> + <td class="mdname1" valign="top" nowrap> <em>name</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set the state machine name<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>name</em> </td><td>is the name of state machine</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a05955.html#l00094">94</a> of file <a class="el" href="a05955.html">logic_state_machine.h</a>. +<p> +Referenced by <a class="el" href="a05954.html#l00571">read()</a>. +<p> +<div class="fragment"><pre>00094 { <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner3">_Name</a> = name; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea22" doxytag="NLLOGIC::CLogicStateMachine::setVerbose" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLLOGIC::CLogicStateMachine::setVerbose </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::string </td> + <td class="mdname" nowrap> <em>varName</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>b</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set the verbose mode for a variable<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>varName</em> </td><td>is the name of the variable </td></tr> + <tr><td valign=top><em>b</em> </td><td>is true to activate the verbose mode, false else</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a05954.html#l00398">398</a> of file <a class="el" href="a05954.html">logic_state_machine.cpp</a>. +<p> +References <a class="el" href="a05955.html#l00062">_Counters</a>, <a class="el" href="a05955.html#l00059">_Variables</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05981.html#l00095">sint8</a>, and <a class="el" href="a05954.html#l00497">NLLOGIC::testNameWithFilter()</a>. +<p> +<div class="fragment"><pre>00399 { +00400 <span class="keywordflow">if</span>( varName == <span class="stringliteral">"all"</span> ) +00401 { +00402 map<string, CLogicVariable>::iterator itV; +00403 <span class="keywordflow">for</span>( itV = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner5">_Variables</a>.begin(); itV != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner5">_Variables</a>.end(); ++itV ) +00404 { +00405 (*itV).second.setVerbose( b ); +00406 } +00407 map<string, CLogicCounter>::iterator itC; +00408 <span class="keywordflow">for</span>( itC = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner1">_Counters</a>.begin(); itC != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner1">_Counters</a>.end(); ++itC ) +00409 { +00410 (*itC).second.setVerbose( b ); +00411 } +00412 <span class="keywordflow">if</span>(b) +00413 { +00414 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"the verbose mode has been activated for all the variables"</span>,varName.c_str()); +00415 } +00416 <span class="keywordflow">else</span> +00417 { +00418 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"the verbose mode has been desactivated for all the variables"</span>,varName.c_str()); +00419 } +00420 <span class="keywordflow">return</span>; +00421 } +00422 +00423 <a class="code" href="a04558.html#a6">sint8</a> filter = -1; +00424 string motif; +00425 <span class="comment">// *xxx* => we look for a string with xxx inside</span> +00426 <span class="keywordflow">if</span>( varName[0]==<span class="charliteral">'*'</span> && varName[varName.size()-1]==<span class="charliteral">'*'</span>) +00427 { +00428 motif = varName.substr(1,varName.size()-2); +00429 filter = 0; +00430 } +00431 <span class="keywordflow">else</span> +00432 <span class="comment">// *xxx => we look for a string with xxx at the end</span> +00433 <span class="keywordflow">if</span>( varName[0]==<span class="charliteral">'*'</span> ) +00434 { +00435 motif = varName.substr(1,varName.size()-1); +00436 filter = 1; +00437 } +00438 <span class="keywordflow">else</span> +00439 <span class="comment">// xxx* => we look for a string with xxx at the begining</span> +00440 <span class="keywordflow">if</span>( varName[varName.size()-1]==<span class="charliteral">'*'</span> ) +00441 { +00442 motif = varName.substr(0,varName.size()-1); +00443 filter = 2; +00444 } +00445 +00446 <span class="comment">// if no filter</span> +00447 <span class="keywordflow">if</span>( filter == -1 ) +00448 { +00449 map<string, CLogicVariable>::iterator itV = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner5">_Variables</a>.find( varName ); +00450 <span class="keywordflow">if</span>( itV != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner5">_Variables</a>.end() ) +00451 { +00452 (*itV).second.setVerbose( b ); +00453 } +00454 map<string, CLogicCounter>::iterator itC = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner1">_Counters</a>.find( varName ); +00455 <span class="keywordflow">if</span>( itC != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner1">_Counters</a>.end() || varName ==<span class="stringliteral">"all"</span> ) +00456 { +00457 (*itC).second.setVerbose( b ); +00458 } +00459 } +00460 <span class="comment">// if filter</span> +00461 <span class="keywordflow">else</span> +00462 { +00463 map<string, CLogicVariable>::iterator itV; +00464 <span class="keywordflow">for</span>( itV = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner5">_Variables</a>.begin(); itV != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner5">_Variables</a>.end(); ++itV ) +00465 { +00466 <span class="keywordflow">if</span>( <a class="code" href="a05376.html#a1">testNameWithFilter</a>( filter, motif,(*itV).second.getName()) ) +00467 { +00468 (*itV).second.setVerbose( b ); +00469 } +00470 } +00471 map<string, CLogicCounter>::iterator itC; +00472 <span class="keywordflow">for</span>( itC = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner1">_Counters</a>.begin(); itC != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner1">_Counters</a>.end(); ++itC ) +00473 { +00474 <span class="keywordflow">if</span>( <a class="code" href="a05376.html#a1">testNameWithFilter</a>( filter, motif,(*itC).second.getName()) ) +00475 { +00476 (*itC).second.setVerbose( b ); +00477 } +00478 } +00479 } +00480 <span class="keywordflow">if</span>(b) +00481 { +00482 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"the verbose mode for variable \"%s\" has been activated"</span>,varName.c_str()); +00483 } +00484 <span class="keywordflow">else</span> +00485 { +00486 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"the verbose mode for variable \"%s\" has been desactivated"</span>,varName.c_str()); +00487 } +00488 +00489 } <span class="comment">// setVerbose //</span> +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachinea23" doxytag="NLLOGIC::CLogicStateMachine::write" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLLOGIC::CLogicStateMachine::write </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">xmlDocPtr </td> + <td class="mdname1" valign="top" nowrap> <em>doc</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05954.html#l00542">542</a> of file <a class="el" href="a05954.html">logic_state_machine.cpp</a>. +<p> +References <a class="el" href="a05955.html#l00065">_Conditions</a>, <a class="el" href="a05955.html#l00062">_Counters</a>, and <a class="el" href="a05955.html#l00059">_Variables</a>. +<p> +<div class="fragment"><pre>00543 { +00544 <span class="comment">// Create the first node</span> +00545 xmlNodePtr node = xmlNewDocNode (doc, NULL, (<span class="keyword">const</span> xmlChar*)<span class="stringliteral">"STATE_MACHINE"</span>, NULL); +00546 xmlDocSetRootElement (doc, node); +00547 xmlSetProp (node, (<span class="keyword">const</span> xmlChar*)<span class="stringliteral">"Name"</span>, (<span class="keyword">const</span> xmlChar*)<a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner3">_Name</a>.c_str()); +00548 xmlSetProp (node, (<span class="keyword">const</span> xmlChar*)<span class="stringliteral">"CurrentState"</span>, (<span class="keyword">const</span> xmlChar*)<a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner2">_CurrentState</a>.c_str()); +00549 +00550 <span class="keywordflow">for</span> (std::map<std::string, CLogicVariable>::const_iterator vit = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner5">_Variables</a>.begin(); vit != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner5">_Variables</a>.end(); vit++) +00551 { +00552 (*vit).second.write(node); +00553 } +00554 +00555 <span class="keywordflow">for</span> (std::map<std::string, CLogicCounter>::const_iterator cit = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner1">_Counters</a>.begin(); cit != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner1">_Counters</a>.end(); cit++) +00556 { +00557 (*cit).second.write(node); +00558 } +00559 +00560 <span class="keywordflow">for</span> (std::map<std::string, CLogicCondition>::const_iterator c2it = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner0">_Conditions</a>.begin(); c2it != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner0">_Conditions</a>.end(); c2it++) +00561 { +00562 (*c2it).second.write(node); +00563 } +00564 +00565 <span class="keywordflow">for</span> (std::map<std::string, CLogicState>::const_iterator sit = <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">_States</a>.begin(); sit != <a class="code" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">_States</a>.end(); sit++) +00566 { +00567 (*sit).second.write(node); +00568 } +00569 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Field Documentation</h2> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachiner0" doxytag="NLLOGIC::CLogicStateMachine::_Conditions" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> std::map<std::string, <a class="el" href="a02816.html">CLogicCondition</a>> <a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner0">NLLOGIC::CLogicStateMachine::_Conditions</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +conditions used in this state machine +<p> + +<p> +Definition at line <a class="el" href="a05955.html#l00065">65</a> of file <a class="el" href="a05955.html">logic_state_machine.h</a>. +<p> +Referenced by <a class="el" href="a05954.html#l00124">addCondition()</a>, <a class="el" href="a05954.html#l00233">getCondition()</a>, <a class="el" href="a05955.html#l00080">getConditions()</a>, <a class="el" href="a05954.html#l00571">read()</a>, and <a class="el" href="a05954.html#l00542">write()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachiner1" doxytag="NLLOGIC::CLogicStateMachine::_Counters" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> std::map<std::string, <a class="el" href="a02819.html">CLogicCounter</a>> <a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner1">NLLOGIC::CLogicStateMachine::_Counters</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +counters +<p> + +<p> +Definition at line <a class="el" href="a05955.html#l00062">62</a> of file <a class="el" href="a05955.html">logic_state_machine.h</a>. +<p> +Referenced by <a class="el" href="a05955.html#l00150">addCounter()</a>, <a class="el" href="a05955.html#l00079">getCounters()</a>, <a class="el" href="a05954.html#l00207">getVariable()</a>, <a class="el" href="a05954.html#l00253">modifyVariable()</a>, <a class="el" href="a05954.html#l00168">processLogic()</a>, <a class="el" href="a05954.html#l00571">read()</a>, <a class="el" href="a05954.html#l00398">setVerbose()</a>, and <a class="el" href="a05954.html#l00542">write()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachiner2" doxytag="NLLOGIC::CLogicStateMachine::_CurrentState" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> std::string <a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner2">NLLOGIC::CLogicStateMachine::_CurrentState</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +name of the current state +<p> + +<p> +Definition at line <a class="el" href="a05955.html#l00071">71</a> of file <a class="el" href="a05955.html">logic_state_machine.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachiner3" doxytag="NLLOGIC::CLogicStateMachine::_Name" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> std::string <a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner3">NLLOGIC::CLogicStateMachine::_Name</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +name of this sate machine +<p> + +<p> +Definition at line <a class="el" href="a05955.html#l00074">74</a> of file <a class="el" href="a05955.html">logic_state_machine.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachiner4" doxytag="NLLOGIC::CLogicStateMachine::_States" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> std::map<std::string, <a class="el" href="a02824.html">CLogicState</a>> <a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner4">NLLOGIC::CLogicStateMachine::_States</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +states +<p> + +<p> +Definition at line <a class="el" href="a05955.html#l00068">68</a> of file <a class="el" href="a05955.html">logic_state_machine.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NLLOGIC_1_1CLogicStateMachiner5" doxytag="NLLOGIC::CLogicStateMachine::_Variables" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> std::map<std::string, <a class="el" href="a02820.html">CLogicVariable</a>> <a class="el" href="a02825.html#NLLOGIC_1_1CLogicStateMachiner5">NLLOGIC::CLogicStateMachine::_Variables</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +variables +<p> + +<p> +Definition at line <a class="el" href="a05955.html#l00059">59</a> of file <a class="el" href="a05955.html">logic_state_machine.h</a>. +<p> +Referenced by <a class="el" href="a05955.html#l00134">addVariable()</a>, <a class="el" href="a05954.html#l00316">displayVariables()</a>, <a class="el" href="a05954.html#l00207">getVariable()</a>, <a class="el" href="a05955.html#l00078">getVariables()</a>, <a class="el" href="a05954.html#l00253">modifyVariable()</a>, <a class="el" href="a05954.html#l00571">read()</a>, <a class="el" href="a05954.html#l00398">setVerbose()</a>, and <a class="el" href="a05954.html#l00542">write()</a>. </td> + </tr> +</table> +<hr>The documentation for this class was generated from the following files:<ul> +<li><a class="el" href="a05955.html">logic_state_machine.h</a><li><a class="el" href="a05954.html">logic_state_machine.cpp</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 12:54:37 2004 for NeL by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border=0 > +</a>1.3.6 </small></address> +</body> +</html> |