From 0ea5fc66924303d1bf73ba283a383e2aadee02f2 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 20:21:34 +0200 Subject: Initial commit --- docs/doxygen/nel/logic__condition_8h-source.html | 250 +++++++++++++++++++++++ 1 file changed, 250 insertions(+) create mode 100644 docs/doxygen/nel/logic__condition_8h-source.html (limited to 'docs/doxygen/nel/logic__condition_8h-source.html') diff --git a/docs/doxygen/nel/logic__condition_8h-source.html b/docs/doxygen/nel/logic__condition_8h-source.html new file mode 100644 index 00000000..687b8da1 --- /dev/null +++ b/docs/doxygen/nel/logic__condition_8h-source.html @@ -0,0 +1,250 @@ + + + + nevrax.org : docs + + + + + + + + + + + + + + +
# Home   # nevrax.com   
+ + + + +
Nevrax
+ + + + + + + + + + +
+ + +
+ Nevrax.org
+ + + + + + + +
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
+
+ + +
+ + +
+Docs + +
+  + + + + + +
Documentation 
+ +
+Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  
+

logic_condition.h

Go to the documentation of this file.
00001 
+00007 /* Copyright, 2000 Nevrax Ltd.
+00008  *
+00009  * This file is part of NEVRAX NEL.
+00010  * NEVRAX NEL is free software; you can redistribute it and/or modify
+00011  * it under the terms of the GNU General Public License as published by
+00012  * the Free Software Foundation; either version 2, or (at your option)
+00013  * any later version.
+00014 
+00015  * NEVRAX NEL is distributed in the hope that it will be useful, but
+00016  * WITHOUT ANY WARRANTY; without even the implied warranty of
+00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+00018  * General Public License for more details.
+00019 
+00020  * You should have received a copy of the GNU General Public License
+00021  * along with NEVRAX NEL; see the file COPYING. If not, write to the
+00022  * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+00023  * MA 02111-1307, USA.
+00024  */
+00025 
+00026 #ifndef LOGIC_CONDITION_H
+00027 #define LOGIC_CONDITION_H
+00028 
+00029 #include "nel/misc/types_nl.h"
+00030 #include "nel/misc/stream.h"
+00031 
+00032 namespace NLLOGIC
+00033 {
+00034 
+00035 class CLogicStateMachine;
+00036 class CLogicConditionNode;
+00037 
+00045 class CLogicComparisonBlock
+00046 {
+00048         CLogicStateMachine * _LogicStateMachine;
+00049 
+00050 public:
+00051 
+00053         std::string VariableName;
+00054 
+00056         std::string Operator;
+00057         
+00059         sint64 Comparand;
+00060 
+00064         CLogicComparisonBlock()
+00065         {
+00066                 _LogicStateMachine = 0;
+00067                 VariableName = "no_name";
+00068                 Operator = ">";
+00069                 Comparand = 0;
+00070         }
+00071 
+00077         void setLogicStateMachine( CLogicStateMachine * logicStateMachine );
+00078 
+00084         bool testLogic();
+00085 
+00089         void serial(class NLMISC::IStream &f) throw(NLMISC::EStream);
+00090 };
+00091 
+00092 
+00093 
+00094 
+00095 
+00103 class CLogicConditionLogicBlock
+00104 {
+00106         CLogicStateMachine * _LogicStateMachine;
+00107 
+00108 public:
+00109 
+00111         enum TLogicConditionLogicBlockType
+00112         {
+00113                 NOT = 0,
+00114                 COMPARISON,
+00115                 SUB_CONDITION,
+00116         };
+00117         
+00119         TLogicConditionLogicBlockType Type;
+00120 
+00122         std::string SubCondition;
+00123         
+00125         CLogicComparisonBlock ComparisonBlock;
+00126 
+00130         CLogicConditionLogicBlock()
+00131         {
+00132                 Type = SUB_CONDITION;
+00133                 SubCondition = "no_condition";
+00134         }
+00135 
+00141         bool isNotBlock() const { return (Type == NOT); }
+00142         
+00148         void setLogicStateMachine( CLogicStateMachine * logicStateMachine );
+00149 
+00155         bool testLogic();
+00156 
+00162         void fillVarSet( std::set<std::string>& condVars );
+00163 
+00167         void serial(class NLMISC::IStream &f) throw(NLMISC::EStream);
+00168 };
+00169 
+00170 
+00171 
+00179 class CLogicConditionNode
+00180 {
+00182         CLogicStateMachine * _LogicStateMachine;
+00183 
+00184 public:
+00185         
+00187         enum TConditionNodeType
+00188         {
+00189                 TERMINATOR = 0, 
+00190                 LOGIC_NODE
+00191         };
+00192 
+00194         TConditionNodeType Type;
+00195         
+00196         // if this node is a logical node :
+00198         CLogicConditionLogicBlock LogicBlock;
+00199 
+00201         std::vector<CLogicConditionNode *> _Nodes;
+00202         
+00206         CLogicConditionNode()
+00207         {
+00208                 _LogicStateMachine = 0;
+00209                 Type = TERMINATOR;
+00210         }
+00211 
+00217         void setLogicStateMachine( CLogicStateMachine * logicStateMachine );
+00218 
+00224         void addNode( CLogicConditionNode * node );
+00225 
+00231         bool testLogic();
+00232 
+00238         void fillVarSet( std::set<std::string>& condVars );
+00239 
+00243         void serial(class NLMISC::IStream &f) throw(NLMISC::EStream);
+00244 
+00248         ~CLogicConditionNode();
+00249 };
+00250 
+00251 
+00252 
+00253 
+00261 class CLogicCondition
+00262 {
+00264         std::string _ConditionName;
+00265                 
+00266 public:
+00267         
+00269         std::vector<CLogicConditionNode> Nodes;
+00270         
+00274         CLogicCondition()
+00275         {
+00276                 _ConditionName = "no_condition";
+00277         }
+00278 
+00284         void setLogicStateMachine( CLogicStateMachine * logicStateMachine );
+00285 
+00291         void setName( std::string name ) { _ConditionName = name; }
+00292 
+00298         std::string getName() { return _ConditionName; }
+00299 
+00305         void addNode( CLogicConditionNode node ) { Nodes.push_back( node ); }
+00306 
+00312         bool testLogic();
+00313 
+00319         void fillVarSet( std::set<std::string>& condVars );
+00320 
+00324         void serial(class NLMISC::IStream &f) throw(NLMISC::EStream);
+00325 };
+00326 
+00327 } // NLLOGIC
+00328 
+00329 #endif //LOGIC_CONDITION
+00330 
+00331 
+00332 
+
+ + +
                                                                                                                                                                    +
+ + -- cgit v1.2.1