20#ifndef _SINLINEPARSERS_HXX_
21#define _SINLINEPARSERS_HXX_
37template <
class T=YACS::ENGINE::ServiceInlineNode*>
45 DEBTRACE(
"sinlinetypeParser::onEnd: " << el )
46 std::string element(el);
66 throw YACS::Exception(
"A service inline node must have a component instance");
75 if(currentProc->
containerMap.count(this->_container) != 0)
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);
virtual bool setContainer(Container *cont)
Container * getContainer() const
virtual bool isAnonymous()
const std::string & getName() const
virtual void exDisabledState()
Notify this node that it has been disabled.
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...
virtual ComponentInstance * getComponent()
Return the associated component instance.
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)
YACS::ENGINE::ServiceInlineNode * _node
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