20 #ifndef _SWITCHPARSERS_HXX_
21 #define _SWITCHPARSERS_HXX_
59 virtual void id (
const int&
n);
73 virtual std::pair<int,ENGINE::Node*>
post();
93 virtual void case_ (
const std::pair<int,ENGINE::Node*>&
p);
94 virtual void default_ (
const std::pair<int,ENGINE::Node*>&
p);
95 virtual void name (
const std::string&
name);
97 virtual void select (
const int& s);
111 static std::string
switch_t3[]={
"inline",
"sinline",
"service",
"server",
"remote",
"node",
"forloop",
"foreach",
"optimizer",
"while",
"switch",
"bloc",
""};
118 for (
int i = 0; attr[
i];
i += 2)
120 if(std::string(attr[
i]) ==
"id")
id(atoi(attr[
i+1]));
135 std::stringstream temp;
136 if (
_id <0) temp <<
"m" << -
_id <<
"_";
137 else temp <<
"p" <<
_id <<
"_";
139 DEBTRACE(
"case_fullname: " << fullname )
199 fullname +=
".splitter";
237 return std::pair<int,ENGINE::Node*>(
_id,
_cnode);
244 for (
int i = 0; attr[
i];
i += 2)
257 DEBTRACE(
"case_fullname: " << fullname )
266 for (
int i = 0; attr[
i];
i += 2)
268 if(std::string(attr[
i]) ==
"name")
name(attr[
i+1]);
269 if(std::string(attr[
i]) ==
"state")
state(attr[
i+1]);
270 if(std::string(attr[
i]) ==
"select")
select(atoi(attr[
i+1]));
288 DEBTRACE(
"switch_fullname: " << fullname )
323 DEBTRACE(
"switchtypeParser::onStart: " << el )
324 std::string element(el);
325 this->
maxcount(
"default",1,element);
337 DEBTRACE(
"switchtypeParser::onEnd: " << el )
338 std::string element(el);
345 DEBTRACE(
"casetypeParser::onStart: " << el )
346 std::string element(el);
348 this->
maxcount(
"sinline",1,element);
349 this->
maxcount(
"service",1,element);
353 this->
maxcount(
"forloop",1,element);
354 this->
maxcount(
"foreach",1,element);
355 this->
maxcount(
"optimizer",1,element);
383 DEBTRACE(
"casetypeParser::onEnd: " << el )
384 std::string element(el);
Composed node to group elementary and composed nodes.
std::string getName() const
Class for calculation node (script) inlined (and executed) in the schema.
Base class for all nodes.
virtual void exDisabledState()
Notify this node that it has been disabled.
class to build optimization loops
Base class for all schema objects.
std::map< std::string, InlineNode * > inlineMap
std::map< std::string, ServiceNode * > serviceMap
std::map< std::string, Node * > nodeMap
std::vector< std::string > names
virtual Switch * createSwitch(const std::string &name)
Class for calculation node associated with a component service.
Control node that emulates the C switch.
InputPort * edGetConditionPort()
Node * edSetDefaultNode(Node *DISOWNnode)
Node * edSetNode(int caseId, Node *DISOWNnode)
static std::string switch_t3[]
virtual std::pair< int, ENGINE::Node * > post()
virtual void remote(ENGINE::InlineNode *const &n)
void onStart(const XML_Char *el, const XML_Char **attr)
virtual void foreach(ENGINE::ForEachLoopGen *const &n)
virtual void bloc(ENGINE::Bloc *const &n)
std::vector< int > _idStack
virtual void optimizer(ENGINE::OptimizerLoop *const &n)
virtual void service(ENGINE::ServiceNode *const &n)
virtual void property(const myprop &prop)
virtual void forloop(ENGINE::ForLoop *const &n)
virtual void buildAttr(const XML_Char **attr)
virtual void switch_(ENGINE::Switch *const &n)
void onEnd(const char *el, parser *child)
virtual void inline_(ENGINE::InlineNode *const &n)
virtual void while_(ENGINE::WhileLoop *const &n)
static casetypeParser caseParser
virtual void id(const int &n)
virtual void server(ENGINE::ServerNode *const &n)
virtual void node(ENGINE::InlineNode *const &n)
virtual void sinline(ENGINE::ServiceInlineNode *const &n)
static defaultcasetypeParser defaultcaseParser
virtual void buildAttr(const XML_Char **attr)
virtual void minchoice(std::string *names, int min)
virtual void maxcount(std::string name, int max, std::string &el)
virtual void SetUserDataAndPush(parser *pp)
virtual void required(const std::string &name, const XML_Char **attr)
virtual void buildAttr(const XML_Char **attr)
static parser main_parser
virtual void maxchoice(std::string *names, int max, std::string &el)
Class for property parser.
static propertytypeParser propertyParser
Class for parsing ServiceInlineNode description.
virtual ENGINE::Switch * post()
virtual void default_(const std::pair< int, ENGINE::Node * > &p)
void onStart(const XML_Char *el, const XML_Char **attr)
virtual void state(const std::string &state)
virtual void case_(const std::pair< int, ENGINE::Node * > &p)
virtual void select(const int &s)
void onEnd(const char *el, parser *child)
static switchtypeParser switchParser
virtual void name(const std::string &name)
virtual void buildAttr(const XML_Char **attr)
std::vector< ENGINE::Switch * > _cnodes
YACS::ENGINE::Runtime * theRuntime
YACS::ENGINE::Proc * currentProc