20 #ifndef _SINLINEPARSERS_HXX_
21 #define _SINLINEPARSERS_HXX_
37 template <
class T=YACS::ENGINE::ServiceInlineNode*>
45 DEBTRACE(
"sinlinetypeParser::onEnd: " << el )
46 std::string element(el);
48 else if(element ==
"function")this->
function(((
functypeParser*)child)->post());
63 if(this->
_state ==
"disabled")this->
_node->exDisabledState();
65 if(!this->
_node->getComponent())
66 throw YACS::Exception(
"A service inline node must have a component instance");
69 if(this->
_node->getComponent()->getContainer())
73 if(this->
_node->getComponent()->isAnonymous())
75 if(currentProc->
containerMap.count(this->_container) != 0)
76 this->
_node->getComponent()->setContainer(currentProc->
containerMap[this->_container]);
83 this->
_node->getComponent()->setContainer(currentProc->
containerMap[
"DefaultContainer"]);
88 std::cerr <<
"WARNING: Unknown container " << this->
_container <<
" ignored" << std::endl;
100 DEBTRACE(
"sinline_function: " <<
f._code )
113 DEBTRACE(
"sinlinetypeParser::onStart: " << el )
114 std::string element(el);
115 parser* pp=&parser::main_parser;
116 this->maxcount(
"kind",1,element);
117 this->maxcount(
"function",1,element);
118 this->maxcount(
"load",1,element);
119 if(element ==
"kind")pp=&stringtypeParser::stringParser;
120 else if(element ==
"function")pp=&functypeParser::funcParser;
121 else if(element ==
"load")pp=&loadtypeParser::loadParser;
122 else if(element ==
"property")pp=&propertytypeParser::propertyParser;
125 this->SetUserDataAndPush(pp);
Base class for all schema objects.
std::map< std::string, Container * > containerMap
virtual ServiceInlineNode * createSInlineNode(const std::string &kind, const std::string &name)
virtual ComponentInstance * createComponentInstance(const std::string &name, const std::string &kind="")
void setScript(const std::string &script)
virtual void setMethod(const std::string &method)
virtual void setComponent(ComponentInstance *compo)
Associate an existing component instance to this service node AND check the consistency regarding the...
YACS::ENGINE::Runtime * theRuntime
YACS::ENGINE::Proc * currentProc
Class for function parser in inline nodes.
virtual void function(const myfunc &f)
virtual void outport(const myoutport &p)
virtual void kind(const std::string &name)
virtual void inport(const myinport &p)
Class for loading parser.
virtual void property(const myprop &prop)
Class for Outport parser.
virtual void buildAttr(const XML_Char **attr)
Class for property parser.
Class for parsing ServiceInlineNode description.
virtual void onStart(const XML_Char *el, const XML_Char **attr)
virtual void load(const loadon &l)
virtual void onEnd(const char *el, parser *child)
static sinlinetypeParser< T > sinlineParser