70std::map<int, std::string> GuiObserver::_eventNameMap;
120 set<GuiObserver*>::iterator it;
121 while (
int nbObs =
_setObs.size())
123 DEBTRACE(
"--- " <<
this <<
" nbObs " << nbObs);
124 set<GuiObserver*> copySet =
_setObs;
125 for (it = copySet.begin(); it != copySet.end(); ++it)
130 DEBTRACE(
"nbSubjects=" << nbsub <<
" obs=" << anObs);
143 DEBTRACE(
"Subject::registerUndoDestroy");
148 DEBTRACE(
"Subject::attach " << obs);
155 DEBTRACE(
"Subject::detach " << obs);
172 std::map<std::string, std::string> empty;
183 std::vector<std::string> empty;
189 DEBTRACE(
"Subject::select " << isSelected <<
" " <<
this);
190 set<GuiObserver*> copySet =
_setObs;
191 for (set<GuiObserver *>::iterator it = copySet.begin(); it != copySet.end(); ++it)
194 currOb->
select(isSelected);
201 set<GuiObserver*> copySet =
_setObs;
202 for (set<GuiObserver *>::iterator it = copySet.begin(); it != copySet.end(); ++it)
207 (*it)->update(event, type, son);
211 std::cerr <<
"Internal error in Subject::update: " <<
ex.what() << std::endl;
215 std::cerr <<
"Internal error in Subject::update: " << std::endl;
240 string toDestroy = son->
getName();
241 DEBTRACE(
"Subject::destroy " << toDestroy);
243 string startnode =
"";
245 string startport =
"";
256 if (subNode->getNode()->getFather() )
264 startportType = son->
getType();
268 startnode = proc->
getChildName(slink->getSubjectOutNode()->getNode());
269 endnode = proc->
getChildName(slink->getSubjectInNode()->getNode());
270 startport = slink->getSubjectOutPort()->getName();
271 endport = slink->getSubjectInPort()->getName();
272 startportType = slink->getSubjectOutPort()->getType();
273 endportType = slink->getSubjectInPort()->getType();
277 startnode = proc->
getChildName(sclink->getSubjectOutNode()->getNode());
278 endnode = proc->
getChildName(sclink->getSubjectInNode()->getNode());
282 if(scont->getName() ==
"DefaultContainer")
292 startnode = scont->getName();
305 DEBTRACE(
"Destruction done: " << toDestroy);
337 : _destructible(true)
345 DEBTRACE(
"GuiObserver::~GuiObserver " <<
this);
347 set<Subject*>::iterator it= subsetcpy.begin();
348 for (; it != subsetcpy.end(); ++it)
354 DEBTRACE(
"GuiObserver::select() " << isSelected);
369 DEBTRACE(
"subject " << subject <<
" is already a subject of observer " <<
this <<
"---------------------------");
383 DEBTRACE(
"subject " << subject <<
" is not a subject of observer " <<
this <<
"---------------------------");
432 else return "Unknown Event";
445 DEBTRACE(
"SubjectObserver::select " << isSelected);
450 DEBTRACE(
"SubjectObserver::update " << type <<
"," <<
eventName(event) <<
"," << son);
481 DEBTRACE(
"SubjectReference::localClean ");
486 std::stringstream name;
523 Dispatcher::getDispatcher()->removeObserver(
this,
_node,
"status");
532 getName() != ForEachLoopGen::NAME_OF_SPLITTERNODE)
539 DEBTRACE(
"------------------------------------------------------------------------------");
540 DEBTRACE(
"SubjectNode::localClean: father->edRemoveChild: YACS exception " << e.
what());
541 DEBTRACE(
"------------------------------------------------------------------------------");
558 DEBTRACE(
"SubjectNode::localClean ");
561 list<SubjectLink*>::iterator its;
563 for (its = cpll.begin(); its != cpll.end(); ++its)
567 list<SubjectControlLink*>::iterator its;
569 for (its = cplcl.begin(); its != cplcl.end(); ++its)
573 list<SubjectInputPort*>::iterator iti;
575 for(iti = cpli.begin(); iti != cpli.end(); ++iti)
579 list<SubjectOutputPort*>::iterator ito;
581 for(ito = cplo.begin(); ito != cplo.end(); ++ito)
585 list<SubjectInputDataStreamPort*>::iterator itid;
587 for(itid = cplid.begin(); itid != cplid.end(); ++itid)
591 list<SubjectOutputDataStreamPort*>::iterator itod;
593 for(itod = cplod.begin(); itod != cplod.end(); ++itod)
599 sb->removeNode(
this);
601 sfl->completeChildrenSubjectList( 0 );
603 swl->completeChildrenSubjectList( 0 );
605 sdpl->removeNode(
this);
607 ss->removeNode(
this);
620 ostringstream blocName;
622 Bloc *undoBloc =
new Bloc(blocName.str());
631 string position = proc->
getName();
638 swCase=aswitch->getRankOfNode(
_node);
648 list<ServiceNode*> serviceList;
653 serviceList.push_back(service);
659 list<Node*>::iterator it = children.begin();
660 for (; it != children.end(); ++it)
662 serviceList.push_back(service);
670 list<ServiceNode*>::const_iterator ita = serviceList.begin();
671 for (; ita != serviceList.end(); ++ita)
673 bool instanceUsedOutside =
false;
680 set<SubjectServiceNode*>::const_iterator itset = scomp->
_subServiceSet.begin();
684 if (sn && (sn != service))
687 instanceUsedOutside =
true;
688 list<ServiceNode*>::const_iterator itb = serviceList.
begin();
689 for (; itb != serviceList.end(); ++itb)
693 instanceUsedOutside =
false;
697 if (instanceUsedOutside)
703 if (!instanceUsedOutside)
721 vector<pair<OutPort *, InPort *> > globalList = listLeaving;
722 vector<pair<InPort *, OutPort *> >::iterator it1;
723 for (it1 = listIncoming.begin(); it1 != listIncoming.end(); ++it1)
725 pair<OutPort *, InPort *> outin = pair<OutPort *, InPort *>((*it1).second, (*it1).first);
726 globalList.push_back(outin);
728 vector<pair<OutPort *, InPort *> >::iterator it2;
729 for (it2 = globalList.begin(); it2 != globalList.end(); ++it2)
744 list<SubjectControlLink*>::iterator its;
746 for (its = cplcl.begin(); its != cplcl.end(); ++its)
749 Node *nout = (*its)->getSubjectOutNode()->getNode();
750 Node *nin = (*its)->getSubjectInNode()->getNode();
751 inside = inside && (node == nout);
752 inside = inside && (node == nin);
755 (*its)->registerUndoDestroy();
784 string position =
"";
790 string newParent =
"";
791 if (proc !=
dynamic_cast<Proc*
>(cnp))
834 string position =
"";
835 if (fromproc !=
dynamic_cast<Proc*
>(
_node))
840 string newParent =
"";
841 if (proc !=
dynamic_cast<Proc*
>(cnp))
875 DEBTRACE(
"SubjectNode::setName " << name);
877 string position =
"";
894 DEBTRACE(
"SubjectNode::notifyObserver " <<
object->getName() <<
" " << event);
904 std::list<OutGate *>::const_iterator ito;
907 Node* n1=(*ito)->getNode();
911 std::list<InGate *>::const_iterator iti;
915 Node* n2=(*iti)->getNode();
923 std::vector< std::pair<OutPort *, InPort *> >::iterator it3;
924 for (it3 = listLeaving.begin(); it3 != listLeaving.end(); ++it3)
931 ComposedNode* fath= ComposedNode::getLowestCommonAncestor(n1,n2);
932 if(n1 == fath ||n2 == fath)
936 dataLinks.push_back(std::pair<OutPort *, InPort *>(p1,p2));
945 dataLinks.push_back(std::pair<OutPort *, InPort *>(p1,p2));
950 dataflowLinks.push_back(std::pair<OutPort *, InPort *>(p1,p2));
955 std::vector< std::pair<InPort *, OutPort *> >::iterator it4;
956 for (it4 = listIncoming.begin(); it4 != listIncoming.end(); ++it4)
963 ComposedNode* fath= ComposedNode::getLowestCommonAncestor(n1,n2);
964 if(n1 == fath ||n2 == fath)
968 dataLinks.push_back(std::pair<OutPort *, InPort *>(p1,p2));
977 dataLinks.push_back(std::pair<OutPort *, InPort *>(p1,p2));
982 dataflowLinks.push_back(std::pair<OutPort *, InPort *>(p1,p2));
989 DEBTRACE(
"SubjectNode::restoreLinks");
991 std::vector< std::pair<OutPort *, InPort *> >::iterator it3;
998 ComposedNode* fath= ComposedNode::getLowestCommonAncestor(n1,n2);
1019 InPort* p2=(*it3).second;
1022 ComposedNode* fath= ComposedNode::getLowestCommonAncestor(n1,n2);
1038 if(n1==fath || n2==fath)
continue;
1045 pair<Node*,Node*> keyLink(n1,n2);
1057 std::list<OutGate *>::const_iterator it;
1060 Node* n1=(*it)->getNode();
1067 ComposedNode* fath= ComposedNode::getLowestCommonAncestor(n1,n2);
1068 if(n1 == fath)
continue;
1069 if(n2 == fath)
continue;
1085 std::list<InGate *>::const_iterator it2;
1089 Node* n2=(*it2)->getNode();
1095 ComposedNode* fath= ComposedNode::getLowestCommonAncestor(n1,n2);
1096 if(n1 == fath)
continue;
1097 if(n2 == fath)
continue;
1117 string position =
"";
1126 else delete command;
1134 string theName = name;
1135 if (name.empty()) theName =port->
getName();
1136 DEBTRACE(
"SubjectNode::addSubjectInputPort "<< theName);
1140 if (!name.empty()) son->
setName(name);
1175 string theName = name;
1176 if (name.empty()) theName =port->
getName();
1177 DEBTRACE(
"SubjectNode::addSubjectOutputPort "<< theName);
1181 if (!name.empty()) son->
setName(name);
1191 string theName = name;
1192 if (name.empty()) theName =port->
getName();
1193 DEBTRACE(
"SubjectNode::addSubjectIDSPort "<< theName);
1197 if (!name.empty()) son->
setName(name);
1208 string theName = name;
1209 if (name.empty()) theName =port->
getName();
1210 DEBTRACE(
"SubjectNode::addSubjectODSPort "<< theName);
1214 if (!name.empty()) son->
setName(name);
1247 std::vector< std::pair<OutPort *, InPort *> > globalList = listLeaving;
1248 std::vector< std::pair<InPort *, OutPort *> >::iterator it1;
1249 for (it1 = listIncoming.begin(); it1 != listIncoming.end(); ++it1)
1251 std::pair<OutPort *, InPort *> outin = std::pair<OutPort *, InPort *>((*it1).second, (*it1).first);
1252 globalList.push_back(outin);
1254 std::vector< std::pair<OutPort *, InPort *> >::iterator it2;
1255 for (it2 = globalList.begin(); it2 != globalList.end(); ++it2)
1268 DEBTRACE(
"------------------------------------------------------------------------------");
1269 DEBTRACE(
"SubjectNode::removeExternalLinks(): an external link not in map...");
1270 DEBTRACE(
"------------------------------------------------------------------------------");
1279 list<SubjectControlLink*>::iterator its;
1281 for (its = cplcl.begin(); its != cplcl.end(); ++its)
1284 Node *nout = (*its)->getSubjectOutNode()->getNode();
1285 Node *nin = (*its)->getSubjectInNode()->getNode();
1286 inside = inside && (node == nout);
1287 inside = inside && (node == nin);
1301 string position =
"";
1310 else delete command;
1318 :
SubjectNode(composedNode, parent), _composedNode(composedNode)
1343 DEBTRACE(
"SubjectComposedNode::localClean ");
1352 DEBTRACE(
"SubjectComposedNode::addNode("<<catalog<<
","<<compo<<
","<<type<<
","<<name<<
")");
1366 string position =
"";
1381 else delete command;
1391 string theName = name;
1392 if (name.empty()) theName =node->
getName();
1393 DEBTRACE(
"SubjectComposedNode::addSubjectNode "<< theName);
1460 if (!name.empty()) son->
setName(name);
1464 if (catalog && !compo.empty() && !type.empty())
1465 service->setComponentFromCatalog(catalog,compo,type);
1467 service->setComponent();
1481 if(find(setOfNode.begin(),setOfNode.end(),node2Insert)==setOfNode.end())
1482 setOfNode.push_back(node2Insert);
1484 for(list<Node *>::iterator iter=setOfNode.begin();iter!=setOfNode.end();iter++)
1493 std::cerr <<
"Unknown type of node" << std::endl;
1500 list<InputPort*>::const_iterator iti;
1501 for (iti = listInputPorts.begin(); iti != listInputPorts.end(); ++iti)
1503 list<OutputPort*>::const_iterator ito;
1504 for (ito = listOutputPorts.begin(); ito != listOutputPorts.end(); ++ito)
1513 DEBTRACE(
"SubjectComposedNode::addSubjectLink");
1516 pair<OutPort*,InPort*> keyLink(outp,inp);
1539 pair<OutPort*,InPort*> keyLink(outp,inp);
1556 pair<Node*,Node*> keyLink(outn,inn);
1577 pair<Node*,Node*> keyLink(outn,inn);
1591 DEBTRACE(
"SubjectComposedNode::removeExternalControlLinks " <<
getName());
1593 list<SubjectControlLink*>::iterator its;
1595 for (its = cplcl.begin(); its != cplcl.end(); ++its)
1598 Node *nout = (*its)->getSubjectOutNode()->getNode();
1599 Node *nin = (*its)->getSubjectInNode()->getNode();
1622 for(list<Node *>::iterator iter=setOfNode.begin();iter!=setOfNode.end();iter++)
1636 std::vector<std::pair<OutPort*,InPort*> >::iterator itp;
1637 for (itp = setOfLinks.begin(); itp != setOfLinks.end(); ++itp)
1641 InPort *inp = (*itp).second;
1653 std::list<Node*>::const_iterator itn;
1654 for(itn = setOfNodes.begin(); itn != setOfNodes.end(); ++itn)
1657 OutGate* outgate = (*itn)->getOutGate();
1658 std::list<InGate*> setIngate = outgate->
edSetInGate();
1659 std::list<InGate*>::const_iterator itg;
1660 for(itg = setIngate.begin(); itg != setIngate.end(); ++itg)
1662 Node* inNode = (*itg)->getNode();
1737 DEBTRACE(
"SubjectBloc::localClean ");
1738 set<SubjectNode*>::iterator it;
1739 set<SubjectNode*> copyChildren =
_children;
1740 for (it = copyChildren.begin(); it !=copyChildren.end(); ++it)
1750 DEBTRACE(
"SubjectBloc::addNode( " << catalog <<
", " << compo <<
", " << type <<
", " << name <<
" )");
1779 set<SubjectNode*>::const_iterator it =
_children.begin();
1781 if ( (*it)->getNode() == node )
1793 update(event, type, son);
1794 set<SubjectNode*>::iterator it =
_children.begin();
1796 (*it)->recursiveUpdate(event, type, son);
1826 DEBTRACE(
"SubjectProc::localClean ");
1831 DEBTRACE(
"SubjectProc::cleanPostErase");
1857 std::map<std::string, TypeCode *>::iterator pt;
1858 for(pt=builtinCatalog->
_typeMap.begin();pt!=builtinCatalog->
_typeMap.end();pt++)
1878 for (map<string, ComponentInstance*>::const_iterator itComp = aProc->
componentInstanceMap.begin();
1900 for (map<string, Container*>::const_iterator itCont = aProc->
containerMap.begin(); itCont != aProc->
containerMap.end(); ++itCont)
1908 DEBTRACE(
"SubjectProc::addComponent " << compoName <<
" " << containerName);
1915 else delete command;
1921 DEBTRACE(
"SubjectProc::addContainer " << name <<
" " <<
ref);
1939 DEBTRACE(
"SubjectProc::addContainer " << name <<
" " <<
ref);
1957 DEBTRACE(
"SubjectProc::addDataType " << typeName);
1961 DEBTRACE(
"new datatype " << typeName);
1965 else delete command;
1981 DEBTRACE(
"SubjectProc::addSubjectContainer " << name);
1995 string typeName = type->
name();
1996 DEBTRACE(
"SubjectProc::addComSubjectDataType " << typeName);
2007 else delete command;
2015 string typeName = type->
name();
2016 DEBTRACE(
"SubjectProc::addSubjectDataType " << typeName);
2019 if (! proc->
typeMap.count(typeName))
2022 proc->
typeMap[ typeName ]->incrRef();
2041 unsigned int aRefCnt = aTypeCode->
getRefCnt();
2042 DEBTRACE(
"SubjectProc::removeSubjectDataType: " << typeName <<
" " << aRefCnt);
2044 proc->
typeMap.erase(typeName);
2060 :
SubjectNode(elementaryNode, parent), _elementaryNode(elementaryNode)
2069 DEBTRACE(
"SubjectElementaryNode::~SubjectElementaryNode " <<
getName());
2085 DEBTRACE(
"SubjectElementaryNode::localClean ");
2090 update(event, type, son);
2095 DEBTRACE(
"SubjectElementaryNode::addInputPort( " << catalog <<
", " << type <<
", " << name <<
" )");
2097 string position =
"";
2110 else delete command;
2116 DEBTRACE(
"SubjectElementaryNode::addOutputPort( " << catalog <<
", " << type <<
", " << name <<
" )");
2118 string position =
"";
2131 else delete command;
2137 DEBTRACE(
"SubjectElementaryNode::addIDSPort( " << catalog <<
", " << type <<
", " << name <<
" )");
2139 string position =
"";
2152 else delete command;
2158 DEBTRACE(
"SubjectElementaryNode::addODSPort( " << catalog <<
", " << type <<
", " << name <<
" )");
2160 string position =
"";
2173 else delete command;
2179 DEBTRACE(
"SubjectElementaryNode::OrderDataPorts");
2181 string position =
"";
2185 if (!portToMove)
return false;
2186 string nameToMove = portToMove->
getName();
2235 listInputPorts.push_back(splitterNode->getFather()->getInputPort(
"SmplsCollection"));
2236 list<InputPort*>::const_iterator iti;
2237 for (iti = listInputPorts.begin(); iti != listInputPorts.end(); ++iti)
2239 list<OutputPort*>::const_iterator ito;
2240 for (ito = listOutputPorts.begin(); ito != listOutputPorts.end(); ++ito)
2242 list<InputDataStreamPort*>::const_iterator itids;
2243 for (itids = listIDSPorts.begin(); itids != listIDSPorts.end(); ++itids)
2245 list<OutputDataStreamPort*>::const_iterator itods;
2246 for (itods = listODSPorts.begin(); itods != listODSPorts.end(); ++itods)
2284 else delete command;
2306 DEBTRACE(
"SubjectInlineNode::localClean ");
2311 DEBTRACE(
"SubjectInlineNode::setExecutionMode ");
2319 else delete command;
2322 else delete command;
2328 DEBTRACE(
"SubjectInlineNode::setContainer ");
2336 else delete command;
2339 else delete command;
2357 if (!instance)
return;
2379 DEBTRACE(
"SubjectServiceNode::localClean ");
2406 std::string service)
2408 DEBTRACE(
"SubjectServiceNode::setComponentFromCatalog " << compo);
2419 else delete command;
2429 DEBTRACE(
"SubjectServiceNode::setComponent");
2438 DEBTRACE(
"SubjectServiceNode::setComponent : create subject for compo = " << compo.c_str());
2441 std::cerr <<
"PROBLEM : ComponentInstance should be registered in proc, add it " << instance->
getInstanceName() << std::endl;
2467 DEBTRACE(
"SubjectServiceNode::setComponent : get already created subject for compo = " <<compo.c_str());
2491 else delete command;
2533 DEBTRACE(
"SubjectPythonNode::localClean ");
2559 else delete command;
2576 DEBTRACE(
"SubjectPyFuncNode::localClean ");
2604 DEBTRACE(
"SubjectCORBANode::localClean ");
2633 DEBTRACE(
"SubjectCppNode::localClean ");
2662 DEBTRACE(
"SubjectSalomeNode::localClean ");
2676 DEBTRACE(
"SubjectSalomePythonNode::~SubjectSalomePythonNode " <<
getName());
2692 DEBTRACE(
"SubjectSalomePythonNode::localClean ");
2721 DEBTRACE(
"SubjectXmlNode::localClean ");
2751 DEBTRACE(
"SubjectSplitterNode::localClean ");
2786 DEBTRACE(
"SubjectDataNode::localClean ");
2815 DEBTRACE(
"SubjectPresetNode::localClean ");
2844 DEBTRACE(
"SubjectOutNode::localClean ");
2873 DEBTRACE(
"SubjectStudyInNode::localClean ");
2902 DEBTRACE(
"SubjectStudyOutNode::localClean ");
2931 DEBTRACE(
"SubjectForLoop::localClean ");
2938 update(event, type, son);
2949 DEBTRACE(
"SubjectForLoop::addNode("<<catalog<<
","<<compo<<
","<<type<<
","<<name<<
")");
2956 body =
createNode(catalog, compo, type, name, newCompoInst);
2975 DEBTRACE(
"SubjectForLoop::setNbSteps " << nbSteps);
2984 else delete command;
3023 DEBTRACE(
"SubjectWhileLoop::localClean ");
3030 update(event, type, son);
3041 DEBTRACE(
"SubjectWhileLoop::addNode(catalog, compo, type, name)");
3048 body =
createNode(catalog, compo, type, name, newCompoInst);
3067 DEBTRACE(
"SubjectWhileLoop::setCondition " << condition);
3076 else delete command;
3116 DEBTRACE(
"SubjectSwitch::localClean ");
3117 map<int, SubjectNode*>::iterator it;
3118 map<int, SubjectNode*> bodyMapCpy =
_bodyMap;
3119 for (it = bodyMapCpy.begin(); it != bodyMapCpy.end(); ++it)
3120 erase((*it).second);
3125 update(event, type, son);
3126 map<int, SubjectNode*>::iterator it =
_bodyMap.begin();
3128 (*it).second->recursiveUpdate(event, type, son);
3139 DEBTRACE(
"SubjectSwitch::addNode("<<catalog<<
","<<compo<<
","<<type<<
","<<name<<
","<<swCase<<
","<<(
int)replace<<
")");
3141 if (!replace &&
_bodyMap.count(swCase))
3146 body =
createNode(catalog, compo, type, name, newCompoInst, swCase);
3156 bool isFound =
false;
3157 map<int, SubjectNode*>::const_iterator it;
3160 if ( (*it).second == son )
3182 DEBTRACE(
"SubjectSwitch::houseKeepingAfterCutPaste");
3192 DEBTRACE(
"SubjectSwitch::completeChildrenSubjectList");
3202 map<int, SubjectNode*>::const_iterator it;
3204 if ( (*it).second->getNode() == node )
3206 aChild = (*it).second;
3225 else delete command;
3231 DEBTRACE(
"SubjectSwitch::setCase " << caseId);
3237 int newRank = atoi(caseId.c_str());
3238 if (previousRank == newRank)
return true;
3249 else delete command;
3280 update(event, type, son);
3295 DEBTRACE(
"SubjectDynParaLoop::addNode(catalog, compo, type, name)");
3299 "put the nodes in a bloc";
3302 return createNode(catalog, compo, type, name, newCompoInst);
3326 DEBTRACE(
"SubjectDynParaLoop::localClean ");
3377 DEBTRACE(
"SubjectDynParaLoop::setNbBranches " << nbBranches);
3386 else delete command;
3401 return std::string();
3424 Node* aSplitterEngine = 0;
3432 DEBTRACE(
"SubjectForEachLoop::clean: remove for each loop splitter");
3439 DEBTRACE(
"SubjectForEachLoop::localClean ");
3449 if (son && son->
getName() == ForEachLoop::NAME_OF_SPLITTERNODE)
3458 if (child->
getName() == ForEachLoop::NAME_OF_SPLITTERNODE)
3475 DEBTRACE(
"SubjectOptimizerLoop::~SubjectOptimizerLoop " <<
getName());
3491 DEBTRACE(
"SubjectOptimizerLoop::localClean ");
3496 DEBTRACE(
"SubjectOptimizerLoop::setAlgorithm " << alglib <<
" " << symbol);
3504 else delete command;
3511 :
Subject(parent), _dataPort(port)
3526 DEBTRACE(
"father->edRemovePort(_dataPort)");
3533 DEBTRACE(
"------------------------------------------------------------------------------");
3534 DEBTRACE(
"SubjectDataPort::~SubjectDataPort: father->edRemovePort: YACS exception " << e.
what());
3535 DEBTRACE(
"------------------------------------------------------------------------------");
3554 DEBTRACE(
"SubjectDataPort::localClean ");
3556 for (list<SubjectLink*>::iterator it = lsl.begin(); it != lsl.end(); ++it)
3567 DEBTRACE(
"SubjectDataPort::setName " << name);
3569 string position =
"";
3571 if (proc !=
dynamic_cast<Proc*
>(node))
3588 else delete command;
3599 DEBTRACE(
"SubjectDataPort::tryCreateLink");
3612 string outNodePos =
"";
3617 string outportName = subOutport->
getName();
3619 string inNodePos =
"";
3624 string inportName = subInport->
getName();
3627 inNodePos, inportName, subInport->
getType(), control);
3660 DEBTRACE(
"SubjectDataPort::registerUndoDestroy");
3672 string typeName = dtyp->
name();
3674 undoCata->
_typeMap[typeName] = dtyp;
3687 list<InputPort*>::iterator pos = plist.begin();
3688 for (; (*pos) != port; pos++)
3690 nbUp = plist.size() -rang;
3701 list<OutputPort*>::iterator pos = plist.begin();
3702 for (; (*pos) != port; pos++)
3704 nbUp = plist.size() -rang;
3722 for (list<SubjectLink*>::iterator it = lsl.begin(); it != lsl.end(); ++it)
3724 (*it)->registerUndoDestroy();
3743 else if (
Switch* aSwitch =
dynamic_cast<Switch*
>(node))
3780 DEBTRACE(
"SubjectInputPort::localClean ");
3790 DEBTRACE(
"SubjectInputPort::setValue " << value);
3799 else delete command;
3832 DEBTRACE(
"SubjectOutputPort::localClean ");
3842 DEBTRACE(
"SubjectOutputPort::setValue " << value);
3851 else delete command;
3865 DEBTRACE(
"SubjectInputDataStreamPort::~SubjectInputDataStreamPort " <<
getName());
3875 std::vector<std::string> props;
3876 props.push_back(
"StorageLevel");
3878 props.push_back(
"DateCalSchem");
3879 props.push_back(
"Alpha");
3880 props.push_back(
"DeltaT");
3881 props.push_back(
"InterpolationSchem");
3882 props.push_back(
"ExtrapolationSchem");
3896 else delete command;
3913 DEBTRACE(
"SubjectInputDataStreamPort::localClean ");
3918 DEBTRACE(
"SubjectInputDataStreamPort::registerUndoDestroy");
3921 if (properties.empty())
3943 DEBTRACE(
"SubjectOutputDataStreamPort::~SubjectOutputDataStreamPort " <<
getName());
3961 else delete command;
3978 DEBTRACE(
"SubjectOutputDataStreamPort::localClean ");
3983 DEBTRACE(
"SubjectOutputDataStreamPort::registerUndoDestroy");
3986 if (properties.empty())
4006 _subOutNode(subOutNode), _outPort(outPort), _subInNode(subInNode), _inPort(inPort)
4042 DEBTRACE(
"SubjectLink::localClean ");
4087 else delete command;
4093 DEBTRACE(
"SubjectLink::registerUndoDestroy");
4109 if (properties.empty())
4126 _subOutNode(subOutNode), _subInNode(subInNode)
4137 DEBTRACE(
"SubjectControlLink::SubjectControlLink " <<
_name);
4152 DEBTRACE(
"------------------------------------------------------------------------------");
4153 DEBTRACE(
"SubjectControlLink::~SubjectControlLink: edRemoveLink YACS exception " << e.
what());
4154 DEBTRACE(
"------------------------------------------------------------------------------");
4172 DEBTRACE(
"SubjectControlLink::localClean ");
4191 DEBTRACE(
"SubjectControlLink::registerUndoDestroy");
4203 :
Subject(parent), _compoInst(component)
4235 DEBTRACE(
"SubjectComponent::localClean " <<
this);
4240 std::list<SubjectNode*> services;
4247 services.push_back((*it).second);
4251 while(!services.empty())
4254 services.pop_front();
4262 if (!container)
return;
4320 else delete command;
4323 else delete command;
4329 DEBTRACE(
"SubjectComponent::attachService");
4339 DEBTRACE(
"SubjectComponent::detachService");
4351 DEBTRACE(
"SubjectComponent::moveService");
4375 DEBTRACE(
"SubjectComponent::notifyServicesChange");
4379 (*it)->update(event, type, son);
4391 else delete command;
4420 DEBTRACE(
"SubjectContainerBase::~SubjectContainerBase");
4424 map<ComponentInstance*,SubjectComponent*> mapOfSubjectComponentCpy
4426 map<ComponentInstance*,SubjectComponent*>::iterator it = mapOfSubjectComponentCpy.begin();
4427 for ( ; it!=mapOfSubjectComponentCpy.end(); it++ )
4428 if ( (*it).first && (*it).first->getContainer() ==
_container )
4430 (*it).first->setContainer(0);
4459 DEBTRACE(
"SubjectContainer::setName " << name);
4468 else delete command;
4474 DEBTRACE(
"SubjectContainer::attachComponent");
4484 DEBTRACE(
"SubjectContainer::detachComponent");
4495 DEBTRACE(
"SubjectContainer::moveComponent");
4509 DEBTRACE(
"SubjectContainer::removeSubComponentFromSet");
4516 DEBTRACE(
"SubjectContainer::notifyComponentsChange");
4520 (*it)->update(event, type, son);
4521 (*it)->notifyServicesChange(event, type, son);
4538 DEBTRACE(
"SubjectContainerBase::localClean ");
4544 std::list<SubjectComponent*> compos;
4546 if ( (*it).first && (*it).first->getContainer() ==
_container )
4550 compos.push_back((*it).second);
4552 while(!compos.empty())
4554 compo=compos.front();
4575 DEBTRACE(
"SubjectContainer::registerUndoDestroy");
4594 throw Exception(
"Invalid container type in SubjectHPContainer !");
4601 DEBTRACE(
"SubjectHPContainer::registerUndoDestroy");
4609 :
Subject(parent), _typeCode(typeCode), _alias(alias)
4630 DEBTRACE(
"SubjectDataType::localClean ");
#define YASSERT(val)
YASSERT macro is always defined, used like assert, but throw a YACS::Exception instead of abort.
Composed node to group elementary and composed nodes.
bool edAddChild(Node *DISOWNnode)
Add a child node to the bloc.
Class for CORBA Service Node.
std::map< std::string, TypeCode * > _typeMap
Base class for all component instances.
virtual bool setContainer(Container *cont)
Container * getContainer() const
const std::string & getInstanceName() const
const std::string & getCompoName() const
Base class for all composed nodes.
std::list< InputDataStreamPort * > getSetOfInputDataStreamPort() const
std::string getChildName(const Node *node) const
std::list< Node * > getAllRecursiveNodes()
Get all children nodes elementary and composed including this node.
std::list< OutputPort * > getLocalOutputPorts() const
redefined on derived class of ComposedNode. by default a ComposedNode has no port by itself
std::vector< std::pair< OutPort *, InPort * > > getSetOfInternalLinks() const
std::string getName() const
void edRemoveCFLink(Node *nodeS, Node *nodeE)
Remove a controlflow link.
std::list< InputPort * > getLocalInputPorts() const
redefined on derived class of ComposedNode. by default a ComposedNode has no port by itself
virtual void edRemoveChild(Node *node)
Remove a child node.
std::list< OutputDataStreamPort * > getSetOfOutputDataStreamPort() const
virtual bool edAddDFLink(OutPort *start, InPort *end)
Connect an OutPort to an InPort and add the necessary control link.
virtual std::list< Node * > edGetDirectDescendants() const =0
virtual bool edAddChild(Node *DISOWNnode)
bool edAddCFLink(Node *nodeS, Node *nodeE)
Add a controlflow link between two nodes.
bool edAddLink(OutPort *start, InPort *end)
Add a dataflow link between two data ports.
void edRemoveLink(OutPort *start, InPort *end)
Remove a dataflow link.
Node * isInMyDescendance(Node *nodeToTest) const
Returns the parent of a node that is the direct child of this node.
virtual std::map< std::string, std::string > getProperties() const =0
virtual std::string getName() const
virtual Container * cloneAlways() const =0
Class for C++ Nodes (in process component)
Class for data parameters specification.
TypeCode * edGetType() const
virtual std::string getAsString()
returns port value as a string that can be used in a GUI for example
std::string getName() const
std::map< std::string, std::string > getProperties() const
Base class for dispatcher in observer pattern.
virtual void addObserver(Observer *observer, Node *object, const std::string &event)
Base class for dynamically (fully or semifully) built graphs.
InputPort * edGetNbOfBranchesPort()
void edRemoveChild(Node *node)
Remove a child node.
Base class for all calculation nodes.
std::list< OutputPort * > getSetOfOutputPort() const
std::list< OutputPort * > getLocalOutputPorts() const
std::list< InputPort * > getLocalInputPorts() const
std::list< OutputDataStreamPort * > getSetOfOutputDataStreamPort() const
void edRemovePort(Port *port)
std::list< InputPort * > getSetOfInputPort() const
std::list< InputDataStreamPort * > getSetOfInputDataStreamPort() const
InputPort * edGetNbOfTimesInputPort()
std::list< OutGate * > getBackLinks()
Class for calculation node (script) inlined (and executed) in the schema.
virtual std::string getScript()
Base class for all nodes.
virtual std::vector< std::pair< OutPort *, InPort * > > getSetOfLinksLeavingCurrentScope() const =0
std::map< std::string, std::string > getPropertyMap()
const std::string & getName() const
ComposedNode * getFather() const
virtual Node * getChildByName(const std::string &name) const =0
Node * cloneWithoutCompAndContDeepCpy(ComposedNode *father, bool editionOnly=true) const
This method MUST NEVER BE VIRTUAL
virtual int isValid()
indicates if the node is valid (returns 1) or not (returns 0)
int getNumId()
return node instance identifiant, unique for each node instance
virtual std::vector< std::pair< InPort *, OutPort * > > getSetOfLinksComingInCurrentScope() const =0
class to build optimization loops
bool isAlreadyInSet(InGate *inGate) const
std::list< InGate * > edSetInGate() const
virtual bool isAlreadyLinkedWith(InPort *withp) const =0
Base class for all schema objects.
std::map< std::string, TypeCode * > typeMap
virtual void removeContainer(Container *cont)
Remove a container from the containerMap.
std::map< std::string, Container * > containerMap
std::map< std::string, ComponentInstance * > componentInstanceMap
std::map< std::string, std::string > getProperties() const
unsigned int getRefCnt() const
Catalog * getBuiltinCatalog()
Get the catalog of base nodes (elementary and composed)
Class for Salome component Service Node.
Class for calculation node associated with a component service.
virtual ComponentInstance * getComponent()
Return the associated component instance.
Control node that emulates the C switch.
InputPort * edGetConditionPort()
int getRankOfNode(Node *node) const
Base class for all type objects.
virtual const char * name() const
virtual TypeCode * clone() const
InputPort * edGetConditionPort()
const char * what(void) const noexcept
SubjectComponent * getSubjectComponent()
SubjectContainerBase * getSubjectContainer()
SubjectInputDataStreamPort * getSubjectIDSPort()
YACS::HMI::SubjectNode * getSubjectNode()
YACS::ENGINE::Node * getNode()
SubjectOutputDataStreamPort * getSubjectODSPort()
SubjectOutputPort * getSubjectOutputPort()
virtual bool execute()
the command is executed a first time after its registration for undo redo, then on redo
static GuiContext * getCurrent()
YACS::HMI::ProcInvoc * getInvoc()
std::string _lastErrorMessage
std::map< std::pair< YACS::ENGINE::OutPort *, YACS::ENGINE::InPort * >, YACS::HMI::SubjectLink * > _mapOfSubjectLink
std::map< YACS::ENGINE::Container *, YACS::HMI::SubjectContainerBase * > _mapOfSubjectContainer
std::map< std::string, YACS::ENGINE::ComponentInstance * > _mapOfLastComponentInstance
std::map< YACS::ENGINE::DataPort *, YACS::HMI::SubjectDataPort * > _mapOfSubjectDataPort
std::map< std::pair< YACS::ENGINE::Node *, YACS::ENGINE::Node * >, YACS::HMI::SubjectControlLink * > _mapOfSubjectControlLink
std::map< int, YACS::HMI::SubjectNode * > _mapOfExecSubjectNode
std::map< YACS::ENGINE::ComponentInstance *, YACS::HMI::SubjectComponent * > _mapOfSubjectComponent
std::map< YACS::ENGINE::Node *, YACS::HMI::SubjectNode * > _mapOfSubjectNode
YACS::HMI::SubjectProc * getSubjectProc()
YACS::ENGINE::Catalog * getCurrentCatalog()
std::map< std::string, YACS::HMI::SubjectDataType * > _mapOfSubjectDataType
YACS::ENGINE::Proc * getProc()
virtual void select(bool isSelected)
virtual void decrementSubjects(Subject *subject)
static std::map< int, std::string > _eventNameMap
std::set< Subject * > _subjectSet
virtual void update(GuiEvent event, int type, Subject *son)
virtual void incrementSubjects(Subject *subject)
static void setEventMap()
static std::string eventName(GuiEvent event)
void add(Command *command)
YACS::ENGINE::Proc * getUndoProc()
YACS::ENGINE::Catalog * getUndoCata()
static TypeOfElem getTypeOfNode(YACS::ENGINE::Node *node)
virtual void clean(Command *command=0)
virtual void removeNode(SubjectNode *child)
virtual void houseKeepingAfterCutPaste(bool isCut, SubjectNode *son)
virtual void completeChildrenSubjectList(SubjectNode *son)
void localclean(Command *command=0)
virtual SubjectNode * addNode(YACS::ENGINE::Catalog *catalog, std::string compo, std::string type, std::string name, bool newCompoInst)
std::set< SubjectNode * > _children
SubjectBloc(YACS::ENGINE::Bloc *bloc, Subject *parent)
virtual void recursiveUpdate(GuiEvent event, int type, Subject *son)
virtual SubjectNode * getChild(YACS::ENGINE::Node *node=0) const
SubjectCORBANode(YACS::ENGINE::CORBANode *corbaNode, Subject *parent)
virtual void clean(Command *command=0)
void localclean(Command *command=0)
virtual ~SubjectCORBANode()
std::map< SubjectServiceNode *, SubjectReference * > _subReferenceMap
virtual TypeOfElem getType()
virtual ~SubjectComponent()
virtual void clean(Command *command=0)
virtual std::map< std::string, std::string > getProperties()
YACS::ENGINE::ComponentInstance * getComponent() const
YACS::ENGINE::ComponentInstance * _compoInst
virtual bool setProperties(std::map< std::string, std::string > properties)
virtual void setContainer()
virtual std::pair< std::string, int > getKey()
virtual void removeSubServiceFromSet(SubjectServiceNode *service)
std::set< SubjectServiceNode * > _subServiceSet
virtual SubjectReference * attachService(SubjectServiceNode *service)
SubjectReference * _subRefContainer
virtual void notifyServicesChange(GuiEvent event, int type, Subject *son)
virtual std::string getName()
virtual bool associateToContainer(SubjectContainerBase *subcont)
SubjectComponent(YACS::ENGINE::ComponentInstance *component, Subject *parent)
void localclean(Command *command=0)
virtual void detachService(SubjectServiceNode *service)
virtual void moveService(SubjectReference *reference)
virtual void removeExternalControlLinks()
virtual SubjectNode * addNode(YACS::ENGINE::Catalog *catalog, std::string compo, std::string type, std::string name, bool newCompoInst)
SubjectControlLink * addSubjectControlLink(SubjectNode *sno, SubjectNode *sni)
virtual void clean(Command *command=0)
void localclean(Command *command=0)
SubjectComposedNode(YACS::ENGINE::ComposedNode *composedNode, Subject *parent)
virtual ~SubjectComposedNode()
virtual void removeControlLink(SubjectControlLink *link)
virtual std::string getValue()
SubjectNode * addSubjectNode(YACS::ENGINE::Node *node, std::string name="", YACS::ENGINE::Catalog *catalog=0, std::string compo="", std::string type="")
virtual void loadChildren()
virtual void houseKeepingAfterCutPaste(bool isCut, SubjectNode *son)
virtual void removeLink(SubjectLink *link)
SubjectLink * addSubjectLink(SubjectNode *sno, SubjectDataPort *spo, SubjectNode *sni, SubjectDataPort *spi)
static SubjectComposedNode * getLowestCommonAncestor(SubjectNode *snode1, SubjectNode *snode2)
Retrieves the lowest common ancestor of 2 nodes.
virtual SubjectNode * createNode(YACS::ENGINE::Catalog *catalog, std::string compo, std::string type, std::string name, bool newCompoInst, int swCase=0)
virtual void completeChildrenSubjectList(SubjectNode *son)
YACS::ENGINE::ComposedNode * _composedNode
static SubjectContainerBase * New(YACS::ENGINE::Container *container, Subject *parent)
virtual bool setProperties(std::map< std::string, std::string > properties)
virtual void removeSubComponentFromSet(SubjectComponent *component)
virtual void notifyComponentsChange(GuiEvent event, int type, Subject *son)
virtual ~SubjectContainerBase()
void localclean(Command *command=0)
virtual YACS::ENGINE::Container * getContainer() const
virtual std::map< std::string, std::string > getProperties()
virtual bool setName(std::string name)
std::map< SubjectComponent *, SubjectReference * > _subReferenceMap
virtual void moveComponent(SubjectReference *reference)
virtual void clean(Command *command=0)
std::set< SubjectComponent * > _subComponentSet
virtual std::string getName()
virtual SubjectReference * attachComponent(SubjectComponent *component)
YACS::ENGINE::Container * _container
virtual void detachComponent(SubjectComponent *component)
SubjectContainerBase(YACS::ENGINE::Container *container, Subject *parent)
void registerUndoDestroy()
SubjectContainer(YACS::ENGINE::Container *container, Subject *parent)
virtual ~SubjectControlLink()
SubjectNode * _subOutNode
SubjectControlLink(SubjectNode *subOutNode, SubjectNode *subInNode, Subject *parent)
void localclean(Command *command=0)
virtual std::string getName()
virtual void clean(Command *command=0)
void registerUndoDestroy()
YACS::ENGINE::ComposedNode * _cla
SubjectNode * getSubjectInNode()
SubjectNode * getSubjectOutNode()
virtual ~SubjectCppNode()
SubjectCppNode(YACS::ENGINE::CppNode *cppNode, Subject *parent)
void localclean(Command *command=0)
virtual void clean(Command *command=0)
void localclean(Command *command=0)
virtual void clean(Command *command=0)
virtual ~SubjectDataNode()
SubjectDataNode(YACS::ENGINE::DataNode *dataNode, Subject *parent)
void localclean(Command *command=0)
void addSubjectLink(SubjectLink *subject)
std::string getExecValue()
std::list< SubjectLink * > _listSubjectLink
void setExecValue(std::string value)
static bool tryCreateLink(SubjectDataPort *subOutport, SubjectDataPort *subInport, bool control=true)
virtual bool setName(std::string name)
virtual void clean(Command *command=0)
std::list< SubjectLink * > getListOfSubjectLink()
void removeSubjectLink(SubjectLink *subject)
SubjectDataPort(YACS::ENGINE::DataPort *port, Subject *parent)
YACS::ENGINE::DataPort * _dataPort
virtual bool setValue(std::string value)
virtual std::string getName()
void registerUndoDestroy()
virtual ~SubjectDataPort()
virtual YACS::ENGINE::DataPort * getPort()
virtual YACS::ENGINE::TypeCode * getTypeCode()
YACS::ENGINE::TypeCode * _typeCode
virtual ~SubjectDataType()
void localclean(Command *command=0)
SubjectDataType(YACS::ENGINE::TypeCode *typeCode, Subject *parent, std::string alias)
virtual std::string getAlias()
virtual std::string getName()
virtual void clean(Command *command=0)
SubjectNode * _subjectInitNode
virtual void clean(Command *command=NULL)
virtual SubjectNode * addNode(YACS::ENGINE::Catalog *catalog, std::string compo, std::string type, std::string name, bool newCompoInst)
virtual SubjectNode * getChild(YACS::ENGINE::Node *node=NULL) const
YACS::ENGINE::DynParaLoop * _dynParaLoop
virtual ~SubjectDynParaLoop()
virtual std::string getValue()
SubjectNode * _subjectExecNode
virtual void removeNode(SubjectNode *child)
virtual void recursiveUpdate(GuiEvent event, int type, Subject *son)
virtual bool setNbBranches(std::string nbBranches)
void localclean(Command *command=NULL)
SubjectNode * _subjectFinalizeNode
SubjectDynParaLoop(YACS::ENGINE::DynParaLoop *dynParaLoop, Subject *parent)
virtual void houseKeepingAfterCutPaste(bool isCut, SubjectNode *son)
virtual void completeChildrenSubjectList(SubjectNode *son)
virtual bool OrderDataPorts(SubjectDataPort *portToMove, int isUp)
SubjectElementaryNode(YACS::ENGINE::ElementaryNode *elementaryNode, Subject *parent)
void localclean(Command *command=0)
virtual SubjectDataPort * addInputPort(YACS::ENGINE::Catalog *catalog, std::string type, std::string name)
virtual void clean(Command *command=0)
virtual SubjectDataPort * addIDSPort(YACS::ENGINE::Catalog *catalog, std::string type, std::string name)
virtual void removePort(SubjectDataPort *port)
virtual void restoreLinks()
virtual SubjectDataPort * addODSPort(YACS::ENGINE::Catalog *catalog, std::string type, std::string name)
YACS::ENGINE::ElementaryNode * _elementaryNode
virtual ~SubjectElementaryNode()
virtual void recursiveUpdate(GuiEvent event, int type, Subject *son)
virtual void loadChildren()
virtual SubjectDataPort * addOutputPort(YACS::ENGINE::Catalog *catalog, std::string type, std::string name)
SubjectForEachLoop(YACS::ENGINE::ForEachLoopGen *forEachLoop, Subject *parent)
YACS::ENGINE::ForEachLoopGen * _forEachLoop
virtual void removeNode(SubjectNode *child)
virtual ~SubjectForEachLoop()
virtual void completeChildrenSubjectList(SubjectNode *son)
void localclean(Command *command=0)
virtual void clean(Command *command=0)
virtual void houseKeepingAfterCutPaste(bool isCut, SubjectNode *son)
virtual SubjectNode * addNode(YACS::ENGINE::Catalog *catalog, std::string compo, std::string type, std::string name, bool newCompoInst)
YACS::ENGINE::ForLoop * _forLoop
SubjectForLoop(YACS::ENGINE::ForLoop *forLoop, Subject *parent)
virtual void clean(Command *command=0)
virtual std::string getValue()
virtual ~SubjectForLoop()
virtual void completeChildrenSubjectList(SubjectNode *son)
virtual bool setNbSteps(std::string nbSteps)
virtual void recursiveUpdate(GuiEvent event, int type, Subject *son)
void localclean(Command *command=0)
YACS::ENGINE::Container * getContainer() const
void registerUndoDestroy()
SubjectHPContainer(YACS::ENGINE::HomogeneousPoolContainer *container, Subject *parent)
virtual bool setScript(std::string script)
SubjectInlineNode(YACS::ENGINE::InlineNode *inlineNode, Subject *parent)
void localclean(Command *command=0)
YACS::ENGINE::InlineNode * _inlineNode
virtual std::string getScript()
virtual bool setExecutionMode(const std::string &mode)
virtual ~SubjectInlineNode()
virtual void clean(Command *command=0)
virtual bool setContainer(SubjectContainerBase *scont)
SubjectDataPort * getSubjectInPort()
SubjectNode * getSubjectInNode()
void registerUndoDestroy()
SubjectDataPort * getSubjectOutPort()
SubjectLink(SubjectNode *subOutNode, SubjectDataPort *outPort, SubjectNode *subInNode, SubjectDataPort *inPort, Subject *parent)
SubjectNode * _subOutNode
void localclean(Command *command=0)
SubjectDataPort * _outPort
virtual void clean(Command *command=0)
YACS::ENGINE::OutPort * _outp
YACS::ENGINE::ComposedNode * _cla
virtual std::vector< std::string > knownProperties()
SubjectNode * getSubjectOutNode()
virtual TypeOfElem getType()
virtual bool setProperties(std::map< std::string, std::string > properties)
YACS::ENGINE::InPort * _inp
virtual std::map< std::string, std::string > getProperties()
virtual std::string getName()
SubjectDataPort * _inPort
std::list< YACS::ENGINE::OutGate * > loutgate
virtual void removeExternalControlLinks()
void removeSubjectControlLink(SubjectControlLink *sub)
std::list< SubjectControlLink * > getSubjectControlLinks() const
std::list< SubjectOutputPort * > _listSubjectOutputPort
virtual std::string getName()
virtual SubjectInputDataStreamPort * addSubjectIDSPort(YACS::ENGINE::InputDataStreamPort *port, std::string name="")
YACS::ENGINE::Node * _node
virtual bool reparent(Subject *parent)
virtual bool setProperties(std::map< std::string, std::string > properties)
friend class CommandAddIDSPortFromCatalog
SubjectControlLink * addSubjectControlLink(SubjectControlLink *sub)
virtual SubjectOutputPort * addSubjectOutputPort(YACS::ENGINE::OutputPort *port, std::string name="")
virtual bool setName(std::string name)
virtual void update(GuiEvent event, int type, Subject *son)
std::vector< std::pair< YACS::ENGINE::OutPort *, YACS::ENGINE::InPort * > > dataLinks
virtual void notifyObserver(YACS::ENGINE::Node *object, const std::string &event)
std::list< SubjectLink * > _listSubjectLink
virtual void restoreLinks()
std::vector< std::pair< YACS::ENGINE::OutPort *, YACS::ENGINE::InPort * > > dataflowLinks
void setExecState(int execState)
virtual bool copy(Subject *parent)
std::list< SubjectInputPort * > _listSubjectInputPort
virtual void recursiveUpdate(GuiEvent event, int type, Subject *son)
virtual YACS::ENGINE::Node * getNode()
virtual bool putInComposedNode(std::string name, std::string type, bool toSaveRestoreLinks=true)
void localclean(Command *command=0)
friend class CommandAddInputPortFromCatalog
void registerUndoDestroy()
std::list< SubjectOutputDataStreamPort * > _listSubjectODSPort
virtual void clean(Command *command=0)
virtual SubjectInputPort * addSubjectInputPort(YACS::ENGINE::InputPort *port, std::string name="")
static bool tryCreateLink(SubjectNode *subOutNode, SubjectNode *subInNode)
std::list< SubjectInputDataStreamPort * > _listSubjectIDSPort
SubjectNode(YACS::ENGINE::Node *node, Subject *parent)
virtual std::map< std::string, std::string > getProperties()
std::list< SubjectControlLink * > _listSubjectControlLink
friend class CommandAddODSPortFromCatalog
virtual void removeExternalLinks()
virtual SubjectOutputDataStreamPort * addSubjectODSPort(YACS::ENGINE::OutputDataStreamPort *port, std::string name="")
friend class CommandAddOutputPortFromCatalog
std::list< YACS::ENGINE::InGate * > singate
SubjectObserver(Subject *ref)
virtual ~SubjectObserver()
virtual void select(bool isSelected)
virtual void update(GuiEvent event, int type, Subject *son)
SubjectOptimizerLoop(YACS::ENGINE::OptimizerLoop *optimizerLoop, Subject *parent)
virtual ~SubjectOptimizerLoop()
virtual bool setAlgorithm(const std::string &alglib, const std::string &symbol)
virtual void clean(Command *command=0)
void localclean(Command *command=0)
void localclean(Command *command=0)
virtual void clean(Command *command=0)
virtual ~SubjectOutNode()
SubjectOutNode(YACS::ENGINE::OutNode *outNode, Subject *parent)
virtual bool setProperties(std::map< std::string, std::string > properties)
virtual ~SubjectOutputDataStreamPort()
YACS::ENGINE::OutputDataStreamPort * _outputDataStreamPort
void registerUndoDestroy()
virtual std::map< std::string, std::string > getProperties()
SubjectOutputDataStreamPort(YACS::ENGINE::OutputDataStreamPort *port, Subject *parent)
void localclean(Command *command=0)
virtual void clean(Command *command=0)
YACS::ENGINE::OutputPort * _outputPort
virtual void clean(Command *command=0)
void localclean(Command *command=0)
virtual bool setValue(std::string value)
virtual ~SubjectOutputPort()
SubjectOutputPort(YACS::ENGINE::OutputPort *port, Subject *parent)
SubjectPresetNode(YACS::ENGINE::PresetNode *presetNode, Subject *parent)
virtual ~SubjectPresetNode()
void localclean(Command *command=0)
virtual void clean(Command *command=0)
std::vector< Subject * > _postEraseList
YACS::ENGINE::Proc * _proc
SubjectProc(YACS::ENGINE::Proc *proc, Subject *parent)
virtual SubjectContainerBase * addHPContainer(std::string name, std::string ref="")
SubjectContainerBase * addSubjectContainer(YACS::ENGINE::Container *cont, std::string name="")
virtual SubjectComponent * addComponent(std::string compoName, std::string containerName="")
virtual bool addDataType(YACS::ENGINE::Catalog *catalog, std::string typeName)
virtual void clean(Command *command=0)
virtual SubjectContainerBase * addContainer(std::string name, std::string ref="")
void addPostErase(Subject *sub)
SubjectDataType * addSubjectDataType(YACS::ENGINE::TypeCode *type, std::string alias)
void loadTypes()
Load types for a SubjectProc.
SubjectDataType * addComSubjectDataType(YACS::ENGINE::TypeCode *type, std::string alias)
void localclean(Command *command=0)
void removeSubjectContainer(SubjectContainerBase *scont)
SubjectComponent * addSubjectComponent(YACS::ENGINE::ComponentInstance *compo)
void removeSubjectDataType(std::string typeName)
SubjectPyFuncNode(YACS::ENGINE::PyFuncNode *pyFuncNode, Subject *parent)
virtual bool setFunctionName(std::string funcName)
virtual ~SubjectPyFuncNode()
virtual void clean(Command *command=0)
void localclean(Command *command=0)
virtual ~SubjectPythonNode()
virtual void clean(Command *command=0)
SubjectPythonNode(YACS::ENGINE::PythonNode *pythonNode, Subject *parent)
void localclean(Command *command=0)
virtual void clean(Command *command=0)
SubjectReference(Subject *ref, Subject *parent)
void localclean(Command *command=0)
virtual void reparent(Subject *parent)
virtual ~SubjectReference()
virtual Subject * getReference() const
virtual std::string getName()
SubjectSalomeNode(YACS::ENGINE::SalomeNode *salomeNode, Subject *parent)
void localclean(Command *command=0)
virtual ~SubjectSalomeNode()
virtual void clean(Command *command=0)
void localclean(Command *command=0)
virtual void clean(Command *command=0)
virtual ~SubjectSalomePythonNode()
SubjectSalomePythonNode(YACS::ENGINE::SalomePythonNode *salomePythonNode, Subject *parent)
SubjectReference * _subjectReference
void localclean(Command *command=0)
virtual ~SubjectServiceNode()
virtual void clean(Command *command=0)
SubjectReference * _subRefComponent
virtual SubjectReference * getSubjectReference()
virtual void setComponentFromCatalog(YACS::ENGINE::Catalog *catalog, std::string compo, std::string service)
friend class CommandAddComponentFromCatalog
YACS::ENGINE::ServiceNode * _serviceNode
virtual void removeSubRefComponent()
friend class CommandAssociateServiceToComponent
virtual bool associateToComponent(SubjectComponent *subcomp)
virtual void addSubjectReference(Subject *ref)
virtual void setComponent()
SubjectServiceNode(YACS::ENGINE::ServiceNode *serviceNode, Subject *parent)
virtual std::string getName()
void localclean(Command *command=0)
SubjectSplitterNode(YACS::ENGINE::SplitterNode *splitterNode, Subject *parent)
virtual ~SubjectSplitterNode()
virtual void clean(Command *command=0)
virtual ~SubjectStudyInNode()
void localclean(Command *command=0)
SubjectStudyInNode(YACS::ENGINE::StudyInNode *studyInNode, Subject *parent)
virtual void clean(Command *command=0)
SubjectStudyOutNode(YACS::ENGINE::StudyOutNode *studyOutNode, Subject *parent)
virtual ~SubjectStudyOutNode()
void localclean(Command *command=0)
virtual void clean(Command *command=0)
virtual std::string getValue()
virtual void houseKeepingAfterCutPaste(bool isCut, SubjectNode *son)
virtual void removeNode(SubjectNode *son)
virtual SubjectNode * getChild(YACS::ENGINE::Node *node=0) const
virtual SubjectNode * addNode(YACS::ENGINE::Catalog *catalog, std::string compo, std::string type, std::string name, bool newCompoInst, int swCase, bool replace=false)
YACS::ENGINE::Switch * _switch
virtual bool setSelect(std::string select)
std::map< int, SubjectNode * > getBodyMap()
virtual void completeChildrenSubjectList(SubjectNode *son)
virtual bool setCase(std::string caseId, SubjectNode *snode)
std::map< int, SubjectNode * > _bodyMap
virtual void clean(Command *command=0)
void localclean(Command *command=0)
SubjectSwitch(YACS::ENGINE::Switch *aSwitch, Subject *parent)
virtual void recursiveUpdate(GuiEvent event, int type, Subject *son)
virtual std::string getValue()
virtual void completeChildrenSubjectList(SubjectNode *son)
virtual bool setCondition(std::string condition)
SubjectWhileLoop(YACS::ENGINE::WhileLoop *whileLoop, Subject *parent)
virtual ~SubjectWhileLoop()
virtual void clean(Command *command=0)
YACS::ENGINE::WhileLoop * _whileLoop
virtual SubjectNode * addNode(YACS::ENGINE::Catalog *catalog, std::string compo, std::string type, std::string name, bool newCompoInst)
virtual void recursiveUpdate(GuiEvent event, int type, Subject *son)
virtual void houseKeepingAfterCutPaste(bool isCut, SubjectNode *son)
void localclean(Command *command=0)
SubjectXmlNode(YACS::ENGINE::XmlNode *xmlNode, Subject *parent)
virtual ~SubjectXmlNode()
virtual void clean(Command *command=0)
void localclean(Command *command=0)
virtual void clean(Command *command=0)
virtual void update(GuiEvent event, int type, Subject *son)
static void erase(Subject *sub, Command *command=0, bool post=false)
virtual bool setName(std::string name)
virtual Subject * getParent()
virtual bool setProperties(std::map< std::string, std::string > properties)
virtual void setProgress(std::string newProgress)
virtual std::string getName()
void localclean(Command *command=0)
virtual void loadChildren()
virtual std::vector< std::string > knownProperties()
virtual bool destroy(Subject *son)
From user action in Ihm, destroy an object.
virtual void setParent(Subject *son)
friend class CommandReparentNode
std::set< GuiObserver * > _setObs
virtual TypeOfElem getType()
virtual void attach(GuiObserver *obs)
virtual void addSubjectReference(Subject *ref)
virtual void detach(GuiObserver *obs)
virtual void select(bool isSelected)
virtual std::map< std::string, std::string > getProperties()
Subject(Subject *parent=0)
void registerUndoDestroy()
YACSRUNTIMESALOME_EXPORT RuntimeSALOME * getSALOMERuntime()
def ref(target, callback=None)