X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fengine%2FLoop.cxx;h=4b9a1e19a751ce88a026b18ddb6e6e93cd2b1877;hb=HEAD;hp=66d52d28d56f844b5214980dda21e69ad3bb3a7c;hpb=e41351582d47d960d682e138f8137edcce783652;p=modules%2Fyacs.git diff --git a/src/engine/Loop.cxx b/src/engine/Loop.cxx index 66d52d28d..4b9a1e19a 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-2024 CEA, EDF // // 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) @@ -431,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()) @@ -440,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; } @@ -507,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 || @@ -530,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 || @@ -552,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 || @@ -582,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 ; @@ -598,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"); } @@ -638,7 +644,7 @@ bool Loop::isNecessaryToBuildSpecificDelegateDF2DS(const std::list