There is also some text format where tab was used for indentation.
void exSaveInit();
void exRestoreInit();
Any *getValue() const { return _value; }
- int getIntValue() const { return _value->getIntValue(); }
+ int getIntValue() const { return _value ? _value->getIntValue():0; }
void put(Any *data);
void *get() const;
virtual std::string getAsString();
*/
list<ProgressWeight> ComposedNode::getProgressWeight() const
{
- list<ProgressWeight> ret;
- list<Node *> setOfNode=edGetDirectDescendants();
- for(list<Node *>::const_iterator iter=setOfNode.begin();iter!=setOfNode.end();iter++)
- {
- list<ProgressWeight> myCurrentSet=((ComposedNode*)(*iter))->getProgressWeight();
- ret.insert(ret.end(),myCurrentSet.begin(),myCurrentSet.end());
- }
+ list<ProgressWeight> ret;
+ list<Node *> setOfNode=edGetDirectDescendants();
+ for(list<Node *>::const_iterator iter=setOfNode.begin();iter!=setOfNode.end();iter++)
+ {
+ list<ProgressWeight> myCurrentSet=((ComposedNode*)(*iter))->getProgressWeight();
+ ret.insert(ret.end(),myCurrentSet.begin(),myCurrentSet.end());
+ }
return ret;
}
*/
list<ProgressWeight> ElementaryNode::getProgressWeight() const
{
- list<ProgressWeight> ret;
- ProgressWeight myWeight;
- myWeight.weightTotal=1;
- if (getState() == YACS::DONE)
- myWeight.weightDone=1;
- else
- myWeight.weightDone=0;
- ret.push_back(myWeight);
+ list<ProgressWeight> ret;
+ ProgressWeight myWeight;
+ myWeight.weightTotal=1;
+ if (getState() == YACS::DONE)
+ myWeight.weightDone=1;
+ else
+ myWeight.weightDone=0;
+ ret.push_back(myWeight);
return ret;
}
_execNodes[id]->exUpdateState();
_nbOfEltConsumed++;
_initializingCounter--;
+ _currentIndex++;
if (_initializingCounter == 0)
_initNode->setState(DONE);
return YACS::NOEVENT;
*/
list<ProgressWeight> ForEachLoop::getProgressWeight() const
{
- list<ProgressWeight> ret;
- list<Node *> setOfNode=edGetDirectDescendants();
- int elemDone=getCurrentIndex();
- int elemTotal=getNbOfElementsToBeProcessed();
- for(list<Node *>::const_iterator iter=setOfNode.begin();iter!=setOfNode.end();iter++)
- {
- list<ProgressWeight> myCurrentSet=(*iter)->getProgressWeight();
- for(list<ProgressWeight>::iterator iter=myCurrentSet.begin();iter!=myCurrentSet.end();iter++)
- {
- (*iter).weightDone=((*iter).weightTotal) * elemDone;
- (*iter).weightTotal*=elemTotal;
- }
- ret.insert(ret.end(),myCurrentSet.begin(),myCurrentSet.end());
-
- }
- return ret;
+ list<ProgressWeight> ret;
+ list<Node *> setOfNode=edGetDirectDescendants();
+ int elemDone=getCurrentIndex();
+ int elemTotal=getNbOfElementsToBeProcessed();
+ for(list<Node *>::const_iterator iter=setOfNode.begin();iter!=setOfNode.end();iter++)
+ {
+ list<ProgressWeight> myCurrentSet=(*iter)->getProgressWeight();
+ for(list<ProgressWeight>::iterator iter=myCurrentSet.begin();iter!=myCurrentSet.end();iter++)
+ {
+ (*iter).weightDone=((*iter).weightTotal) * elemDone;
+ (*iter).weightTotal*=elemTotal;
+ }
+ ret.insert(ret.end(),myCurrentSet.begin(),myCurrentSet.end());
+ }
+ return ret;
}
int ForEachLoop::getNbOfElementsToBeProcessed() const
{
- return _splitterNode.getNumberOfElements();
+ int nbBranches = _nbOfBranches.getIntValue();
+ return _splitterNode.getNumberOfElements()
+ + (_initNode ? nbBranches:0)
+ + (_finalizeNode ? nbBranches:0) ;
}
/*!
*/
list<ProgressWeight> ForLoop::getProgressWeight() const
{
- list<ProgressWeight> ret;
- list<Node *> setOfNode=edGetDirectDescendants();
- int nbStepsDone=getNbOfTurns();
- int nbStepsTotal=getNbSteps();
- for(list<Node *>::const_iterator iter=setOfNode.begin();iter!=setOfNode.end();iter++)
- {
- list<ProgressWeight> myCurrentSet=(*iter)->getProgressWeight();
- for(list<ProgressWeight>::iterator iter=myCurrentSet.begin();iter!=myCurrentSet.end();iter++)
- {
- (*iter).weightDone=((*iter).weightTotal) * nbStepsDone;
- (*iter).weightTotal*=nbStepsTotal;
- }
- ret.insert(ret.end(),myCurrentSet.begin(),myCurrentSet.end());
-
- }
- return ret;
+ list<ProgressWeight> ret;
+ list<Node *> setOfNode=edGetDirectDescendants();
+ int nbStepsDone=getNbOfTurns();
+ int nbStepsTotal=getNbSteps();
+ for(list<Node *>::const_iterator iter=setOfNode.begin();iter!=setOfNode.end();iter++)
+ {
+ list<ProgressWeight> myCurrentSet=(*iter)->getProgressWeight();
+ for(list<ProgressWeight>::iterator iter=myCurrentSet.begin();iter!=myCurrentSet.end();iter++)
+ {
+ (*iter).weightDone=((*iter).weightTotal) * nbStepsDone;
+ (*iter).weightTotal*=nbStepsTotal;
+ }
+ ret.insert(ret.end(),myCurrentSet.begin(),myCurrentSet.end());
+ }
+ return ret;
}
int Proc::getGlobalProgressPercent()
{
- list<ProgressWeight> weightList = getProgressWeight();
- int weightDone = 0;
- int weightTotal = 0;
- int progressPercent = 0;
- for(list<ProgressWeight>::const_iterator iter=weightList.begin();iter!=weightList.end();iter++)
- {
- weightDone += (*iter).weightDone;
- weightTotal += (*iter).weightTotal;
- }
+ list<ProgressWeight> weightList = getProgressWeight();
+ int weightDone = 0;
+ int weightTotal = 0;
+ int progressPercent = 0;
+ for(list<ProgressWeight>::const_iterator iter=weightList.begin();iter!=weightList.end();iter++)
+ {
+ weightDone += (*iter).weightDone;
+ weightTotal += (*iter).weightTotal;
+ }
if (weightTotal > 0)
- progressPercent = int(float(weightDone) / float(weightTotal) * 100);
+ progressPercent = int(float(weightDone) / float(weightTotal) * 100);
return progressPercent;
}
*/
list<ProgressWeight> Switch::getProgressWeight() const
{
- list<ProgressWeight> ret;
- list<Node *> setOfNode=edGetDirectDescendants();
- if (getState() == YACS::DONE)
- {
- for(list<Node *>::const_iterator iter=setOfNode.begin();iter!=setOfNode.end();iter++)
- {
- if (getEffectiveState(*iter) == YACS::DONE)
- ret=(*iter)->getProgressWeight();
- }
- }
- else
- {
- for(list<Node *>::const_iterator iter=setOfNode.begin();iter!=setOfNode.end();iter++)
+ list<ProgressWeight> ret;
+ list<Node *> setOfNode=edGetDirectDescendants();
+ if (getState() == YACS::DONE)
+ {
+ for(list<Node *>::const_iterator iter=setOfNode.begin();iter!=setOfNode.end();iter++)
+ {
+ if (getEffectiveState(*iter) == YACS::DONE)
+ ret=(*iter)->getProgressWeight();
+ }
+ }
+ else
+ {
+ for(list<Node *>::const_iterator iter=setOfNode.begin();iter!=setOfNode.end();iter++)
{
- list<ProgressWeight> myCurrentSet=(*iter)->getProgressWeight();
- ret.insert(ret.end(),myCurrentSet.begin(),myCurrentSet.end());
+ list<ProgressWeight> myCurrentSet=(*iter)->getProgressWeight();
+ ret.insert(ret.end(),myCurrentSet.begin(),myCurrentSet.end());
}
- }
- return ret;
+ }
+ return ret;
}
bool Switch::edAddChild(Node *node) throw(YACS::Exception)