X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2Fengine%2FBloc.hxx;h=3cfec917263b5eab4445c9a4d2530a135dca5d40;hb=17b2be6fdceef9981751309428fbfe58f155c48e;hp=7560f712492d06c922e4e929dd36e5a2fe3e1fd5;hpb=1c3ffebe3d8052af00617aa831f1841049483e8c;p=modules%2Fyacs.git diff --git a/src/engine/Bloc.hxx b/src/engine/Bloc.hxx index 7560f7124..3cfec9172 100644 --- a/src/engine/Bloc.hxx +++ b/src/engine/Bloc.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2006-2015 CEA/DEN, EDF R&D +// Copyright (C) 2006-2016 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 @@ -61,6 +61,7 @@ namespace YACS void findAllNodesStartingFrom(Node *start, std::set& result, std::map >& accelStr, LinkInfo& info) const; virtual std::string typeName() { return "YACS__ENGINE__Bloc"; } int getMaxLevelOfParallelism() const; + void removeRecursivelyRedundantCL(); protected: bool areAllSubNodesFinished() const; bool areAllSubNodesDone() const; @@ -70,6 +71,7 @@ namespace YACS YACS::Event updateStateOnFinishedEventFrom(Node *node); YACS::Event updateStateOnFailedEventFrom(Node *node, const Executor *execInst); void initComputation() const; + void performCFComputationsOnlyOneLevel(LinkInfo& info) const; void performCFComputations(LinkInfo& info) const; void destructCFComputations(LinkInfo& info) const; void checkControlDependancy(OutPort *start, InPort *end, bool cross, @@ -110,8 +112,8 @@ namespace YACS template<> struct CFDirectionVisTraits { - typedef std::map::iterator Iterator; - typedef std::map& Nexts; + typedef std::list< std::pair >::iterator Iterator; + typedef std::list< std::pair >& Nexts; static Nexts getNexts(Node *node) { return node->getInGate()->edMapOutGate(); } };