-// 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
void findAllNodesStartingFrom(Node *start, std::set<Node *>& result, std::map<Node *, std::set<Node *> >& accelStr, LinkInfo& info) const;
virtual std::string typeName() { return "YACS__ENGINE__Bloc"; }
int getMaxLevelOfParallelism() const;
+ void removeRecursivelyRedundantCL();
protected:
bool areAllSubNodesFinished() const;
bool areAllSubNodesDone() const;
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,
template<>
struct CFDirectionVisTraits<false>
{
- typedef std::map<OutGate *,bool>::iterator Iterator;
- typedef std::map<OutGate *,bool>& Nexts;
+ typedef std::list< std::pair<OutGate *,bool> >::iterator Iterator;
+ typedef std::list< std::pair<OutGate *,bool> >& Nexts;
static Nexts getNexts(Node *node) { return node->getInGate()->edMapOutGate(); }
};