X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fengine%2FSwitch.hxx;h=be5b1c16fcb03f78102f8094d0c87ad8d4f555ed;hb=53629c53c7f47f2d86aa47e31206e836290f055a;hp=4de85225c4e8c62dd8f8e9f3fae0e72e17e0490f;hpb=f4c10bf1781a76534bb1fa293aef541aef56148b;p=modules%2Fyacs.git diff --git a/src/engine/Switch.hxx b/src/engine/Switch.hxx index 4de85225c..be5b1c16f 100644 --- a/src/engine/Switch.hxx +++ b/src/engine/Switch.hxx @@ -1,24 +1,26 @@ -// Copyright (C) 2006-2008 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 -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. // -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + #ifndef __SWITCH_HXX__ #define __SWITCH_HXX__ +#include "YACSlibEngineExport.hxx" #include "StaticDefinedComposedNode.hxx" #include "ElementaryNode.hxx" #include "AnyInputPort.hxx" @@ -32,13 +34,13 @@ namespace YACS { class Switch; - class CollectorSwOutPort : public OutPort + class YACSLIBENGINE_EXPORT CollectorSwOutPort : public OutPort { friend class Switch; private: int edGetNumberOfOutLinks() const; std::set edSetInPort() const; - bool isAlreadyLinkedWith(InPort *with) const; + bool isAlreadyLinkedWith(InPort *withp) const; std::string getNameOfTypeOfCurrentInstance() const; void edRemoveAllLinksLinkedWithMe() throw(Exception); TypeOfChannel getTypeOfChannel() const; @@ -79,7 +81,7 @@ namespace YACS void finished(); }; - class Switch : public StaticDefinedComposedNode + class YACSLIBENGINE_EXPORT Switch : public StaticDefinedComposedNode { friend class FakeNodeForSwitch; friend class CollectorSwOutPort; @@ -105,13 +107,17 @@ namespace YACS Node *edReleaseCase(int caseId) throw(Exception); Node *edGetNode(int caseId); Node *edSetNode(int caseId, Node *DISOWNnode) throw(Exception); + void edChangeCase(int oldCase, int newCase); virtual bool edAddChild(Node *DISOWNnode) throw(Exception); + int getMaxCase(); void getReadyTasks(std::vector& tasks); - void selectRunnableTasks(std::vector& tasks); std::list edGetDirectDescendants() const; InputPort *edGetConditionPort() { return &_condition; } void writeDot(std::ostream &os) const; int getNumberOfInputPorts() const; + int getMaxLevelOfParallelism() const; + double getWeightRegardingDPL() const; + void partitionRegardingDPL(const PartDefinition *pd, std::map >& zeMap); void edRemoveChild(Node *node) throw(Exception); std::list getSetOfInputPort() const; std::list getLocalInputPorts() const; @@ -125,6 +131,7 @@ namespace YACS virtual void accept(Visitor *visitor); int getRankOfNode(Node *node) const; virtual std::string typeName() {return "YACS__ENGINE__Switch";} + std::list getProgressWeight() const; protected: YACS::Event updateStateOnFinishedEventFrom(Node *node); Node *simpleClone(ComposedNode *father, bool editionOnly=true) const;