X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2Fengine%2FElementaryNode.cxx;h=d227016b9bfb3542e7209a44ed99752a91644b43;hb=c9208a8ef7f32a620d9650908588320ff159a167;hp=c92608532737687451e29f7c29a21699adb380c7;hpb=901d82d3e2b29864bd1dc19a45d52567abdca727;p=modules%2Fyacs.git diff --git a/src/engine/ElementaryNode.cxx b/src/engine/ElementaryNode.cxx index c92608532..d227016b9 100644 --- a/src/engine/ElementaryNode.cxx +++ b/src/engine/ElementaryNode.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2006-2015 CEA/DEN, EDF R&D +// Copyright (C) 2006-2019 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,11 +47,13 @@ using namespace std; ElementaryNode::ElementaryNode(const std::string& name): Node(name), _createDatastreamPorts(false), - _multi_port_node(false) + _multi_port_node(false), + _weight() { + _weight.setDefaultElementary(); } -ElementaryNode::ElementaryNode(const ElementaryNode& other, ComposedNode *father):Node(other,father) +ElementaryNode::ElementaryNode(const ElementaryNode& other, ComposedNode *father):Node(other,father), _weight(other._weight) { _createDatastreamPorts = other._createDatastreamPorts; _multi_port_node = other._multi_port_node; @@ -92,17 +94,17 @@ void ElementaryNode::initCommonPartWithoutStateManagement(bool start) for(list::iterator iter2=_setOfInputPort.begin();iter2!=_setOfInputPort.end();iter2++) (*iter2)->exInit(start); _inGate.exReset(); - if(_state == YACS::DISABLED) - { - exDisabledState(); // to refresh propagation of DISABLED state - return; - } } void ElementaryNode::init(bool start) { DEBTRACE("ElementaryNode::init " << getName() << " " << start << " " << _state); initCommonPartWithoutStateManagement(start); + if(_state == YACS::DISABLED) + { + exDisabledState(); // to refresh propagation of DISABLED state + return ; + } setState(YACS::READY); } @@ -433,10 +435,10 @@ void ElementaryNode::getReadyTasks(std::vector& tasks) std::string input_port_name = (*iter1)->getName(); // Get Port Name in master node InputPort * master_port = getInputPort(input_port_name); - for (std::set::const_iterator itt=master_port->_backLinks.begin(); itt!=master_port->_backLinks.end();itt++) + for (auto itt : master_port->_backLinks) { // Connect dataflow - getProc()->edAddDFLink((*itt),(*iter1)); + getProc()->edAddDFLink(itt.first,(*iter1)); } } @@ -892,3 +894,10 @@ void ElementaryNode::getCoupledNodes(std::set& coupledSet) } } +void ElementaryNode::setWeight(double elementaryWeight) +{ + if(elementaryWeight<=0.) + throw Exception("ElementaryNode::setWeight : invalid input value !"); + _weight.setElementaryWeight(elementaryWeight); +} +