Version: 8.3.0
YACS::ENGINE::SalomeOptimizerLoop Class Reference

class to build optimization loops More...

#include <SalomeOptimizerLoop.hxx>

Inheritance diagram for YACS::ENGINE::SalomeOptimizerLoop:
Collaboration diagram for YACS::ENGINE::SalomeOptimizerLoop:

Public Member Functions

 SalomeOptimizerLoop (const std::string &name, const std::string &algLibWthOutExt, const std::string &symbolNameToOptimizerAlgBaseInstanceFactory, bool algInitOnFile, bool initAlgo=true, Proc *procForTypes=NULL)
 
 SalomeOptimizerLoop (const SalomeOptimizerLoop &other, ComposedNode *father, bool editionOnly)
 
 ~SalomeOptimizerLoop ()
 
virtual std::string typeName ()
 
- Public Member Functions inherited from YACS::ENGINE::OptimizerLoop
 OptimizerLoop (const std::string &name, const std::string &algLibWthOutExt, const std::string &symbolNameToOptimizerAlgBaseInstanceFactory, bool algInitOnFile, bool initAlgo=true, Proc *procForTypes=NULL)
 
 OptimizerLoop (const OptimizerLoop &other, ComposedNode *father, bool editionOnly)
 
 ~OptimizerLoop ()
 
void init (bool start=true)
 
void exUpdateState ()
 Update the node state. More...
 
int getNumberOfInputPorts () const
 
InputPortedGetPortForOutPool ()
 
InputPortedGetAlgoInitPort ()
 
OutputPortedGetAlgoResultPort ()
 
InputPortgetInputPort (const std::string &name) const throw (Exception)
 Get an input port given its name. More...
 
std::list< InputPort * > getSetOfInputPort () const
 
std::list< InputPort * > getLocalInputPorts () const
 redefined on derived class of ComposedNode. by default a ComposedNode has no port by itself More...
 
void selectRunnableTasks (std::vector< Task * > &tasks)
 
void getReadyTasks (std::vector< Task * > &tasks)
 
YACS::Event updateStateOnFinishedEventFrom (Node *node)
 
void checkNoCyclePassingThrough (Node *node) throw (Exception)
 
virtual void accept (Visitor *visitor)
 
virtual std::string getSymbol () const
 
virtual std::string getAlgLib () const
 Return the name of the algorithm library. More...
 
virtual void setAlgorithm (const std::string &alglib, const std::string &symbol, bool checkLinks=true, Proc *procForTypes=NULL)
 Set the algorithm library name and factory name (symbol in library) to create the algorithm and change it if the node is not connected. More...
 
virtual void checkBasicConsistency () const throw (Exception)
 Check validity for the node. More...
 
int getNumberOfOutputPorts () const
 
std::list< OutputPort * > getSetOfOutputPort () const
 
std::list< OutputPort * > getLocalOutputPorts () const
 redefined on derived class of ComposedNode. by default a ComposedNode has no port by itself More...
 
OutPortgetOutPort (const std::string &name) const throw (Exception)
 
OutputPortgetOutputPort (const std::string &name) const throw (Exception)
 Get an output port given its name. More...
 
YACS::Event finalize ()
 
- Public Member Functions inherited from YACS::ENGINE::DynParaLoop
NodeedRemoveNode ()
 
NodeedRemoveInitNode ()
 
NodeedRemoveFinalizeNode ()
 
NodeedSetNode (Node *DISOWNnode)
 
NodeedSetInitNode (Node *DISOWNnode)
 
NodeedSetFinalizeNode (Node *DISOWNnode)
 
virtual bool edAddDFLink (OutPort *start, InPort *end) throw (Exception)
 Connect an OutPort to an InPort and add control link if necessary. More...
 
InputPortedGetNbOfBranchesPort ()
 
unsigned getNumberOfEltsConsumed () const
 
int getBranchIDOfNode (Node *node) const
 
OutputPortedGetSamplePort ()
 
bool isPlacementPredictableB4Run () const
 For the moment false is returned : impovement about it coming soon. More...
 
void edRemoveChild (Node *node) throw (Exception)
 Remove a child node. More...
 
virtual bool edAddChild (Node *DISOWNnode) throw (Exception)
 
std::list< Node * > edGetDirectDescendants () const
 
unsigned getNumberOfBranchesCreatedDyn () const throw (Exception)
 
NodegetChildByShortName (const std::string &name) const throw (Exception)
 
NodegetChildByNameExec (const std::string &name, unsigned id) const throw (Exception)
 
std::vector< Node * > getNodes () const
 
bool isMultiplicitySpecified (unsigned &value) const
 
void forceMultiplicity (unsigned value)
 
virtual std::string getErrorReport ()
 returns a string that contains an error report if the node is in error More...
 
NodegetInitNode ()
 
NodegetExecNode ()
 
NodegetFinalizeNode ()
 
int getMaxLevelOfParallelism () const
 
- Public Member Functions inherited from YACS::ENGINE::ComposedNode
virtual ~ComposedNode ()
 
bool isFinished ()
 
virtual void resetState (int level)
 Reset the state of the node and its children depending on the parameter level. More...
 
std::string getName () const
 
std::string getTaskName (Task *task) const
 
DeploymentTree getDeploymentTree () const
 Essentially for test. Use checkDeploymentTree instead to be sure that returned DeploymentTree is consistent. More...
 
DeploymentTree checkDeploymentTree (bool deep) const throw (Exception)
 Perform check of deployment consistency of the current graph. More...
 
std::vector< Task * > getNextTasks (bool &isMore)
 
void notifyFrom (const Task *sender, YACS::Event event, const Executor *execInst)
 Notify the node a task has emitted an event. More...
 
bool edAddLink (OutPort *start, InPort *end) throw (Exception)
 Add a dataflow link between two data ports. More...
 
bool edAddLink (OutGate *start, InGate *end) throw (Exception)
 Add a controlflow link between two control ports. More...
 
bool edAddCFLink (Node *nodeS, Node *nodeE) throw (Exception)
 Add a controlflow link between two nodes. More...
 
void edRemoveCFLink (Node *nodeS, Node *nodeE) throw (Exception)
 Remove a controlflow link. More...
 
void edRemoveLink (OutPort *start, InPort *end) throw (Exception)
 Remove a dataflow link. More...
 
void edRemoveLink (OutGate *start, InGate *end) throw (Exception)
 Remove a controlflow link. More...
 
virtual bool isRepeatedUnpredictablySeveralTimes () const
 
virtual void removeRecursivelyRedundantCL ()
 
std::list< ElementaryNode * > getRecursiveConstituents () const
 
std::list< Node * > getAllRecursiveNodes ()
 Get all children nodes elementary and composed including this node. More...
 
virtual std::list< Node * > getAllRecursiveConstituents ()
 Idem getAllRecursiveNodes, but this node is NOT included. More...
 
std::list< ProgressWeightgetProgressWeight () const
 Get the progress weight for all elementary nodes. More...
 
std::string getInPortName (const InPort *) const throw (Exception)
 Get the input port name. More...
 
std::string getOutPortName (const OutPort *) const throw (Exception)
 
std::set< OutPort * > getAllOutPortsLeavingCurrentScope () const
 List all output ports of children nodes that are linked to out of scope input ports. More...
 
std::set< InPort * > getAllInPortsComingFromOutsideOfCurrentScope () const
 List all input ports that are linked to out of scope ports. More...
 
std::list< InputDataStreamPort * > getSetOfInputDataStreamPort () const
 
std::list< OutputDataStreamPort * > getSetOfOutputDataStreamPort () const
 
InputDataStreamPortgetInputDataStreamPort (const std::string &name) const throw (Exception)
 
OutputDataStreamPortgetOutputDataStreamPort (const std::string &name) const throw (Exception)
 
std::vector< std::pair
< OutPort *, InPort * > > 
getSetOfInternalLinks () const
 
virtual std::vector< std::pair
< OutPort *, InPort * > > 
getSetOfLinksLeavingCurrentScope () const
 
void checkConsistency (LinkInfo &info) const throw (Exception)
 
virtual std::vector< std::pair
< InPort *, OutPort * > > 
getSetOfLinksComingInCurrentScope () const
 
virtual void edUpdateState ()
 update the status of the node More...
 
ComposedNodegetRootNode () const throw (Exception)
 
bool isNodeAlreadyAggregated (const Node *node) const
 Check that Node 'node' is already a direct son of this. More...
 
virtual bool isNameAlreadyUsed (const std::string &name) const
 
NodeisInMyDescendance (Node *nodeToTest) const
 Returns the parent of a node that is the direct child of this node. More...
 
std::string getChildName (const Node *node) const throw (Exception)
 
virtual std::string getMyQualifiedName (const Node *directSon) const
 
NodegetChildByName (const std::string &name) const throw (Exception)
 
void loaded ()
 
void connected ()
 
virtual void cleanNodes ()
 Clean the composed node in case of not clean exit. More...
 
virtual std::string getProgress () const
 
- Public Member Functions inherited from YACS::ENGINE::Node
virtual ~Node ()
 
Nodeclone (ComposedNode *father, bool editionOnly=true) const
 This method MUST NEVER BE VIRTUAL More...
 
NodecloneWithoutCompAndContDeepCpy (ComposedNode *father, bool editionOnly=true) const
 This method MUST NEVER BE VIRTUAL More...
 
void setState (YACS::StatesForNode theState)
 Sets the given state for node. More...
 
virtual YACS::StatesForNode getState () const
 
virtual YACS::StatesForNode getEffectiveState () const
 Return the node state in the context of its father. More...
 
virtual YACS::StatesForNode getEffectiveState (const Node *) const
 Return the effective state of a node in the context of this one (its father) More...
 
std::string getColorState (YACS::StatesForNode state) const
 Return the color associated to a state. More...
 
InGategetInGate ()
 
OutGategetOutGate ()
 
const std::string & getName () const
 
void setName (const std::string &name)
 Change the name of the node. More...
 
ComposedNodegetFather () const
 
const std::string getId () const
 
bool exIsControlReady () const
 
std::list< Node * > getOutNodes () const
 
virtual void writeDot (std::ostream &os) const
 Dump to the input stream a dot representation of the node. More...
 
virtual void exFailedState ()
 Notify this node that its execution has failed. More...
 
virtual void exDisabledState ()
 Notify this node that it has been disabled. More...
 
std::list< InPort * > getSetOfInPort () const
 
std::list< OutPort * > getSetOfOutPort () const
 
virtual std::set< InputPort * > edGetSetOfUnitializedInputPort () const
 Becomes deprecated soon. Replaced by ComposedNode::CheckConsistency. More...
 
virtual bool edAreAllInputPortInitialized () const
 Becomes deprecated soon. Replaced by ComposedNode::CheckConsistency. More...
 
InPortgetInPort (const std::string &name) const throw (Exception)
 
InPropertyPortgetInPropertyPort () const throw (Exception)
 
std::list< ComposedNode * > getAllAscendanceOf (ComposedNode *levelToStop=0) const
 
bool operator> (const Node &other) const
 
bool operator< (const Node &other) const
 
std::string getImplementation () const
 
virtual void setProperty (const std::string &name, const std::string &value)
 
virtual std::string getProperty (const std::string &name)
 
std::map< std::string,
std::string > 
getProperties ()
 
std::map< std::string,
std::string > 
getPropertyMap ()
 
virtual void setProperties (std::map< std::string, std::string > properties)
 
virtual ProcgetProc ()
 
virtual const ProcgetProc () const
 
std::string getQualifiedName () const
 same as Node::getName() in most cases, but differs for children of switch More...
 
int getNumId ()
 return node instance identifiant, unique for each node instance More...
 
std::vector< std::pair
< std::string, int > > 
getDPLScopeInfo (ComposedNode *gfn)
 
virtual void applyDPLScope (ComposedNode *gfn)
 
virtual void sendEvent (const std::string &event)
 emit notification to all observers registered with the dispatcher More...
 
virtual void sendEvent2 (const std::string &event, void *something)
 emit notification to all observers registered with the dispatcher More...
 
virtual std::string getErrorDetails () const
 
virtual void setErrorDetails (const std::string &error)
 
virtual void modified ()
 Sets Node in modified state and its father if it exists. More...
 
virtual int isModified ()
 
virtual int isValid ()
 indicates if the node is valid (returns 1) or not (returns 0) More...
 
virtual std::string getContainerLog ()
 returns a string that contains the name of the container log file if it exists More...
 
virtual void ensureLoading ()
 Put this node into TOLOAD state when possible. More...
 
virtual void getCoupledNodes (std::set< Task * > &coupledNodes)
 
- Public Member Functions inherited from YACS::ENGINE::Scheduler
virtual ~Scheduler ()
 

Protected Member Functions

NodesimpleClone (ComposedNode *father, bool editionOnly) const
 
virtual void loadAlgorithm ()
 Load the algorithm object from a Python module or a dynamic library. More...
 
- Protected Member Functions inherited from YACS::ENGINE::OptimizerLoop
virtual YACS::Event updateStateOnFailedEventFrom (Node *node, const Executor *execInst)
 Method used to notify the node that a child node has failed. More...
 
void buildDelegateOf (InPort *&port, OutPort *initialStart, const std::list< ComposedNode * > &pointsOfView)
 
void buildDelegateOf (std::pair< OutPort *, OutPort * > &port, InPort *finalTarget, const std::list< ComposedNode * > &pointsOfView)
 
void checkControlDependancy (OutPort *start, InPort *end, bool cross, std::map< ComposedNode *, std::list< OutPort * >, SortHierarc > &fw, std::vector< OutPort * > &fwCross, std::map< ComposedNode *, std::list< OutPort * >, SortHierarc > &bw, LinkInfo &info) const
 
void checkCFLinks (const std::list< OutPort * > &starts, InputPort *end, unsigned char &alreadyFed, bool direction, LinkInfo &info) const
 check control flow links More...
 
void checkLinkPossibility (OutPort *start, const std::list< ComposedNode * > &pointsOfViewStart, InPort *end, const std::list< ComposedNode * > &pointsOfViewEnd) throw (Exception)
 
void cleanInterceptors ()
 
void launchMaxOfSamples (bool first)
 
bool isFullyLazy () const
 
bool isFullyBusy (unsigned &branchId) const
 
void initInterceptors (unsigned nbOfBr)
 
void pushValueOutOfScopeForCase (unsigned branchId)
 
- Protected Member Functions inherited from YACS::ENGINE::DynParaLoop
 DynParaLoop (const std::string &name, TypeCode *typeOfDataSplitted)
 
virtual ~DynParaLoop ()
 
 DynParaLoop (const DynParaLoop &other, ComposedNode *father, bool editionOnly)
 
void cleanDynGraph ()
 
void prepareInputsFromOutOfScope (int branchNb)
 
void putValueOnBranch (Any *val, unsigned branchId, bool first)
 
TypeOfNode getIdentityOfNotifyerNode (const Node *node, unsigned &id)
 
InputPortgetDynInputPortByAbsName (int branchNb, const std::string &name, bool initNodeAdmitted)
 
virtual void forwardExecStateToOriginalBody (Node *execNode)
 
std::vector< Node * > cloneAndPlaceNodesCoherently (const std::vector< Node * > &origNodes)
 Clone nodes and make their placement consistent with the placement of the original ones. More...
 
NodecheckConsistencyAndSetNode (Node *&nodeToReplace, Node *DISOWNnode)
 This method is used to factorize methods edSetNode, edSetInitNode and edSetFinalizeNode. More...
 
NoderemoveNode (Node *&nodeToRemove)
 This method is used to factorize methods edRemoveNode, edRemoveInitNode and edRemoveFinalizeNode. More...
 
virtual void shutdown (int level)
 Stop all pending activities of the composed node. More...
 
- Protected Member Functions inherited from YACS::ENGINE::ComposedNode
 ComposedNode (const std::string &name)
 
 ComposedNode (const ComposedNode &other, ComposedNode *father)
 
void performDuplicationOfPlacement (const Node &other)
 performs a duplication of placement using clone method of containers and components. clone behaviour is driven by attachOnCloning attribute. More...
 
void performShallowDuplicationOfPlacement (const Node &other)
 performs a also duplication of placement but here containers and components are not copied at all whatever the value of attachedOnCloning. More...
 
void edDisconnectAllLinksWithMe ()
 
YACS::Event updateStateFrom (Node *node, YACS::Event event, const Executor *execInst)
 Update node state on receiving event from a node. More...
 
virtual YACS::Event updateStateOnStartEventFrom (Node *node)
 Method used to notify the node that a child node has started. More...
 
virtual void getDelegateOf (InPort *&port, OutPort *initialStart, const std::list< ComposedNode * > &pointsOfView) throw (Exception)
 
virtual void getDelegateOf (std::pair< OutPort *, OutPort * > &port, InPort *finalTarget, const std::list< ComposedNode * > &pointsOfView) throw (Exception)
 
virtual void releaseDelegateOf (InPort *&port, OutPort *initialStart, const std::list< ComposedNode * > &pointsOfView) throw (Exception)
 
virtual void releaseDelegateOf (OutPort *portDwn, OutPort *portUp, InPort *finalTarget, const std::list< ComposedNode * > &pointsOfView) throw (Exception)
 
void checkInMyDescendance (Node *nodeToTest) const throw (Exception)
 Check if a node is in the descendance of this node. More...
 
template<class PORT >
std::string getPortName (const PORT *port) const throw (Exception)
 
void checkNoCrossHierachyWith (Node *node) const throw (Exception)
 
virtual void performCFComputations (LinkInfo &info) const
 perform recursively all CF computations. More...
 
virtual void destructCFComputations (LinkInfo &info) const
 destroy recursively all results of initial computations. More...
 
NodegetLowestNodeDealingAll (const std::list< OutPort * > &ports) const
 
void checkLinksCoherenceRegardingControl (const std::vector< OutPort * > &starts, InputPort *end, LinkInfo &info) const throw (Exception)
 
void solveObviousOrDelegateCFLinks (const std::list< OutPort * > &starts, InputPort *end, unsigned char &alreadyFed, bool direction, LinkInfo &info) const
 
- Protected Member Functions inherited from YACS::ENGINE::Node
 Node (const std::string &name)
 
 Node (const Node &other, ComposedNode *father)
 
virtual void exForwardFailed ()
 
virtual void exForwardFinished ()
 

Additional Inherited Members

- Static Public Member Functions inherited from YACS::ENGINE::ComposedNode
static ComposedNodegetLowestCommonAncestor (Node *node1, Node *node2) throw (Exception)
 Retrieves the lowest common ancestor of 2 nodes. More...
 
static std::string getLowestCommonAncestorStr (const std::string &node1, const std::string &node2)
 
- Public Attributes inherited from YACS::ENGINE::Node
YACS::Colour _colour
 
- Static Public Attributes inherited from YACS::ENGINE::Node
static std::map< int, Node * > idMap
 
- Protected Types inherited from YACS::ENGINE::DynParaLoop
enum  TypeOfNode { INIT_NODE = 5, WORK_NODE = 6, FINALIZE_NODE = 7 }
 
- Static Protected Member Functions inherited from YACS::ENGINE::ComposedNode
static bool splitNamesBySep (const std::string &globalName, const char separator[], std::string &firstPart, std::string &lastPart, bool priority) throw (Exception)
 Splits name globalName in 2 parts using separator. More...
 
- Protected Attributes inherited from YACS::ENGINE::OptimizerLoop
Pool _myPool
 
bool _algInitOnFile
 
std::string _symbol
 
std::string _alglib
 
AnyInputPort _algoInitPort
 
::YACS::BASES::DynLibLoader * _loader
 
OptimizerAlgBase_alg
 
AnyInputPort _retPortForOutPool
 
std::vector< bool > _initNodeUpdated
 
bool _convergenceReachedWithOtherCalc
 
FakeNodeForOptimizerLoop_nodeForSpecialCases
 
std::vector< AnyInputPort * > _interceptorsForOutPool
 
std::map< InputPort
*, std::vector< InputPort * > > 
_interceptors
 outputports interceptors leaving current scope. More...
 
AnyOutputPort _algoResultPort
 
- Static Protected Attributes inherited from YACS::ENGINE::OptimizerLoop
static const int NOT_RUNNING_BRANCH_ID =-1973012217
 
static const int NOT_INITIALIZED_BRANCH_ID =-1973
 
static const char NAME_OF_ALGO_INIT_PORT [] = "algoInit"
 
static const char NAME_OF_OUT_POOL_INPUT [] = "evalResults"
 
static const char NAME_OF_ALGO_RESULT_PORT [] = "algoResults"
 

Detailed Description

class to build optimization loops

Definition at line 30 of file SalomeOptimizerLoop.hxx.

Constructor & Destructor Documentation

SalomeOptimizerLoop::SalomeOptimizerLoop ( const std::string &  name,
const std::string &  algLibWthOutExt,
const std::string &  symbolNameToOptimizerAlgBaseInstanceFactory,
bool  algInitOnFile,
bool  initAlgo = true,
Proc procForTypes = NULL 
)

Definition at line 47 of file SalomeOptimizerLoop.cxx.

References YACS::ENGINE::OptimizerLoop::setAlgorithm().

Referenced by simpleClone().

50  :
51  OptimizerLoop(name,algLibWthOutExt,symbolNameToOptimizerAlgBaseInstanceFactory,algInitOnFile,false)
52 {
53  if(initAlgo)
54  {
55  //try
56  // {
57  setAlgorithm(algLibWthOutExt, symbolNameToOptimizerAlgBaseInstanceFactory, true, procForTypes);
58  // }
59  //catch(YACS::Exception& e)
60  // {
61  //ignore it
62  // }
63  }
}
SalomeOptimizerLoop::SalomeOptimizerLoop ( const SalomeOptimizerLoop other,
ComposedNode father,
bool  editionOnly 
)

Definition at line 65 of file SalomeOptimizerLoop.cxx.

65  :
66  OptimizerLoop(other,father,editionOnly)
67 {
68 }
SalomeOptimizerLoop::~SalomeOptimizerLoop ( )

Definition at line 70 of file SalomeOptimizerLoop.cxx.

71 {
72 }

Member Function Documentation

void SalomeOptimizerLoop::loadAlgorithm ( )
protectedvirtual

Load the algorithm object from a Python module or a dynamic library.

Member _alglib is the library name (shared library WITHOUT extension .so or python module WITH extension .py). Member _symbol is a symbol name in the library to use as an algorithm factory.

Reimplemented from YACS::ENGINE::OptimizerLoop.

Definition at line 93 of file SalomeOptimizerLoop.cxx.

References YACS::ENGINE::OptimizerLoop::_alg, YACS::ENGINE::OptimizerLoop::_alglib, YACS::ENGINE::Node::_errorDetails, YACS::ENGINE::OptimizerLoop::_myPool, YACS::ENGINE::OptimizerLoop::_symbol, YACS::ENGINE::RefCounter::incrRef(), YACS::ENGINE::OptimizerLoop::loadAlgorithm(), YACS::ENGINE::Node::modified(), YACS::ENGINE::newPyStdOut(), YACS::ENGINE::OptimizerAlgBase::setPool(), and YASSERT.

94 {
95  YASSERT(_alg == NULL)
96 
97  if(_alglib.size() > 3 && _alglib.substr(_alglib.size()-3,3)==".py")
98  {
99  //if alglib extension is .py try to import the corresponding python module
100  PyGILState_STATE gstate=PyGILState_Ensure();
101 
102  PyObject* mainmod = PyImport_AddModule("__main__");
103  PyObject* globals = PyModule_GetDict(mainmod);
104 
105  std::string pyscript;
106  pyscript="import sys\n"
107  "import SALOMERuntime\n"
108  "filename='";
109  pyscript=pyscript+_alglib+"'\nentry='"+_symbol+"'\n";
110  pyscript=pyscript+"import os\n"
111  "import pilot\n"
112  "rep,mod=os.path.split(os.path.splitext(filename)[0])\n"
113  "if rep != '':\n"
114  " sys.path.insert(0,rep)\n"
115  "algomodule=__import__(mod)\n"
116  "if rep != '':\n"
117  " del sys.path[0]\n"
118  "algoclass= getattr(algomodule,entry)\n"
119  "algo= algoclass()\n"
120  "swigalgo= algo.this\n"
121  "\n";
122 
123  PyObject* res=PyRun_String(pyscript.c_str(), Py_file_input, globals, globals );
124 
125  if(res == NULL)
126  {
127  //error during import
128  _errorDetails="";
129  PyObject* new_stderr = newPyStdOut(_errorDetails);
130  PySys_SetObject((char*)"stderr", new_stderr);
131  PyErr_Print();
132  PySys_SetObject((char*)"stderr", PySys_GetObject((char*)"__stderr__"));
133  Py_DECREF(new_stderr);
134  modified();
135  PyGILState_Release(gstate);
137  }
138  else
139  {
140  Py_DECREF(res);
141 
142  typedef struct {
143  PyObject_HEAD
144  void *ptr;
145  void *ty;
146  int own;
147  PyObject *next;
148  } SwigPyObject;
149 
150  SwigPyObject* pyalgo = (SwigPyObject*)PyDict_GetItemString(globals, "swigalgo");
151  _alg=(OptimizerAlgBase*)pyalgo->ptr;
152  _alg->setPool(&_myPool);
153  _alg->incrRef();
154  }
155  PyGILState_Release(gstate);
156  }
157  else
158  {
159  //else try to load a dynamic library
161  }
162 }
Node * SalomeOptimizerLoop::simpleClone ( ComposedNode father,
bool  editionOnly 
) const
protectedvirtual

Reimplemented from YACS::ENGINE::OptimizerLoop.

Definition at line 74 of file SalomeOptimizerLoop.cxx.

References YACS::ENGINE::OptimizerLoop::_alglib, YACS::ENGINE::OptimizerLoop::_symbol, YACS::ENGINE::Node::getProc(), SalomeOptimizerLoop(), and YACS::ENGINE::OptimizerLoop::setAlgorithm().

75 {
76  SalomeOptimizerLoop* sol=new SalomeOptimizerLoop(*this,father,editionOnly);
77  // TODO: Remove this const_cast (find a better design to get the type codes from the original node)
78  Proc * procForTypes = sol->getProc();
79  if (procForTypes == NULL) {
80  const Proc * origProc = getProc();
81  procForTypes = const_cast<Proc *>(origProc);
82  }
83  sol->setAlgorithm(_alglib, _symbol, false, procForTypes);
84  return sol;
85 }
virtual std::string YACS::ENGINE::SalomeOptimizerLoop::typeName ( )
inlinevirtual

Reimplemented from YACS::ENGINE::OptimizerLoop.

Definition at line 41 of file SalomeOptimizerLoop.hxx.

41 {return "YACS__ENGINE__SalomeOptimizerLoop";}

The documentation for this class was generated from the following files: