Version: 8.3.0
YACS::ENGINE::Proc Class Reference

Base class for all schema objects. More...

#include <Proc.hxx>

Inheritance diagram for YACS::ENGINE::Proc:
Collaboration diagram for YACS::ENGINE::Proc:

Public Types

typedef std::map< std::string,
Logger * > 
LoggerMap
 

Public Member Functions

 Proc (const std::string &name)
 
virtual ~Proc ()
 
virtual TypeCodecreateType (const std::string &name, const std::string &kind)
 
virtual TypeCodecreateInterfaceTc (const std::string &id, const std::string &name, std::list< TypeCodeObjref * > ltc)
 Create an object reference TypeCode. More...
 
virtual TypeCodecreateSequenceTc (const std::string &id, const std::string &name, TypeCode *content)
 Create a sequence TypeCode. More...
 
virtual TypeCodecreateStructTc (const std::string &id, const std::string &name)
 
virtual TypeCodegetTypeCode (const std::string &name)
 
virtual void setTypeCode (const std::string &name, TypeCode *t)
 
virtual ContainercreateContainer (const std::string &name, const std::string &kind="")
 Create a new Container and store it in containerMap. More...
 
virtual ComponentInstancecreateComponentInstance (const std::string &componame, const std::string &name="", const std::string &kind="")
 Create a new ComponentInstance and add it into componentInstanceMap. More...
 
virtual void addComponentInstance (ComponentInstance *inst, const std::string &name="", bool resetCtr=false)
 Add a ComponentInstance into componentInstanceMap. More...
 
virtual void removeComponentInstance (ComponentInstance *inst)
 Remove a componentInstance from the componentInstanceMap. More...
 
virtual void removeContainer (Container *cont)
 Remove a container from the containerMap. More...
 
virtual void accept (Visitor *visitor)
 
virtual ProcgetProc ()
 Return the proc (this) More...
 
virtual const ProcgetProc () const
 Return the proc (this) More...
 
virtual void updateContainersAndComponents ()
 
YACS::StatesForNode getNodeState (int numId)
 
std::string getNodeProgress (int numId)
 
int getGlobalProgressPercent ()
 
std::string getInPortValue (int nodeNumId, std::string portName)
 
std::string setInPortValue (std::string nodeName, std::string portName, std::string value)
 
std::string getOutPortValue (int nodeNumId, std::string portName)
 
std::string getNodeErrorDetails (int nodeNumId)
 
std::string getNodeErrorReport (int nodeNumId)
 
std::string getNodeContainerLog (int nodeNumId)
 
std::string getXMLState (int numId)
 
std::list< int > getNumIds ()
 
std::list< std::string > getIds ()
 
virtual LoggergetLogger (const std::string &name)
 
virtual void writeDot (std::ostream &os) const
 Dump to the input stream a dot representation of the node. More...
 
void setName (const std::string &name)
 
virtual std::string typeName ()
 
virtual bool getEdition ()
 
virtual void setEdition (bool edition)
 
virtual void modified ()
 Sets Proc in modified state and update state if in edition mode. More...
 
virtual void saveSchema (const std::string &xmlSchemaFile)
 Save Proc in XML schema file. More...
 
virtual void saveState (const std::string &xmlStateFile)
 Save Proc state in XML state file. More...
 
- Public Member Functions inherited from YACS::ENGINE::Bloc
 Bloc (const Bloc &other, ComposedNode *father, bool editionOnly)
 
 Bloc (const std::string &name)
 Create a Bloc node with a given name. More...
 
virtual ~Bloc ()
 
bool isFinished ()
 Indicate if the bloc execution is finished. More...
 
int getNumberOfCFLinks () const
 
void init (bool start=true)
 Initialize the bloc. More...
 
void getReadyTasks (std::vector< Task * > &tasks)
 Collect all nodes that are ready to execute. More...
 
void exUpdateState ()
 Update the bloc state. More...
 
bool edAddChild (Node *DISOWNnode) throw (Exception)
 Add a child node to the bloc. More...
 
void edRemoveChild (Node *node) throw (Exception)
 
std::list< Node * > getChildren () const
 
std::list< Node * > edGetDirectDescendants () const
 
std::vector< std::list< Node * > > splitIntoIndependantGraph () const
 
NodegetChildByShortName (const std::string &name) const throw (Exception)
 
template<bool direction>
void findAllPathsStartingFrom (Node *start, std::list< std::vector< Node * > > &vec, std::map< Node *, std::set< Node * > > &accelStr) const
 
template<bool direction>
void findAllNodesStartingFrom (Node *start, std::set< Node * > &result, std::map< Node *, std::set< Node * > > &accelStr, LinkInfo &info) const
 
int getMaxLevelOfParallelism () const
 
void removeRecursivelyRedundantCL ()
 
template<bool direction>
unsigned appendIfAlreadyFound (std::list< std::vector< Node * > > &res, const std::vector< Node * > &startRes, Node *node, std::map< Node *, std::set< Node * > > &fastFinder)
 
- Public Member Functions inherited from YACS::ENGINE::StaticDefinedComposedNode
bool isPlacementPredictableB4Run () const
 
bool isMultiplicitySpecified (unsigned &value) const
 
void forceMultiplicity (unsigned value)
 
void selectRunnableTasks (std::vector< Task * > &tasks)
 
- Public Member Functions inherited from YACS::ENGINE::ComposedNode
virtual ~ComposedNode ()
 
bool isFinished ()
 
void init (bool start=true)
 
virtual void shutdown (int level)
 Stop all pending activities of the composed node. More...
 
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...
 
virtual bool edAddDFLink (OutPort *start, InPort *end) throw (Exception)
 Connect an OutPort to an InPort and add the necessary control link. 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
 
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)
 
int getNumberOfInputPorts () const
 
int getNumberOfOutputPorts () const
 
std::list< InputPort * > getSetOfInputPort () const
 
std::list< OutputPort * > getSetOfOutputPort () const
 
std::list< InputPort * > getLocalInputPorts () const
 redefined on derived class of ComposedNode. by default a ComposedNode has no port by itself More...
 
std::list< OutputPort * > getLocalOutputPorts () const
 redefined on derived class of ComposedNode. by default a ComposedNode has no port by itself More...
 
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
 
OutPortgetOutPort (const std::string &name) const throw (Exception)
 
InputPortgetInputPort (const std::string &name) const throw (Exception)
 Get an input port given its name. More...
 
OutputPortgetOutputPort (const std::string &name) const throw (Exception)
 Get an output port given its name. More...
 
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...
 
virtual void checkBasicConsistency () const throw (Exception)
 
virtual std::string getErrorReport ()
 returns a string that contains an error report if the node is in error More...
 
ComposedNodegetRootNode () const throw (Exception)
 
bool isNodeAlreadyAggregated (const Node *node) const
 Check that Node 'node' is already a direct son of this. More...
 
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 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)
 
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 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 ()
 

Public Attributes

std::map< std::string, Node * > nodeMap
 
std::map< std::string,
ServiceNode * > 
serviceMap
 
std::map< std::string,
InlineNode * > 
inlineMap
 
std::map< std::string, TypeCode * > typeMap
 
std::map< std::string,
Container * > 
containerMap
 
std::map< std::string,
ComponentInstance * > 
componentInstanceMap
 
std::vector< std::string > names
 
LoggerMap _loggers
 

Protected Member Functions

void removeContainers ()
 
- Protected Member Functions inherited from YACS::ENGINE::Bloc
NodesimpleClone (ComposedNode *father, bool editionOnly=true) const
 
bool areAllSubNodesFinished () const
 
bool areAllSubNodesDone () const
 
bool isNameAlreadyUsed (const std::string &name) const
 
void checkNoCyclePassingThrough (Node *node) throw (Exception)
 
std::vector< std::pair
< OutGate *, InGate * > > 
getSetOfInternalCFLinks () const
 
YACS::Event updateStateOnFinishedEventFrom (Node *node)
 
YACS::Event updateStateOnFailedEventFrom (Node *node, const Executor *execInst)
 Notify this bloc that a node has failed. More...
 
void initComputation () const
 
void performCFComputationsOnlyOneLevel (LinkInfo &info) const
 
void performCFComputations (LinkInfo &info) const
 
void destructCFComputations (LinkInfo &info) const
 destroy recursively all results of initial computations. More...
 
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
 
bool areLinked (Node *start, Node *end, bool fw) const
 Check if two nodes are linked. More...
 
bool arePossiblyRunnableAtSameTime (Node *start, Node *end) const
 Check if two nodes can run in parallel. More...
 
void checkCFLinks (const std::list< OutPort * > &starts, InputPort *end, unsigned char &alreadyFed, bool direction, LinkInfo &info) const
 Check control flow links. More...
 
void seekOkAndUseless1 (std::vector< Node * > &okAndUseless1, std::set< Node * > &allNodes) const
 
void seekUseless2 (std::vector< Node * > &useless2, std::set< Node * > &allNodes) const
 
- Protected Member Functions inherited from YACS::ENGINE::StaticDefinedComposedNode
 StaticDefinedComposedNode (const std::string &name)
 
 StaticDefinedComposedNode (const StaticDefinedComposedNode &other, ComposedNode *father)
 
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
 
- 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 checkLinkPossibility (OutPort *start, const std::list< ComposedNode * > &pointsOfViewStart, InPort *end, const std::list< ComposedNode * > &pointsOfViewEnd) throw (Exception)
 
virtual void buildDelegateOf (InPort *&port, OutPort *initialStart, const std::list< ComposedNode * > &pointsOfView)
 
virtual void buildDelegateOf (std::pair< OutPort *, OutPort * > &port, InPort *finalTarget, const std::list< ComposedNode * > &pointsOfView)
 
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)
 
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 ()
 

Protected Attributes

bool _edition
 
int _compoinstctr
 
- Protected Attributes inherited from YACS::ENGINE::Bloc
std::list< Node * > _setOfNode
 
std::map< Node *, std::set
< Node * > > * 
_fwLinks
 For internal calculations. More...
 
std::map< Node *, std::set
< Node * > > * 
_bwLinks
 For internal calculations. More...
 

Friends

std::ostream & operator<< (std::ostream &os, const Proc &p)
 

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)
 
- Static Public Attributes inherited from YACS::ENGINE::Node
static std::map< int, Node * > idMap
 
- Static Protected Member Functions inherited from YACS::ENGINE::Bloc
static void verdictForOkAndUseless1 (const std::map< Node *, std::list< OutPort * > > &pool, InputPort *end, const std::vector< Node * > &candidates, unsigned char &alreadyFed, bool direction, LinkInfo &info)
 
static void verdictForCollapses (const std::map< Node *, std::list< OutPort * > > &pool, InputPort *end, const std::set< Node * > &candidates, unsigned char &alreadyFed, bool direction, LinkInfo &info)
 
- Static Protected Attributes inherited from YACS::ENGINE::ComposedNode
static const char SEP_CHAR_BTW_LEVEL [] ="."
 
static const unsigned char FED_ST = 2
 
static const unsigned char FREE_ST = 0
 
static const unsigned char FED_DS_ST = 1
 

Detailed Description

Base class for all schema objects.

This is an abstract class that must be specialized in runtime.

Definition at line 43 of file Proc.hxx.

Member Typedef Documentation

typedef std::map<std::string, Logger*> YACS::ENGINE::Proc::LoggerMap

Definition at line 95 of file Proc.hxx.

Constructor & Destructor Documentation

Proc::Proc ( const std::string &  name)

Definition at line 48 of file Proc.cxx.

References YACS::ENGINE::Runtime::_tc_bool, YACS::ENGINE::Runtime::_tc_double, YACS::ENGINE::Runtime::_tc_file, YACS::ENGINE::Runtime::_tc_int, YACS::ENGINE::Runtime::_tc_string, DEBTRACE, YACS::ENGINE::RefCounter::getRefCnt(), YACS::ENGINE::getRuntime(), YACS::ENGINE::RefCounter::incrRef(), theRuntime, and typeMap.

48  :Bloc(name),_edition(false),_compoinstctr(0)
49 {
51  DEBTRACE("theRuntime->_tc_double->ref: " << theRuntime->_tc_double->getRefCnt());
52  DEBTRACE("theRuntime->_tc_int->ref: " << theRuntime->_tc_int->getRefCnt());
53  DEBTRACE("theRuntime->_tc_string->ref: " << theRuntime->_tc_string->getRefCnt());
54  DEBTRACE("theRuntime->_tc_bool->ref: " << theRuntime->_tc_bool->getRefCnt());
55  DEBTRACE("theRuntime->_tc_file->ref: " << theRuntime->_tc_file->getRefCnt());
56  theRuntime->_tc_double->incrRef();
57  theRuntime->_tc_string->incrRef();
58  theRuntime->_tc_int->incrRef();
59  theRuntime->_tc_bool->incrRef();
60  theRuntime->_tc_file->incrRef();
61  typeMap["double"]=theRuntime->_tc_double;
62  typeMap["string"]=theRuntime->_tc_string;
63  typeMap["int"]=theRuntime->_tc_int;
64  typeMap["bool"]=theRuntime->_tc_bool;
65  typeMap["file"]=theRuntime->_tc_file;
66 }
Proc::~Proc ( )
virtual

Definition at line 68 of file Proc.cxx.

References _loggers, DEBTRACE, removeContainers(), and typeMap.

69 {
70  DEBTRACE("Proc::~Proc");
71  //for the moment all nodes are owned, so no need to manage their destruction
72  //nodeMap, inlineMap, serviceMap will be cleared automatically
73  //but we need to destroy TypeCodes
74  std::map<std::string, TypeCode *>::iterator pt;
75  for(pt=typeMap.begin();pt!=typeMap.end();pt++)
76  ((*pt).second)->decrRef();
77 
79 
80  //get rid of loggers in logger map
81  std::map<std::string, Logger*>::const_iterator lt;
82  for(lt=_loggers.begin();lt!=_loggers.end();lt++)
83  delete (*lt).second;
84 }

Member Function Documentation

void Proc::accept ( Visitor visitor)
virtual
void Proc::addComponentInstance ( ComponentInstance inst,
const std::string &  name = "",
bool  resetCtr = false 
)
virtual

Add a ComponentInstance into componentInstanceMap.

If the name == "", the component instance is automatically named with a unique (in the Proc) name

Parameters
inst,:the component instance
name,:the component instance name
resetCtr,:try to reuse instance number previously released, false by default

Definition at line 525 of file Proc.cxx.

References _compoinstctr, componentInstanceMap, YACS::ENGINE::ComponentInstance::getCompoName(), YACS::ENGINE::RefCounter::incrRef(), YACS::ENGINE::ComponentInstance::setAnonymous(), and YACS::ENGINE::ComponentInstance::setName().

Referenced by createComponentInstance(), YACS::HMI::CommandAddComponentInstance::localExecute(), YACS::HMI::CommandAddComponentFromCatalog::localExecute(), and YACS::HMI::CommandAssociateServiceToComponent::localReverse().

526 {
527  if(name != "")
528  {
529  inst->setName(name);
530  inst->setAnonymous(false);
531  if(componentInstanceMap.count(name)!=0)
532  componentInstanceMap[name]->decrRef();
533  componentInstanceMap[name]=inst;
534  inst->incrRef();
535  }
536  else
537  {
538  //automatic naming : componame_<_compoinstctr>
539  std::string instname;
540  std::string componame=inst->getCompoName();
541  if (resetCtr)
542  _compoinstctr = 0;
543  while(1)
544  {
545  std::ostringstream buffer;
546  buffer << ++_compoinstctr;
547  instname=componame+"_"+buffer.str();
548  if(componentInstanceMap.count(instname)==0)
549  {
550  inst->setName(instname);
551  componentInstanceMap[instname]=inst;
552  inst->incrRef();
553  break;
554  }
555  }
556  }
557 }
ComponentInstance * Proc::createComponentInstance ( const std::string &  componame,
const std::string &  name = "",
const std::string &  kind = "" 
)
virtual

Create a new ComponentInstance and add it into componentInstanceMap.

If the name == "", the component instance is automatically named with a unique (in the Proc) name

Parameters
componame,:the component name
name,:the component instance name
kind,:the component instance kind (depends on runtime)
Returns
the created ComponentInstance

Definition at line 598 of file Proc.cxx.

References addComponentInstance(), YACS::ENGINE::Runtime::createComponentInstance(), and YACS::ENGINE::getRuntime().

Referenced by YACS::servicetypeParser< T >::component(), and YACS::proctypeParser< T >::componentinstance().

599 {
600  ComponentInstance* inst= getRuntime()->createComponentInstance(componame,kind);
601  addComponentInstance(inst,name);
602  return inst;
603 }
Container * Proc::createContainer ( const std::string &  name,
const std::string &  kind = "" 
)
virtual

Create a new Container and store it in containerMap.

Parameters
name,:the container name and key in containerMap
kind,:the container kind (depends on runtime)
Returns
the created Container

Definition at line 505 of file Proc.cxx.

References containerMap, YACS::ENGINE::getRuntime(), YACS::ENGINE::RefCounter::incrRef(), YACS::ENGINE::Container::setName(), and YACS::ENGINE::Container::setProc().

Referenced by YACS::proctypeParser< T >::container(), YACS::servertypeParser< T >::loadcontainer(), and YACS::ENGINE::SalomeProc::SalomeProc().

506 {
507  Container *co(getRuntime()->createContainer(kind));
508  co->setName(name);
509  if(containerMap.count(name)!=0)
510  containerMap[name]->decrRef();
511  containerMap[name]=co;
512  co->incrRef();
513  co->setProc(this);
514  return co;
515 }
TypeCode * Proc::createInterfaceTc ( const std::string &  id,
const std::string &  name,
std::list< TypeCodeObjref * >  ltc 
)
virtual

Create an object reference TypeCode.

Parameters
id,:the TypeCode repository id
name,:the TypeCode name
ltc,:a liste of object reference TypeCode to use as base types for this type
Returns
the created TypeCode

Reimplemented in YACS::ENGINE::SalomeProc.

Definition at line 132 of file Proc.cxx.

References YACS::ENGINE::RefCounter::incrRef(), YACS::ENGINE::TypeCode::interfaceTc(), gui.Appli::t, and typeMap.

Referenced by YACS::ENGINE::SalomeProc::createInterfaceTc(), and YACS::objtypeParser::post().

134 {
135  TypeCode* t = TypeCode::interfaceTc(id.c_str(),name.c_str(),ltc);
136  if(typeMap.count(name)!=0)
137  typeMap[name]->decrRef();
138  typeMap[name]=t;
139  t->incrRef();
140  return t;
141 }
TypeCode * Proc::createSequenceTc ( const std::string &  id,
const std::string &  name,
TypeCode content 
)
virtual

Create a sequence TypeCode.

Parameters
id,:the TypeCode repository id ("" for normal use)
name,:the TypeCode name
content,:the element TypeCode
Returns
the created TypeCode

Definition at line 150 of file Proc.cxx.

References YACS::ENGINE::RefCounter::incrRef(), YACS::ENGINE::TypeCode::sequenceTc(), gui.Appli::t, and typeMap.

Referenced by YACS::seqtypeParser::post().

152 {
153  TypeCode* t = TypeCode::sequenceTc(id.c_str(),name.c_str(),content);
154  if(typeMap.count(name)!=0)
155  typeMap[name]->decrRef();
156  typeMap[name]=t;
157  t->incrRef();
158  return t;
159 }
TypeCode * Proc::createStructTc ( const std::string &  id,
const std::string &  name 
)
virtual

Reimplemented in YACS::ENGINE::SalomeProc.

Definition at line 161 of file Proc.cxx.

References YACS::ENGINE::RefCounter::incrRef(), YACS::ENGINE::TypeCode::structTc(), gui.Appli::t, and typeMap.

Referenced by YACS::ENGINE::SalomeProc::createStructTc(), and YACS::structtypeParser::post().

162 {
163  TypeCode* t = TypeCode::structTc(id.c_str(),name.c_str());
164  if(typeMap.count(name)!=0)
165  typeMap[name]->decrRef();
166  typeMap[name]=t;
167  t->incrRef();
168  return t;
169 }
TypeCode * Proc::createType ( const std::string &  name,
const std::string &  kind 
)
virtual

Definition at line 103 of file Proc.cxx.

References YACS::ENGINE::Runtime::_tc_bool, YACS::ENGINE::Runtime::_tc_double, YACS::ENGINE::Runtime::_tc_int, YACS::ENGINE::Runtime::_tc_string, YACS::ENGINE::getRuntime(), YACS::ENGINE::RefCounter::incrRef(), gui.Appli::t, and typeMap.

Referenced by YACS::proctypeParser< T >::type().

104 {
105  TypeCode* t;
106  if(kind=="double")
107  t=getRuntime()->_tc_double;
108  else if(kind=="string")
109  t=getRuntime()->_tc_string;
110  else if(kind=="int")
111  t=getRuntime()->_tc_int;
112  else if(kind=="bool")
113  t=getRuntime()->_tc_bool;
114  else
115  throw Exception("Unknown kind");
116 
117  if(typeMap.count(name)!=0)
118  typeMap[name]->decrRef();
119  t->incrRef();
120  typeMap[name]=t;
121  t->incrRef();
122  return t;
123 }
virtual bool YACS::ENGINE::Proc::getEdition ( )
inlinevirtual

Definition at line 97 of file Proc.hxx.

97 {return _edition;}
int Proc::getGlobalProgressPercent ( )

Definition at line 233 of file Proc.cxx.

References YACS::ENGINE::ComposedNode::getProgressWeight().

234 {
235  list<ProgressWeight> weightList = getProgressWeight();
236  int weightDone = 0;
237  int weightTotal = 0;
238  int progressPercent = 0;
239  for(list<ProgressWeight>::const_iterator iter=weightList.begin();iter!=weightList.end();iter++)
240  {
241  weightDone += (*iter).weightDone;
242  weightTotal += (*iter).weightTotal;
243  }
244  if (weightTotal > 0)
245  progressPercent = int(float(weightDone) / float(weightTotal) * 100);
246  return progressPercent;
247 }
std::list< std::string > Proc::getIds ( )

Definition at line 416 of file Proc.cxx.

References YACS::ENGINE::ComposedNode::getAllRecursiveConstituents(), and YACS::ENGINE::ComposedNode::getChildName().

417 {
418  list<YACS::ENGINE::Node *> nodes = getAllRecursiveConstituents();
419  int len = nodes.size();
420  list<string> ids;
421  for( list<YACS::ENGINE::Node *>::const_iterator iter = nodes.begin();
422  iter != nodes.end(); iter++)
423  {
424  ids.push_back(getChildName(*iter));
425  }
426  ids.push_back("_root_");
427  return ids;
428 }
std::string Proc::getInPortValue ( int  nodeNumId,
std::string  portName 
)

Definition at line 264 of file Proc.cxx.

References DEBTRACE, YACS::ENGINE::DataPort::getAsString(), YACS::ENGINE::Node::getInputPort(), YACS::ENGINE::Node::idMap, and YACS::Exception::what().

265 {
266  DEBTRACE("Proc::getInPortValue " << nodeNumId << " " << portName);
267  stringstream msg;
268  if(YACS::ENGINE::Node::idMap.count(nodeNumId) == 0)
269  {
270  msg << "<value><error>unknown node id: " << nodeNumId << "</error></value>";
271  return msg.str();
272  }
273  try
274  {
276  InputPort * inputPort = node->getInputPort(portName);
277  return inputPort->getAsString();
278  }
279  catch(YACS::Exception& ex)
280  {
281  DEBTRACE("Proc::getInPortValue " << ex.what());
282  msg << "<value><error>" << ex.what() << "</error></value>";
283  return msg.str();
284  }
285 }
Logger * Proc::getLogger ( const std::string &  name)
virtual

Definition at line 430 of file Proc.cxx.

References _loggers.

Referenced by YACS::YACSLoader::load(), YACS::ENGINE::ProcCataLoader::loadCata(), YACS::HMI::GenericGui::loadSchema(), YACS::parser::logError(), main(), YACS::HMI::EditionProc::synchronize(), and YACS::HMI::BatchJobsListDialog::userOK().

431 {
432  Logger* logger;
433  LoggerMap::const_iterator it = _loggers.find(name);
434 
435  if (it != _loggers.end())
436  {
437  logger = it->second;
438  }
439  else
440  {
441  logger = new Logger(name);
442  _loggers[name]=logger;
443  }
444  return logger;
445 }
std::string Proc::getNodeContainerLog ( int  nodeNumId)

Definition at line 389 of file Proc.cxx.

References DEBTRACE, YACS::ENGINE::Node::getContainerLog(), and YACS::ENGINE::Node::idMap.

390 {
391  DEBTRACE("Proc::getNodeContainerLog " << nodeNumId);
392  stringstream msg;
393  if(YACS::ENGINE::Node::idMap.count(nodeNumId) == 0)
394  {
395  msg << "Unknown node id " << nodeNumId;
396  return msg.str();
397  }
399  return node->getContainerLog();
400 }
std::string Proc::getNodeErrorDetails ( int  nodeNumId)

Definition at line 363 of file Proc.cxx.

References DEBTRACE, YACS::ENGINE::Node::getErrorDetails(), and YACS::ENGINE::Node::idMap.

364 {
365  DEBTRACE("Proc::getNodeErrorDetails " << nodeNumId);
366  stringstream msg;
367  if(YACS::ENGINE::Node::idMap.count(nodeNumId) == 0)
368  {
369  msg << "Unknown node id " << nodeNumId;
370  return msg.str();
371  }
373  return node->getErrorDetails();
374 }
std::string Proc::getNodeErrorReport ( int  nodeNumId)

Definition at line 376 of file Proc.cxx.

References DEBTRACE, YACS::ENGINE::Node::getErrorReport(), and YACS::ENGINE::Node::idMap.

377 {
378  DEBTRACE("Proc::getNodeErrorReport " << nodeNumId);
379  stringstream msg;
380  if(YACS::ENGINE::Node::idMap.count(nodeNumId) == 0)
381  {
382  msg << "Unknown node id " << nodeNumId;
383  return msg.str();
384  }
386  return node->getErrorReport();
387 }
std::string Proc::getNodeProgress ( int  numId)

Definition at line 221 of file Proc.cxx.

References YACS::ENGINE::Node::idMap.

222 {
223  std::string progress = "0";
224  if(YACS::ENGINE::Node::idMap.count(numId) == 0)
225  {
226  cerr << "Unknown node id " << numId << endl;
227  }
228  else if (YACS::ENGINE::ComposedNode* node = dynamic_cast<YACS::ENGINE::ComposedNode*>(YACS::ENGINE::Node::idMap[numId]))
229  progress = node->getProgress();
230  return progress;
231 }
YACS::StatesForNode Proc::getNodeState ( int  numId)

Definition at line 209 of file Proc.cxx.

References YACS::ENGINE::Node::getEffectiveState(), YACS::ENGINE::Node::idMap, CORBAEngineTest::state, and YACS::UNDEFINED.

210 {
211  if(YACS::ENGINE::Node::idMap.count(numId) == 0)
212  {
213  cerr << "Unknown node id " << numId << endl;
214  return YACS::UNDEFINED;
215  }
218  return state;
219 }
std::list< int > Proc::getNumIds ( )

Definition at line 402 of file Proc.cxx.

References YACS::ENGINE::ComposedNode::getAllRecursiveConstituents(), and YACS::ENGINE::Node::getNumId().

403 {
404  list<YACS::ENGINE::Node *> nodes = getAllRecursiveConstituents();
405  int len = nodes.size();
406  list<int> numids;
407  for( list<YACS::ENGINE::Node *>::const_iterator iter = nodes.begin();
408  iter != nodes.end(); iter++)
409  {
410  numids.push_back((*iter)->getNumId());
411  }
412  numids.push_back(this->getNumId());
413  return numids;
414 }
std::string Proc::getOutPortValue ( int  nodeNumId,
std::string  portName 
)

Definition at line 340 of file Proc.cxx.

References DEBTRACE, YACS::ENGINE::DataPort::getAsString(), YACS::ENGINE::Node::getOutputPort(), YACS::ENGINE::Node::idMap, and YACS::Exception::what().

341 {
342  DEBTRACE("Proc::getOutPortValue " << nodeNumId << " " << portName);
343  stringstream msg;
344  if(YACS::ENGINE::Node::idMap.count(nodeNumId) == 0)
345  {
346  msg << "<value><error>unknown node id: " << nodeNumId << "</error></value>";
347  return msg.str();
348  }
349  try
350  {
352  OutputPort * outputPort = node->getOutputPort(portName);
353  return outputPort->getAsString();
354  }
355  catch(YACS::Exception& ex)
356  {
357  DEBTRACE("Proc::getOutPortValue " << ex.what());
358  msg << "<value><error>" << ex.what() << "</error></value>";
359  return msg.str();
360  }
361 }
const Proc * Proc::getProc ( ) const
virtual

Return the proc (this)

Reimplemented from YACS::ENGINE::Node.

Definition at line 612 of file Proc.cxx.

613 {
614  return this;
615 }
TypeCode * Proc::getTypeCode ( const std::string &  name)
virtual

Definition at line 171 of file Proc.cxx.

References YACS::ENGINE::getRuntime(), YACS::ENGINE::Runtime::getTypeCode(), and typeMap.

172 {
173  TypeCode* aTC=0;
174  if(typeMap.count(name)==0)
175  aTC=getRuntime()->getTypeCode(name);
176  else
177  aTC=typeMap[name];
178 
179  if(!aTC)
180  {
181  std::stringstream msg;
182  msg << "Type " << name << " does not exist" ;
183  msg << " (" <<__FILE__ << ":" << __LINE__ << ")";
184  throw Exception(msg.str());
185  }
186 
187  return aTC;
188 }
std::string Proc::getXMLState ( int  numId)

Definition at line 249 of file Proc.cxx.

References YACS::ENGINE::Node::getEffectiveState(), YACS::ENGINE::Node::getQualifiedName(), and YACS::ENGINE::Node::idMap.

250 {
251  if(YACS::ENGINE::Node::idMap.count(numId) == 0)
252  {
253  cerr << "Unknown node id " << numId << endl;
254  return "<state>unknown</state>";
255  }
257  stringstream msg;
258  msg << "<state>" << node->getEffectiveState() << "</state>";
259  msg << "<name>" << node->getQualifiedName() << "</name>";
260  msg << "<id>" << numId << "</id>";
261  return msg.str();
262 }
void Proc::modified ( )
virtual

Sets Proc in modified state and update state if in edition mode.

Reimplemented from YACS::ENGINE::Node.

Definition at line 458 of file Proc.cxx.

References _edition, YACS::ENGINE::Node::_modified, DEBTRACE, and YACS::ENGINE::ComposedNode::edUpdateState().

459 {
460  DEBTRACE("Proc::modified() " << _edition);
461  _modified=1;
462  if(_edition)
463  edUpdateState();
464 }
void Proc::removeComponentInstance ( ComponentInstance inst)
virtual

Remove a componentInstance from the componentInstanceMap.

To be used for a componentInstance with no service nodes referenced.

Parameters
inst,:the component instance

Definition at line 565 of file Proc.cxx.

References componentInstanceMap, YACS::ENGINE::RefCounter::decrRef(), and YACS::ENGINE::ComponentInstance::getInstanceName().

Referenced by YACS::HMI::CommandAddComponentInstance::localReverse(), and YACS::HMI::CommandAddComponentFromCatalog::localReverse().

566 {
567  if (componentInstanceMap.count(inst->getInstanceName()))
568  {
569  componentInstanceMap.erase(inst->getInstanceName());
570  inst->decrRef();
571  }
572 }
void Proc::removeContainer ( Container cont)
virtual

Remove a container from the containerMap.

To be used for a container with no componentInstance referenced.

Parameters
cont,:the container

Definition at line 580 of file Proc.cxx.

References containerMap, YACS::ENGINE::RefCounter::decrRef(), and YACS::ENGINE::Container::getName().

Referenced by YACS::HMI::SubjectContainerBase::~SubjectContainerBase().

581 {
582  if (containerMap.count(cont->getName()))
583  {
584  containerMap.erase(cont->getName());
585  cont->decrRef();
586  }
587 }
void Proc::removeContainers ( )
protected

Definition at line 490 of file Proc.cxx.

References containerMap.

Referenced by updateContainersAndComponents(), and ~Proc().

491 {
492  //get rid of containers in container map
493  std::map<std::string, Container*>::const_iterator it;
494  for(it=containerMap.begin();it!=containerMap.end();it++)
495  ((*it).second)->decrRef();
496  containerMap.clear();
497 }
void Proc::saveSchema ( const std::string &  xmlSchemaFile)
virtual

Save Proc in XML schema file.

Parameters
xmlSchemaFile,:the file name

Definition at line 470 of file Proc.cxx.

References accept(), YACS::ENGINE::VisitorSaveSchema::closeFileSchema(), and YACS::ENGINE::VisitorSaveSchema::openFileSchema().

471 {
472  VisitorSaveSchema vss(this);
473  vss.openFileSchema(xmlSchemaFile);
474  accept(&vss);
475  vss.closeFileSchema();
476 }
void Proc::saveState ( const std::string &  xmlStateFile)
virtual

Save Proc state in XML state file.

deprecated. See VisitorSalomeSaveState and schemaSaveState in order to deal with the execution state of ForEachLoop.

Parameters
xmlStateFile,:the file name

Definition at line 482 of file Proc.cxx.

References accept(), YACS::ENGINE::VisitorSaveState::closeFileDump(), and YACS::ENGINE::VisitorSaveState::openFileDump().

483 {
484  VisitorSaveState vst(this);
485  vst.openFileDump(xmlStateFile);
486  accept(&vst);
487  vst.closeFileDump();
488 }
void Proc::setEdition ( bool  edition)
virtual

Definition at line 447 of file Proc.cxx.

References _edition, DEBTRACE, and YACS::ENGINE::ComposedNode::edUpdateState().

Referenced by YACS::HMI::GenericGui::createContext(), and YACS::HMI::QtGuiContext::~QtGuiContext().

448 {
449  DEBTRACE("Proc::setEdition: " << edition);
450  _edition=edition;
451  if(_edition)
452  edUpdateState();
453 }
std::string Proc::setInPortValue ( std::string  nodeName,
std::string  portName,
std::string  value 
)

Definition at line 287 of file Proc.cxx.

References YACS::ENGINE::Bool, DEBTRACE, YACS::ENGINE::Double, YACS::ENGINE::DataPort::edGetType(), YACS::ENGINE::InputPort::edInit(), YACS::ENGINE::Node::getInputPort(), YACS::ENGINE::Int, YACS::ENGINE::TypeCode::kind(), nodeMap, YACS::ENGINE::String, and YACS::Exception::what().

Referenced by main().

288 {
289  DEBTRACE("Proc::setInPortValue " << nodeName << " " << portName << " " << value);
290 
291  try
292  {
294  YACS::ENGINE::InputPort* inputPort = node->getInputPort(portName);
295 
296  switch (inputPort->edGetType()->kind())
297  {
298  case Double:
299  {
300  double val = atof(value.c_str());
301  inputPort->edInit(val);
302  }
303  break;
304  case Int:
305  {
306  int val = atoi(value.c_str());
307  inputPort->edInit(val);
308  }
309  break;
310  case String:
311  inputPort->edInit(value.c_str());
312  break;
313  case Bool:
314  {
315  if((!value.compare("False")) || (!value.compare("false")))
316  inputPort->edInit(false);
317  else if ((!value.compare("True")) || (!value.compare("true")))
318  inputPort->edInit(true);
319  else
320  {
321  int val = atoi(value.c_str());
322  inputPort->edInit(val);
323  }
324  }
325  break;
326  default:
327  DEBTRACE("Proc::setInPortValue: filtered type: " << inputPort->edGetType()->kind());
328  }
329  return value;
330  }
331  catch(YACS::Exception& ex)
332  {
333  DEBTRACE("Proc::setInPortValue " << ex.what());
334  stringstream msg;
335  msg << "<value><error>" << ex.what() << "</error></value>";
336  return msg.str();
337  }
338 }
void Proc::setName ( const std::string &  name)

Definition at line 204 of file Proc.cxx.

References YACS::ENGINE::Node::_name.

Referenced by YACS::proctypeParser< T >::name().

205 {
206  _name = name;
207 }
void Proc::setTypeCode ( const std::string &  name,
TypeCode t 
)
virtual

Definition at line 190 of file Proc.cxx.

References YACS::ENGINE::RefCounter::incrRef(), gui.Appli::t, and typeMap.

191 {
192  if(typeMap.count(name)!=0)
193  typeMap[name]->decrRef();
194  typeMap[name]=t;
195  t->incrRef();
196 }
virtual std::string YACS::ENGINE::Proc::typeName ( )
inlinevirtual

Reimplemented from YACS::ENGINE::Bloc.

Reimplemented in YACS::ENGINE::SalomeProc.

Definition at line 84 of file Proc.hxx.

84 {return "YACS__ENGINE__Proc";}
void Proc::updateContainersAndComponents ( )
virtual

This method is useful if this has been modified recursively and an update is needed between all the containers and components refered by children and little children and maps.

Definition at line 621 of file Proc.cxx.

References componentInstanceMap, containerMap, YACS::ENGINE::DeploymentTree::getAllContainers(), YACS::ENGINE::ComponentInstance::getCompoName(), YACS::ENGINE::DeploymentTree::getComponentsLinkedToContainer(), YACS::ENGINE::ComposedNode::getDeploymentTree(), YACS::ENGINE::Container::getName(), YACS::ENGINE::RefCounter::incrRef(), and removeContainers().

622 {
623  std::map<std::string, Container*> myContainerMap;
624  std::map<std::string, ComponentInstance*> myComponentInstanceMap;
625  DeploymentTree treeToDup(getDeploymentTree());
626  vector<Container *> conts(treeToDup.getAllContainers());
627  for(vector<Container *>::const_iterator iterCt=conts.begin();iterCt!=conts.end();iterCt++)
628  {
629  Container *tmp(*iterCt);
630  if(tmp)
631  {
632  if(myContainerMap.find(tmp->getName())!=myContainerMap.end())
633  {
634  std::ostringstream oss; oss << "Proc::updateContainersAndComponents : more than one container instance with name \"" << tmp->getName() << "\" !";
635  throw YACS::Exception(oss.str());
636  }
637  myContainerMap[tmp->getName()]=tmp;
638  tmp->incrRef();
639  }
640  vector<ComponentInstance *> comps=treeToDup.getComponentsLinkedToContainer(*iterCt);
641  for(vector<ComponentInstance *>::iterator iterCp=comps.begin();iterCp!=comps.end();iterCp++)
642  {
643  ComponentInstance *tmp2(*iterCp);
644  if(tmp2)
645  {
646  if(myComponentInstanceMap.find(tmp2->getCompoName())!=myComponentInstanceMap.end())
647  {
648  std::ostringstream oss; oss << "Proc::updateContainersAndComponents : more than one component instance with name \"" << tmp2->getCompoName() << "\" !";
649  throw YACS::Exception(oss.str());
650  }
651  }
652  myComponentInstanceMap[tmp2->getCompoName()]=tmp2;
653  tmp2->incrRef();
654  }
655  }
657  containerMap=myContainerMap;
658  componentInstanceMap=myComponentInstanceMap;
659 }
void Proc::writeDot ( std::ostream &  os) const
virtual

Dump to the input stream a dot representation of the node.

Parameters
os: the input stream

Reimplemented from YACS::ENGINE::Bloc.

Definition at line 86 of file Proc.cxx.

References YACS::ENGINE::Node::getQualifiedName(), and YACS::ENGINE::Bloc::writeDot().

Referenced by driverTest(), and main().

87 {
88  os << "digraph " << getQualifiedName() << " {\n" ;
89  os << "node [ style=\"filled\" ];\n" ;
90  os << "compound=true;";
91  os << "states [label=< <TABLE> <TR> <TD BGCOLOR=\"pink\" > Ready</TD> <TD BGCOLOR=\"magenta\" > Toload</TD> </TR> <TR> <TD BGCOLOR=\"magenta\" > Loaded</TD> <TD BGCOLOR=\"purple\" > Toactivate</TD> </TR> <TR> <TD BGCOLOR=\"blue\" > Activated</TD> <TD BGCOLOR=\"green\" > Done</TD> </TR> <TR> <TD BGCOLOR=\"red\" > Error</TD> <TD BGCOLOR=\"orange\" > Failed</TD> </TR> <TR> <TD BGCOLOR=\"grey\" > Disabled</TD> <TD BGCOLOR=\"white\" > Pause</TD> </TR> </TABLE>> \n shape = plaintext \n style = invis \n ];\n";
92 
93  Bloc::writeDot(os);
94  os << "}\n" ;
95 }

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const Proc p 
)
friend

Definition at line 97 of file Proc.cxx.

98 {
99  os << "Proc" ;
100  return os;
101 }

Member Data Documentation

int YACS::ENGINE::Proc::_compoinstctr
protected

Definition at line 108 of file Proc.hxx.

Referenced by addComponentInstance().

bool YACS::ENGINE::Proc::_edition
protected

Definition at line 107 of file Proc.hxx.

Referenced by modified(), and setEdition().

LoggerMap YACS::ENGINE::Proc::_loggers

Definition at line 96 of file Proc.hxx.

Referenced by getLogger(), and ~Proc().

std::map<std::string, Container*> YACS::ENGINE::Proc::containerMap

Definition at line 91 of file Proc.hxx.

Referenced by YACS::HMI::EditionComponent::changeContainer(), YACS::HMI::EditionScript::changeContainer(), YACS::HMI::EditionSalomeNode::changeContainer(), YACS::proctypeParser< T >::componentinstance(), YACS::proctypeParser< T >::container(), createContainer(), YACS::HMI::EditionComponent::fillContainerPanel(), YACS::HMI::EditionScript::fillContainerPanel(), YACS::HMI::EditionSalomeNode::fillContainerPanel(), YACS::ENGINE::Visitor::getContainerMap(), YACS::servertypeParser< T >::loadcontainer(), YACS::HMI::SubjectProc::loadContainers(), YACS::HMI::CommandRenameContainer::localExecute(), YACS::HMI::CommandAddContainerBase::localExecute(), YACS::HMI::CommandSetContainerProperties::localExecute(), YACS::HMI::CommandAddComponentInstance::localExecute(), YACS::HMI::CommandSetContainer::localExecute(), YACS::HMI::CommandAssociateComponentToContainer::localExecute(), YACS::HMI::CommandDestroy::localExecute(), YACS::HMI::CommandRenameContainer::localReverse(), YACS::HMI::CommandAddContainerBase::localReverse(), YACS::HMI::CommandSetContainerProperties::localReverse(), YACS::HMI::CommandSetContainer::localReverse(), YACS::HMI::CommandAssociateComponentToContainer::localReverse(), YACS::HMI::CommandAssociateServiceToComponent::localReverse(), YACS::sinlinetypeParser< T >::post(), YACS::remotetypeParser< T >::post(), YACS::servertypeParser< T >::post(), YACS::servicetypeParser< T >::post(), removeContainer(), removeContainers(), YACS::HMI::SubjectServiceNode::setComponent(), and updateContainersAndComponents().

std::vector<std::string> YACS::ENGINE::Proc::names

Definition at line 93 of file Proc.hxx.

Referenced by YACS::looptypeParser< T >::bloc(), YACS::casetypeParser::bloc(), YACS::bloctypeParser< T >::bloc(), YACS::bloctypeParser< T >::control(), YACS::looptypeParser< T >::datalink(), YACS::bloctypeParser< T >::datalink(), YACS::looptypeParser< T >::foreach(), YACS::casetypeParser::foreach(), YACS::bloctypeParser< T >::foreach(), YACS::looptypeParser< T >::forloop(), YACS::casetypeParser::forloop(), YACS::bloctypeParser< T >::forloop(), YACS::casetypeParser::id(), YACS::looptypeParser< T >::inline_(), YACS::casetypeParser::inline_(), YACS::bloctypeParser< T >::inline_(), YACS::switchtypeParser::name(), YACS::whilelooptypeParser< T >::name(), YACS::forlooptypeParser< T >::name(), YACS::bloctypeParser< T >::name(), YACS::foreachlooptypeParser< T >::name(), YACS::optimizerlooptypeParser< T >::name(), YACS::looptypeParser< T >::node(), YACS::casetypeParser::node(), YACS::servertypeParser< T >::node(), YACS::servicetypeParser< T >::node(), YACS::bloctypeParser< T >::node(), YACS::looptypeParser< T >::optimizer(), YACS::casetypeParser::optimizer(), YACS::bloctypeParser< T >::optimizer(), YACS::bloctypeParser< T >::outnode(), YACS::bloctypeParser< T >::parameter(), YACS::casetypeParser::post(), YACS::switchtypeParser::post(), YACS::nodetypeParser< T >::post(), YACS::whilelooptypeParser< T >::post(), YACS::forlooptypeParser< T >::post(), YACS::bloctypeParser< T >::post(), YACS::foreachlooptypeParser< T >::post(), YACS::optimizerlooptypeParser< T >::post(), YACS::foreachlooptypeParser< T >::postAttr(), YACS::optimizerlooptypeParser< T >::postAttr(), YACS::proctypeParser< T >::pre(), YACS::defaultcasetypeParser::pre(), YACS::bloctypeParser< T >::preset(), YACS::looptypeParser< T >::remote(), YACS::casetypeParser::remote(), YACS::bloctypeParser< T >::remote(), YACS::looptypeParser< T >::server(), YACS::casetypeParser::server(), YACS::bloctypeParser< T >::server(), YACS::looptypeParser< T >::service(), YACS::casetypeParser::service(), YACS::bloctypeParser< T >::service(), YACS::looptypeParser< T >::sinline(), YACS::casetypeParser::sinline(), YACS::bloctypeParser< T >::sinline(), YACS::bloctypeParser< T >::stream(), YACS::looptypeParser< T >::switch_(), YACS::casetypeParser::switch_(), YACS::bloctypeParser< T >::switch_(), YACS::looptypeParser< T >::while_(), YACS::casetypeParser::while_(), and YACS::bloctypeParser< T >::while_().

std::map<std::string, Node*> YACS::ENGINE::Proc::nodeMap

Definition at line 87 of file Proc.hxx.

Referenced by YACS::looptypeParser< T >::bloc(), YACS::casetypeParser::bloc(), YACS::bloctypeParser< T >::bloc(), YACS::bloctypeParser< T >::control(), YACS::looptypeParser< T >::datalink(), YACS::bloctypeParser< T >::datalink(), YACS::looptypeParser< T >::foreach(), YACS::casetypeParser::foreach(), YACS::bloctypeParser< T >::foreach(), YACS::looptypeParser< T >::forloop(), YACS::casetypeParser::forloop(), YACS::bloctypeParser< T >::forloop(), YACS::looptypeParser< T >::inline_(), YACS::casetypeParser::inline_(), YACS::bloctypeParser< T >::inline_(), YACS::whilelooptypeParser< T >::name(), YACS::forlooptypeParser< T >::name(), YACS::looptypeParser< T >::node(), YACS::casetypeParser::node(), YACS::bloctypeParser< T >::node(), YACS::looptypeParser< T >::optimizer(), YACS::casetypeParser::optimizer(), YACS::bloctypeParser< T >::optimizer(), YACS::bloctypeParser< T >::outnode(), YACS::bloctypeParser< T >::parameter(), YACS::bloctypeParser< T >::preset(), YACS::looptypeParser< T >::remote(), YACS::casetypeParser::remote(), YACS::bloctypeParser< T >::remote(), YACS::looptypeParser< T >::server(), YACS::casetypeParser::server(), YACS::bloctypeParser< T >::server(), YACS::looptypeParser< T >::service(), YACS::casetypeParser::service(), YACS::bloctypeParser< T >::service(), setInPortValue(), YACS::looptypeParser< T >::sinline(), YACS::casetypeParser::sinline(), YACS::bloctypeParser< T >::sinline(), YACS::bloctypeParser< T >::stream(), YACS::looptypeParser< T >::switch_(), YACS::casetypeParser::switch_(), YACS::bloctypeParser< T >::switch_(), YACSPMMLBasicsTest1::testYACSdriver_LRANN(), YACSPMMLBasicsTest1::testYACSdriver_PmmlDoesNotExist(), YACSPMMLBasicsTest1::testYACSdriverLinearRegression(), YACSPMMLBasicsTest1::testYACSdriverNeuralNetwork(), YACS::looptypeParser< T >::while_(), YACS::casetypeParser::while_(), and YACS::bloctypeParser< T >::while_().


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