20 #ifndef _BLOCPARSER_HXX_
21 #define _BLOCPARSER_HXX_
59 template <
class T=YACS::ENGINE::Bloc*>
93 for (
int i = 0; attr[
i];
i += 2)
95 if(std::string(attr[
i]) ==
"name")
name(attr[i+1]);
96 if(std::string(attr[i]) ==
"state")
state(attr[i+1]);
108 _bloc->exDisabledState();
119 _bloc->edAddChild(n);
120 std::string fullname = currentProc->
names.back()+n->
getName();
127 _bloc->edAddChild(n);
128 std::string fullname = currentProc->
names.back()+n->
getName();
135 _bloc->edAddChild(n);
136 std::string fullname = currentProc->
names.back()+n->
getName();
143 _bloc->edAddChild(n);
144 std::string fullname = currentProc->
names.back()+n->
getName();
151 _bloc->edAddChild(n);
152 std::string fullname = currentProc->
names.back()+n->
getName();
159 _bloc->edAddChild(n);
160 std::string fullname = currentProc->
names.back()+n->
getName();
161 DEBTRACE(
"bloc_node_set fullname = " << fullname )
168 _bloc->edAddChild(b);
169 std::string fullname = currentProc->
names.back()+b->
getName();
175 _bloc->edAddChild(b);
176 std::string fullname = currentProc->
names.back()+b->
getName();
184 _bloc->edAddChild(b);
185 std::string fullname = currentProc->
names.back()+b->
getName();
187 fullname +=
".splitter";
193 _bloc->edAddChild(b);
194 std::string fullname = currentProc->
names.back()+b->
getName();
200 _bloc->edAddChild(b);
201 std::string fullname = currentProc->
names.back()+b->
getName();
207 _bloc->edAddChild(b);
208 std::string fullname=currentProc->
names.back()+ b->
getName();
218 msg=
"from node " + l.
fromnode() +
" does not exist in control link: ";
220 msg=msg+
" context: "+currentProc->
names.back();
226 msg=
"to node " + l.
tonode() +
" does not exist in control link: ";
228 msg=msg+
" context: "+currentProc->
names.back();
249 std::string fromname = currentProc->
names.back()+l.
fromnode();
250 if(currentProc->
nodeMap.count(fromname) == 0)
252 msg=
"from node " + l.
fromnode() +
" does not exist in data link: ";
258 std::string toname = currentProc->
names.back()+l.
tonode();
259 if(currentProc->
nodeMap.count(toname) == 0)
263 if(currentProc->
nodeMap.count(toname) == 0)
266 msg=
"to node " + l.
tonode() +
" does not exist in data link: ";
292 std::string fromname = currentProc->
names.back()+l.
fromnode();
293 std::string toname = currentProc->
names.back()+l.
tonode();
295 if(currentProc->
nodeMap.count(fromname) == 0)
297 msg=
"from node " + l.
fromnode() +
" does not exist in stream link: ";
302 if(currentProc->
nodeMap.count(toname) == 0)
304 msg=
"to node " + l.
tonode() +
" does not exist in stream link: ";
311 _bloc->edAddLink(pout,pin);
313 std::map<std::string, std::string>::const_iterator pt;
322 DEBTRACE(
"++++++++++++++++++++Parameter+++++++++++++++++++++" );
324 std::string toname = currentProc->
names.back()+param.
_tonode;
325 if(currentProc->
nodeMap.count(toname) == 0)
327 msg=
"to node " + param.
_tonode +
" does not exist in parameter: ";
343 DEBTRACE(
"++++++++++++++++++++End parameter+++++++++++++++++++++" );
352 currentProc->
names.pop_back();
364 std::vector<YACS::ENGINE::Bloc *>
_blocs;
373 _bloc->edAddChild(n);
374 std::string fullname = currentProc->
names.back()+n->
getName();
382 _bloc->edAddChild(n);
383 std::string fullname = currentProc->
names.back()+n->
getName();
391 std::string fullname=currentProc->
names.back()+name;
393 _blocs.push_back(_bloc);
394 currentProc->
names.push_back(fullname+
'.');
410 DEBTRACE(
"bloctypeParser::onStart: " << el )
411 std::string element(el);
437 this->SetUserDataAndPush(pp);
446 DEBTRACE(
"bloctypeParser::onEnd: " << el )
447 std::string element(el);
466 else if(element ==
"datalink") datalink(((
linktypeParser<>*)child)->post());