X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2Fengine%2FLoop.cxx;h=325a05f9a01120f1df46e0e4a04c6237e7e90d7b;hb=e41dd6512d61d8270dec5ad62f4a0b6703ff112d;hp=cc4f089f96cb4f26f298f8d3ec891b39feedca7b;hpb=1dcee809aa495527ea5cce3b935a5999ec0a1577;p=modules%2Fyacs.git diff --git a/src/engine/Loop.cxx b/src/engine/Loop.cxx index cc4f089f9..325a05f9a 100644 --- a/src/engine/Loop.cxx +++ b/src/engine/Loop.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2006-2016 CEA/DEN, EDF R&D +// Copyright (C) 2006-2022 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -47,7 +47,7 @@ void InputPort4DF2DS::getAllRepresentants(std::set& repr) const repr.insert(s.begin(),s.end()); } -void *InputPort4DF2DS::get() const throw(YACS::Exception) +void *InputPort4DF2DS::get() const { if(!_data) { @@ -75,7 +75,7 @@ void InputPort4DF2DS::exSaveInit() _initValue->incrRef(); } -void InputPort4DF2DS::put(const void *data) throw(ConversionException) +void InputPort4DF2DS::put(const void *data) { put((Any *)data); } @@ -85,10 +85,16 @@ InputPort *InputPort4DF2DS::clone(Node *newHelder) const throw Exception("InputPort4DF2DS::clone : internal error"); } -void InputPort4DF2DS::put(Any *data) +void InputPort4DF2DS::releaseData() { if(_data) _data->decrRef(); + _data = nullptr; +} + +void InputPort4DF2DS::put(Any *data) +{ + InputPort4DF2DS::releaseData(); _data=data; _data->incrRef(); } @@ -116,7 +122,7 @@ void DFToDSForLoop::getReadyTasks(std::vector& tasks) { } -InputPort *DFToDSForLoop::getInputPort(const std::string& name) const throw(YACS::Exception) +InputPort *DFToDSForLoop::getInputPort(const std::string& name) const { try { return Node::getInputPort(name); @@ -127,7 +133,7 @@ InputPort *DFToDSForLoop::getInputPort(const std::string& name) const throw(YACS return (*it); } -OutputDataStreamPort *DFToDSForLoop::getOutputDataStreamPort(const std::string& name) const throw(YACS::Exception) +OutputDataStreamPort *DFToDSForLoop::getOutputDataStreamPort(const std::string& name) const { list::const_iterator it =_setOfOutputDataStreamPort.begin(); return (*it); @@ -161,7 +167,7 @@ void OutputPort4DS2DF::getAllRepresented(std::set& represented) const (*iter)->getAllRepresented(represented); } -void OutputPort4DS2DF::put(const void *data) throw(ConversionException) +void OutputPort4DS2DF::put(const void *data) { put((Any *)data); OutputPort::put(data); @@ -221,13 +227,13 @@ void DSToDFForLoop::getReadyTasks(std::vector& tasks) { } -OutputPort *DSToDFForLoop::getOutputPort(const std::string& name) const throw(YACS::Exception) +OutputPort *DSToDFForLoop::getOutputPort(const std::string& name) const { list::const_iterator it = _setOfOutputPort.begin(); return (*it); } -InputDataStreamPort *DSToDFForLoop::getInputDataStreamPort(const std::string& name) const throw(YACS::Exception) +InputDataStreamPort *DSToDFForLoop::getInputDataStreamPort(const std::string& name) const { list::const_iterator it = _setOfInputDataStreamPort.begin(); return (*it); @@ -344,7 +350,7 @@ Node *Loop::edSetNode(Node *node) return ret; } -bool Loop::edAddChild(Node *node) throw(YACS::Exception) +bool Loop::edAddChild(Node *node) { return edSetNode(node); } @@ -384,7 +390,7 @@ void Loop::getReadyTasks(std::vector& tasks) } } -void Loop::edRemoveChild(Node *node) throw(YACS::Exception) +void Loop::edRemoveChild(Node *node) { StaticDefinedComposedNode::edRemoveChild(node); if(_node==node) @@ -419,11 +425,10 @@ int Loop::getMaxLevelOfParallelism() const return _node->getMaxLevelOfParallelism(); } -double Loop::getWeightRegardingDPL() const +void Loop::getWeightRegardingDPL(ComplexWeight *weight) { - if(!_node) - return 0.; - return _node->getWeightRegardingDPL(); + if(_node) + _node->getWeightRegardingDPL(weight); } void Loop::partitionRegardingDPL(const PartDefinition *pd, std::map >& zeMap) @@ -432,7 +437,7 @@ void Loop::partitionRegardingDPL(const PartDefinition *pd, std::mappartitionRegardingDPL(pd,zeMap); } -Node *Loop::getChildByShortName(const std::string& name) const throw(YACS::Exception) +Node *Loop::getChildByShortName(const std::string& name) const { if (_node) if(name==_node->getName()) @@ -441,12 +446,12 @@ Node *Loop::getChildByShortName(const std::string& name) const throw(YACS::Excep throw Exception(what); } -TypeCode* Loop::MappingDF2DS(TypeCode* type) throw(YACS::Exception) +TypeCode* Loop::MappingDF2DS(TypeCode* type) { return type; } -TypeCode* Loop::MappingDS2DF(TypeCode* type) throw(YACS::Exception) +TypeCode* Loop::MappingDS2DF(TypeCode* type) { return type; } @@ -508,7 +513,7 @@ void Loop::buildDelegateOf(std::pair& port, InPort *finalT port.first=(*iter)->getOutputDataStreamPort(""); } -void Loop::getDelegateOf(InPort * & port, OutPort *initialStart, const std::list& pointsOfView) throw(YACS::Exception) +void Loop::getDelegateOf(InPort * & port, OutPort *initialStart, const std::list& pointsOfView) { string typeOfPortInstance=port->getNameOfTypeOfCurrentInstance(); if(typeOfPortInstance!=InputPort::NAME || @@ -531,7 +536,7 @@ void Loop::getDelegateOf(InPort * & port, OutPort *initialStart, const std::list } void Loop::getDelegateOf(std::pair& port, InPort *finalTarget, - const std::list& pointsOfView) throw(YACS::Exception) + const std::list& pointsOfView) { string typeOfPortInstance=(port.first)->getNameOfTypeOfCurrentInstance(); if(typeOfPortInstance!=OutputPort::NAME || @@ -553,7 +558,7 @@ void Loop::getDelegateOf(std::pair& port, InPort *finalTar port.first=(*iter)->getOutputDataStreamPort(""); } -void Loop::releaseDelegateOf(InPort * & port, OutPort *initialStart, const std::list& pointsOfView) throw(YACS::Exception) +void Loop::releaseDelegateOf(InPort * & port, OutPort *initialStart, const std::list& pointsOfView) { string typeOfPortInstance=port->getNameOfTypeOfCurrentInstance(); if(typeOfPortInstance!=InputPort::NAME || @@ -583,7 +588,7 @@ void Loop::releaseDelegateOf(InPort * & port, OutPort *initialStart, const std:: } } -void Loop::releaseDelegateOf(OutPort *portDwn, OutPort *portUp, InPort *finalTarget, const std::list& pointsOfView) throw(YACS::Exception) +void Loop::releaseDelegateOf(OutPort *portDwn, OutPort *portUp, InPort *finalTarget, const std::list& pointsOfView) { if(portDwn==portUp) return ; @@ -599,7 +604,7 @@ void Loop::releaseDelegateOf(OutPort *portDwn, OutPort *portUp, InPort *finalTar } } -void Loop::checkNoCyclePassingThrough(Node *node) throw(YACS::Exception) +void Loop::checkNoCyclePassingThrough(Node *node) { //throw Exception("Loop::checkNoCyclePassingThrough : Internal error occured"); } @@ -639,7 +644,7 @@ bool Loop::isNecessaryToBuildSpecificDelegateDF2DS(const std::list