Version: 9.16.0
YACS::nodetypeParser< T > Struct Template Reference

Class for node parser. More...

#include <nodeParsers.hxx>

Inheritance diagram for YACS::nodetypeParser< T >:
Collaboration diagram for YACS::nodetypeParser< T >:

Public Member Functions

virtual void onStart (const XML_Char *el, const XML_Char **attr)
 
virtual void onEnd (const char *el, parser *child)
 
virtual void buildAttr (const XML_Char **attr)
 
virtual void pre ()
 
virtual void name (const std::string &name)
 
virtual void state (const std::string &name)
 
virtual void type (const std::string &name)
 
virtual void property (const myprop &prop)
 
virtual T post ()
 
YACS::ENGINE::InlineNodepost ()
 
- Public Member Functions inherited from YACS::parser
 parser ()
 
virtual ~parser ()
 
virtual void SetUserDataAndPush (parser *pp)
 
virtual void onStart (const XML_Char *el, const XML_Char **attr)
 
virtual void onEnd (const XML_Char *el, parser *child)
 
virtual void charData (const XML_Char *s, int len)
 
virtual void endParser ()
 
virtual void init ()
 
virtual void incrCount (const XML_Char *elem)
 
virtual void checkOrder (std::string &el)
 
virtual void maxcount (std::string name, int max, std::string &el)
 
virtual void mincount (std::string name, int min)
 
virtual void maxchoice (std::string *names, int max, std::string &el)
 
virtual void minchoice (std::string *names, int min)
 
virtual void pre ()
 
virtual void required (const std::string &name, const XML_Char **attr)
 
virtual void buildAttr (const XML_Char **attr)
 
std::stack< parser * > & getStack ()
 
template<class T >
T post ()
 
void logError (const std::string &reason)
 

Public Attributes

std::string _type
 
std::string _name
 
std::string _state
 
std::string _container
 
T _node
 
- Public Attributes inherited from YACS::parser
std::string _file
 
std::string _content
 
std::map< std::string, int > * _counts
 
std::map< std::string, int > _orders
 
int _orderState
 
int _level
 
std::stack< std::map< std::string, int > * > _stackCount
 
std::stack< int > _stackOrder
 
std::map< std::string, parser * > * _defaultParsersMap
 

Static Public Attributes

static nodetypeParser< TnodeParser
 
- Static Public Attributes inherited from YACS::parser
static parser main_parser
 
static std::stack< parser * > _stackParser
 

Additional Inherited Members

- Static Public Member Functions inherited from YACS::parser
static void XMLCALL start_document (void *data)
 
static void XMLCALL end_document (void *data)
 
static void XMLCALL start_element (void *data, const xmlChar *name, const xmlChar **p)
 
static void XMLCALL end_element (void *data, const xmlChar *name)
 
static void XMLCALL characters (void *data, const xmlChar *ch, int len)
 
static void XMLCALL comment (void *data, const xmlChar *value)
 
static void XMLCALL cdata_block (void *data, const xmlChar *value, int len)
 
static void XMLCALL warning (void *data, const char *fmt,...)
 
static void XMLCALL error (void *data, const char *fmt,...)
 
static void XMLCALL fatal_error (void *data, const char *fmt,...)
 
static void XML_SetUserData (_xmlParserCtxt *ctxt, parser *par)
 

Detailed Description

template<class T = YACS::ENGINE::InlineNode*>
struct YACS::nodetypeParser< T >

Class for node parser.

This class is a base class for other parsers

Definition at line 53 of file nodeParsers.hxx.

Member Function Documentation

◆ buildAttr()

template<class T = YACS::ENGINE::InlineNode*>
virtual void YACS::nodetypeParser< T >::buildAttr ( const XML_Char **  attr)
inlinevirtual

Reimplemented from YACS::parser.

Reimplemented in YACS::inlinetypeParser< T >, YACS::inlinetypeParser< YACS::ENGINE::InlineNode * >, YACS::inlinetypeParser< YACS::ENGINE::ServerNode * >, YACS::inlinetypeParser< YACS::ENGINE::ServiceNode * >, YACS::inlinetypeParser< YACS::ENGINE::ServiceInlineNode * >, YACS::outnodetypeParser< T >, and YACS::presettypeParser< T >.

Definition at line 72 of file nodeParsers.hxx.

73 {
74 if (!attr)
75 return;
76 required("name",attr);
77 required("type",attr);
78 for (int i = 0; attr[i]; i += 2)
79 {
80 if(std::string(attr[i]) == "name")name(attr[i+1]);
81 if(std::string(attr[i]) == "state")state(attr[i+1]);
82 if(std::string(attr[i]) == "type")type(attr[i+1]);
83 }
84 }
virtual void state(const std::string &name)
Definition: nodeParsers.hxx:95
virtual void name(const std::string &name)
Definition: nodeParsers.hxx:90
virtual void type(const std::string &name)
Definition: nodeParsers.hxx:99
virtual void required(const std::string &name, const XML_Char **attr)
Definition: parserBase.cxx:186

References yacsorb.CORBAEngineTest::i, YACS::nodetypeParser< T >::name(), YACS::parser::required(), YACS::nodetypeParser< T >::state(), and YACS::nodetypeParser< T >::type().

◆ name()

template<class T = YACS::ENGINE::InlineNode*>
virtual void YACS::nodetypeParser< T >::name ( const std::string &  name)
inlinevirtual

◆ onEnd()

◆ onStart()

◆ post() [1/2]

◆ post() [2/2]

Definition at line 130 of file nodeParsers.hxx.

131{
132 std::string fullname = currentProc->names.back()+_type;
133 if(currentProc->inlineMap.count(_type) != 0)
134 {
135 //InlineNode type with absolute name found
137 _node=n->cloneNode(_name);
138 }
139 else if(currentProc->inlineMap.count(fullname) != 0)
140 {
141 //InlineNode type with relative name found
143 _node=n->cloneNode(_name);
144 }
145 else
146 {
147 throw YACS::Exception("Unknown InlineNode type");
148 }
149 if(_state == "disabled")_node->exDisabledState();
150 DEBTRACE( "node_post " << _node->getName() )
151 return _node;
152}
Class for calculation node (script) inlined (and executed) in the schema.
Definition: InlineNode.hxx:44
std::map< std::string, InlineNode * > inlineMap
Definition: Proc.hxx:89
std::vector< std::string > names
Definition: Proc.hxx:93
YACS::ENGINE::Proc * currentProc
Definition: parserBase.cxx:30

References currentProc, DEBTRACE, YACS::ENGINE::Proc::inlineMap, gui.Appli::n, and YACS::ENGINE::Proc::names.

◆ pre()

◆ property()

template<class T >
void YACS::nodetypeParser< T >::property ( const myprop prop)
virtual

Definition at line 116 of file nodeParsers.hxx.

117{
118 if(this->_node==0)
119 throw YACS::Exception("Node must be completely defined before setting its properties");
120 _node->setProperty(prop._name,prop._value);
121}
std::string _name
Definition: factory.hxx:96
std::string _value
Definition: factory.hxx:97

References myprop::_name, and myprop::_value.

◆ state()

template<class T = YACS::ENGINE::InlineNode*>
virtual void YACS::nodetypeParser< T >::state ( const std::string &  name)
inlinevirtual

◆ type()

template<class T = YACS::ENGINE::InlineNode*>
virtual void YACS::nodetypeParser< T >::type ( const std::string &  name)
inlinevirtual

Definition at line 99 of file nodeParsers.hxx.

100 {
101 DEBTRACE( "node_type " << name )
102 _type=name;
103 }

References YACS::nodetypeParser< T >::_type, DEBTRACE, and YACS::nodetypeParser< T >::name().

Referenced by YACS::nodetypeParser< T >::buildAttr().

Member Data Documentation

◆ _container

template<class T = YACS::ENGINE::InlineNode*>
std::string YACS::nodetypeParser< T >::_container

Definition at line 109 of file nodeParsers.hxx.

Referenced by YACS::nodetypeParser< T >::pre().

◆ _name

template<class T = YACS::ENGINE::InlineNode*>
std::string YACS::nodetypeParser< T >::_name

Definition at line 107 of file nodeParsers.hxx.

Referenced by YACS::nodetypeParser< T >::name().

◆ _node

template<class T = YACS::ENGINE::InlineNode*>
T YACS::nodetypeParser< T >::_node

Definition at line 110 of file nodeParsers.hxx.

Referenced by YACS::nodetypeParser< T >::pre().

◆ _state

template<class T = YACS::ENGINE::InlineNode*>
std::string YACS::nodetypeParser< T >::_state

Definition at line 108 of file nodeParsers.hxx.

Referenced by YACS::nodetypeParser< T >::state().

◆ _type

template<class T = YACS::ENGINE::InlineNode*>
std::string YACS::nodetypeParser< T >::_type

Definition at line 106 of file nodeParsers.hxx.

Referenced by YACS::nodetypeParser< T >::type().

◆ nodeParser

template<class T >
nodetypeParser< T > YACS::nodetypeParser< T >::nodeParser
static

Definition at line 55 of file nodeParsers.hxx.


The documentation for this struct was generated from the following file: