70 std::map<int, std::string> GuiObserver::_eventNameMap;
80 GuiContext::getCurrent()->getSubjectProc()->cleanPostErase();
85 Subject::Subject(
Subject *parent) : _parent(parent)
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 & getCompoName() const
const std::string & getInstanceName() 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
virtual std::list< Node * > edGetDirectDescendants() const =0
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 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 Container * cloneAlways() const =0
virtual std::string getName() const
Class for C++ Nodes (in process component)
Class for data parameters specification.
virtual std::string getAsString()
returns port value as a string that can be used in a GUI for example
TypeCode * edGetType() const
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< InputPort * > getLocalInputPorts() const
std::list< InputPort * > getSetOfInputPort() const
std::list< InputDataStreamPort * > getSetOfInputDataStreamPort() const
void edRemovePort(Port *port)
std::list< OutputDataStreamPort * > getSetOfOutputDataStreamPort() const
std::list< OutputPort * > getLocalOutputPorts() 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< InPort *, OutPort * > > getSetOfLinksComingInCurrentScope() const =0
virtual Node * getChildByName(const std::string &name) const =0
ComposedNode * getFather() const
std::map< std::string, std::string > getPropertyMap()
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)
virtual std::vector< std::pair< OutPort *, InPort * > > getSetOfLinksLeavingCurrentScope() const =0
const std::string & getName() const
int getNumId()
return node instance identifiant, unique for each node instance
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
YACS::HMI::SubjectProc * getSubjectProc()
YACS::ENGINE::Proc * getProc()
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
YACS::HMI::ProcInvoc * getInvoc()
YACS::ENGINE::Catalog * getCurrentCatalog()
std::map< YACS::ENGINE::ComponentInstance *, YACS::HMI::SubjectComponent * > _mapOfSubjectComponent
std::map< YACS::ENGINE::Node *, YACS::HMI::SubjectNode * > _mapOfSubjectNode
static GuiContext * getCurrent()
std::map< std::string, YACS::HMI::SubjectDataType * > _mapOfSubjectDataType
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::Catalog * getUndoCata()
YACS::ENGINE::Proc * getUndoProc()
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()
SubjectNode * getSubjectOutNode()
virtual void clean(Command *command=0)
SubjectNode * getSubjectInNode()
void registerUndoDestroy()
YACS::ENGINE::ComposedNode * _cla
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)
void removeSubjectLink(SubjectLink *subject)
SubjectDataPort(YACS::ENGINE::DataPort *port, Subject *parent)
YACS::ENGINE::DataPort * _dataPort
std::list< SubjectLink * > getListOfSubjectLink()
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()
void registerUndoDestroy()
SubjectLink(SubjectNode *subOutNode, SubjectDataPort *outPort, SubjectNode *subInNode, SubjectDataPort *inPort, Subject *parent)
SubjectNode * _subOutNode
void localclean(Command *command=0)
SubjectNode * getSubjectOutNode()
SubjectDataPort * _outPort
virtual void clean(Command *command=0)
YACS::ENGINE::OutPort * _outp
YACS::ENGINE::ComposedNode * _cla
virtual std::vector< std::string > knownProperties()
virtual TypeOfElem getType()
SubjectDataPort * getSubjectOutPort()
virtual bool setProperties(std::map< std::string, std::string > properties)
SubjectNode * getSubjectInNode()
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< 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
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
SubjectControlLink * addSubjectControlLink(SubjectControlLink *sub)
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
std::list< SubjectControlLink * > getSubjectControlLinks() const
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()
void registerUndoDestroy()
YACSRUNTIMESALOME_EXPORT RuntimeSALOME * getSALOMERuntime()
def ref(target, callback=None)