NLLOGIC Namespace Reference


Data Structures

class  CLogicComparisonBlock
class  CLogicCondition
class  CLogicConditionLogicBlock
class  CLogicConditionNode
class  CLogicCounter
class  CLogicEvent
class  CLogicEventAction
class  CLogicEventMessage
class  CLogicState
class  CLogicStateMachine
class  CLogicVariable

Typedefs

typedef std::map< std::string,
NLMISC::CEntityId
TSIdMap
 map destination names to destination sid


Functions

std::string getXMLProp (xmlNodePtr node, const char *propName)
bool testNameWithFilter (sint8 filter, string motif, string varName)
void xmlCheckNodeName (xmlNodePtr &node, const char *nodeName)


Typedef Documentation

typedef std::map<std::string, NLMISC::CEntityId> NLLOGIC::TSIdMap
 

map destination names to destination sid

Definition at line 47 of file logic_state.h.

Referenced by NLLOGIC::CLogicStateMachine::addSIdMap(), and NLLOGIC::CLogicState::addSIdMap().


Function Documentation

std::string NLLOGIC::getXMLProp xmlNodePtr  node,
const char *  propName
 

Definition at line 72 of file logic_state_machine.cpp.

References nlinfo, and NLMISC::smprintf().

Referenced by NLLOGIC::CLogicCounter::read(), NLLOGIC::CLogicVariable::read(), NLLOGIC::CLogicStateMachine::read(), NLLOGIC::CLogicState::read(), NLLOGIC::CLogicEvent::read(), NLLOGIC::CLogicEventAction::read(), NLLOGIC::CLogicEventMessage::read(), NLLOGIC::CLogicCondition::read(), NLLOGIC::CLogicConditionNode::read(), NLLOGIC::CLogicConditionLogicBlock::read(), and NLLOGIC::CLogicComparisonBlock::read().

00073 {
00074         const char *name = (const char*)xmlGetProp (node, (xmlChar*)propName);
00075         if (name)
00076         {
00077                 nlinfo ("get prop %s = %s", propName, name);
00078                 string n = name;
00079                 xmlFree ((void*)name);
00080                 return n;
00081         }
00082         else
00083         {
00084                 // Make an error message
00085                 char tmp[512];
00086                 smprintf (tmp, 512, "LogicStateMachine XML Syntax error in block %s line %d, aguments Name not found", 
00087                         node->name, (int)node->content);
00088                 throw EXmlParsingError (tmp);
00089                 return "";
00090         }
00091 }

bool NLLOGIC::testNameWithFilter sint8  filter,
string  motif,
string  varName
 

Definition at line 497 of file logic_state_machine.cpp.

References sint, and sint8.

Referenced by NLLOGIC::CLogicStateMachine::setVerbose().

00498 {
00499         if( varName.size() > motif.size() )
00500         {
00501                 switch( filter )
00502                 {
00503                         // *xxx*
00504                         case 0 :
00505                         {
00506                                 if(varName.find(motif) != -1)
00507                                 {
00508                                         return true;
00509                                 }
00510                         }
00511                         break;
00512 
00513                         // *xxx
00514                         case 1 :
00515                         {
00516                                 sint beginIndex = varName.size() - motif.size() - 1;
00517                                 string endOfVarName = varName.substr(beginIndex,motif.size());
00518                                 if( endOfVarName == motif )
00519                                 {
00520                                         return true;
00521                                 }
00522                         }
00523                         break;
00524         
00525                         // xxx*
00526                         case 2 :
00527                         {
00528                                 string beginOfVarName = varName.substr(0,motif.size());
00529                                 if( beginOfVarName == motif )
00530                                 {
00531                                         return true;
00532                                 }
00533                         }
00534                         break;
00535                 }
00536         }
00537 
00538         return false;
00539 
00540 } // testNameWithFilter //

void NLLOGIC::xmlCheckNodeName xmlNodePtr &  node,
const char *  nodeName
 

Definition at line 42 of file logic_state_machine.cpp.

References nlinfo, nlstop, and NLMISC::smprintf().

Referenced by NLLOGIC::CLogicCounter::read(), NLLOGIC::CLogicVariable::read(), NLLOGIC::CLogicStateMachine::read(), NLLOGIC::CLogicState::read(), NLLOGIC::CLogicEvent::read(), NLLOGIC::CLogicEventAction::read(), NLLOGIC::CLogicEventMessage::read(), NLLOGIC::CLogicCondition::read(), NLLOGIC::CLogicConditionNode::read(), NLLOGIC::CLogicConditionLogicBlock::read(), and NLLOGIC::CLogicComparisonBlock::read().

00043 {
00044         // Check node name
00045         if ( node == NULL || ((const char*)node->name == NULL) || (strcmp ((const char*)node->name, nodeName) != 0) )
00046         {
00047 
00048                 // try to find a child
00049                 if (node != NULL)
00050                 {
00051                         node = CIXml::getFirstChildNode (node, nodeName);
00052                         if ( node != NULL && ((const char*)node->name != NULL) && (strcmp ((const char*)node->name, nodeName) == 0) )
00053                         {
00054                                 nlinfo ("check node %s ok in the child", nodeName);
00055                                 return;
00056                         }
00057                 }
00058 
00059                 // Make an error message
00060                 char tmp[512];
00061                 smprintf (tmp, 512, "LogicStateMachine STATE_MACHINE XML Syntax error in block line %d, node %s should be %s", 
00062                         (int)node->content, node->name, nodeName);
00063                 
00064                 nlinfo (tmp);
00065                 nlstop;
00066                 throw EXmlParsingError (tmp);
00067         }
00068 
00069         nlinfo ("check node %s ok", nodeName);
00070 }


Generated on Tue Mar 16 12:52:48 2004 for NeL by doxygen 1.3.6