Version: 8.3.0
YACS::ENGINE::SplitterNode Class Reference

#include <ForEachLoop.hxx>

Inheritance diagram for YACS::ENGINE::SplitterNode:
Collaboration diagram for YACS::ENGINE::SplitterNode:

Private Member Functions

 SplitterNode (const std::string &name, TypeCode *typeOfData, ForEachLoop *father)
 
 SplitterNode (const SplitterNode &other, ForEachLoop *father)
 
InputPortgetInputPort (const std::string &name) const throw (Exception)
 
NodesimpleClone (ComposedNode *father, bool editionOnly) const
 
unsigned getNumberOfElements () const
 
void execute ()
 
void init (bool start=true)
 
void putSplittedValueOnRankTo (int rankInSeq, int branch, bool first)
 

Private Attributes

SeqAnyInputPort _dataPortToDispatch
 

Static Private Attributes

static const char NAME_OF_SEQUENCE_INPUT [] ="SmplsCollection"
 

Friends

class ForEachLoop
 

Additional Inherited Members

- Public Member Functions inherited from YACS::ENGINE::ElementaryNode
virtual ~ElementaryNode ()
 
void exUpdateState ()
 Update the node state. More...
 
bool isDeployable () const
 
ComponentInstancegetComponent ()
 
const ComponentInstancegetComponent () const
 
ContainergetContainer ()
 
YACS::StatesForNode getState () const
 
void getReadyTasks (std::vector< Task * > &tasks)
 
void edRemovePort (Port *port) throw (Exception)
 
std::list< ElementaryNode * > getRecursiveConstituents () const
 
std::list< ProgressWeightgetProgressWeight () const
 Get the progress weight for all elementary nodes. More...
 
NodegetChildByName (const std::string &name) const throw (Exception)
 
virtual void checkBasicConsistency () const throw (Exception)
 
ComposedNodegetDynClonerIfExists (const ComposedNode *levelToStop) const
 
int getNumberOfInputPorts () const
 
int getNumberOfOutputPorts () const
 
std::string getInPortName (const InPort *) const throw (Exception)
 
std::string getOutPortName (const OutPort *) const throw (Exception)
 
OutputPortgetOutputPort (const std::string &name) const throw (Exception)
 
std::list< InputPort * > getSetOfInputPort () const
 
std::list< OutputPort * > getSetOfOutputPort () const
 
std::list< InputPort * > getLocalInputPorts () const
 
std::list< OutputPort * > getLocalOutputPorts () const
 
std::set< OutPort * > getAllOutPortsLeavingCurrentScope () const
 
std::set< InPort * > getAllInPortsComingFromOutsideOfCurrentScope () const
 
virtual std::vector< std::pair
< OutPort *, InPort * > > 
getSetOfLinksLeavingCurrentScope () const
 
virtual std::vector< std::pair
< InPort *, OutPort * > > 
getSetOfLinksComingInCurrentScope () const
 
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)
 
virtual InputPortcreateInputPort (const std::string &inputPortName, TypeCode *type)
 
virtual OutputPortcreateOutputPort (const std::string &outputPortName, TypeCode *type)
 
virtual InputDataStreamPortcreateInputDataStreamPort (const std::string &inputPortDSName, TypeCode *type)
 
virtual OutputDataStreamPortcreateOutputDataStreamPort (const std::string &outputPortDSName, TypeCode *type)
 
virtual InputPortedAddInputPort (const std::string &inputPortName, TypeCode *type) throw (Exception)
 
virtual OutputPortedAddOutputPort (const std::string &outputPortName, TypeCode *type) throw (Exception)
 
virtual InputDataStreamPortedAddInputDataStreamPort (const std::string &inputPortDSName, TypeCode *type) throw (Exception)
 
virtual OutputDataStreamPortedAddOutputDataStreamPort (const std::string &outputPortDSName, TypeCode *type) throw (Exception)
 
virtual void edOrderInputPorts (const std::list< InputPort * > &ports)
 
virtual void edOrderOutputPorts (const std::list< OutputPort * > &ports)
 
virtual std::string typeName ()
 
virtual void edUpdateState ()
 update the status of the node More...
 
virtual void ensureLoading ()
 Put this node into TOLOAD state when possible. More...
 
int getMaxLevelOfParallelism () const
 
void begin ()
 
bool isReady ()
 
void finished ()
 
void aborted ()
 
void loaded ()
 Notify this node that it is loaded. More...
 
void connected ()
 Notify this node that it is connected. More...
 
virtual std::string getErrorDetails ()
 Give a description of error when node status is ERROR. More...
 
virtual void initService ()
 
virtual void connectService ()
 
virtual void disconnectService ()
 
virtual void load ()
 
virtual void getCoupledTasks (std::set< Task * > &coupledSet)
 Calls getCoupledNodes for Task interface. More...
 
virtual void getCoupledNodes (std::set< Task * > &coupledSet)
 Put all nodes that are coupled to this node in coupledSet. More...
 
void accept (Visitor *visitor)
 
virtual void addDatastreamPortToInitMultiService (const std::string &port_name, int number)
 
template<class PORT >
void edRemovePortTypedFromSet (PORT *port, std::list< PORT * > &setOfPorts) throw (Exception)
 
template<class PORT >
bool isPortNameAlreadyExist (const std::string &portName, const std::list< PORT * > &setOfPorts)
 
- Static Public Member Functions inherited from YACS::ENGINE::Node
static std::string getStateName (YACS::StatesForNode state)
 Return the name of a state. More...
 
- 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 Member Functions inherited from YACS::ENGINE::ElementaryNode
 ElementaryNode (const std::string &name)
 
 ElementaryNode (const ElementaryNode &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 initCommonPartWithoutStateManagement (bool start)
 
virtual void createMultiDatastreamPorts ()
 
void edDisconnectAllLinksWithMe ()
 
bool areAllInputPortsValid () const
 
template<class PORT >
PORT * getPort (const std::string &name, const std::list< PORT * > &setOfPorts) const throw (Exception)
 
template<class PORT , class ENUMTYPE >
PORT * edAddPort (const std::string &portName, std::list< PORT * > &setOfPorts, ENUMTYPE type) throw (Exception)
 
template<class PORT , class ENUMTYPE >
bool edCheckAddPort (const std::string &portName, std::list< PORT * > &setOfPorts, ENUMTYPE type) throw (Exception)
 
- Static Protected Member Functions inherited from YACS::ENGINE::ElementaryNode
template<class PORT >
static void edRemovePortTypedFromSet (PORT *port, std::list< PORT * > &setOfPorts) throw (Exception)
 
template<class PORT >
static bool isPortNameAlreadyExist (const std::string &portName, const std::list< PORT * > &setOfPorts)
 
- Protected Attributes inherited from YACS::ENGINE::ElementaryNode
std::list< InputPort * > _setOfInputPort
 
std::list< OutputPort * > _setOfOutputPort
 
std::list< InputDataStreamPort * > _setOfInputDataStreamPort
 
std::list< OutputDataStreamPort * > _setOfOutputDataStreamPort
 
bool _createDatastreamPorts
 
bool _multi_port_node
 
- Static Protected Attributes inherited from YACS::ENGINE::Node
static const char SEP_CHAR_IN_PORT [] ="."
 
static int _total = 0
 

Detailed Description

Definition at line 89 of file ForEachLoop.hxx.

Constructor & Destructor Documentation

SplitterNode::SplitterNode ( const std::string &  name,
TypeCode typeOfData,
ForEachLoop father 
)
private

Definition at line 205 of file ForEachLoop.cxx.

References YACS::ENGINE::Node::_father.

Referenced by simpleClone().

206  :ElementaryNode(name),
208  this,(TypeCodeSeq *)TypeCode::sequenceTc("","",typeOfData))
209 {
210  _father=father;
211 }
SplitterNode::SplitterNode ( const SplitterNode other,
ForEachLoop father 
)
private

Definition at line 213 of file ForEachLoop.cxx.

213  :ElementaryNode(other,father),
215 {
216 }

Member Function Documentation

void SplitterNode::execute ( )
privatevirtual

Implements YACS::ENGINE::Task.

Definition at line 236 of file ForEachLoop.cxx.

237 {
238  //Nothing : should never been called elsewhere big problem...
239 }
InputPort * SplitterNode::getInputPort ( const std::string &  name) const throw (Exception)
privatevirtual

Reimplemented from YACS::ENGINE::ElementaryNode.

Definition at line 218 of file ForEachLoop.cxx.

References YACS::ENGINE::ElementaryNode::getInputPort().

219 {
220  if(name==NAME_OF_SEQUENCE_INPUT)
221  return (InputPort *)&_dataPortToDispatch;
222  else
223  return ElementaryNode::getInputPort(name);
224 }
void SplitterNode::init ( bool  start = true)
privatevirtual

initialisation of all input and output ports and gates, for execution

Reimplemented from YACS::ENGINE::ElementaryNode.

Definition at line 241 of file ForEachLoop.cxx.

References _dataPortToDispatch, YACS::ENGINE::InputPort::exInit(), and YACS::ENGINE::ElementaryNode::init().

Referenced by YACS::ENGINE::ForEachLoop::init().

242 {
243  ElementaryNode::init(start);
245 }
void SplitterNode::putSplittedValueOnRankTo ( int  rankInSeq,
int  branch,
bool  first 
)
private
Node * SplitterNode::simpleClone ( ComposedNode father,
bool  editionOnly 
) const
privatevirtual

Implements YACS::ENGINE::Node.

Definition at line 226 of file ForEachLoop.cxx.

References SplitterNode().

227 {
228  return new SplitterNode(*this,(ForEachLoop *)father);
229 }

Friends And Related Function Documentation

friend class ForEachLoop
friend

Definition at line 91 of file ForEachLoop.hxx.

Member Data Documentation

const char SplitterNode::NAME_OF_SEQUENCE_INPUT ="SmplsCollection"
staticprivate

Definition at line 93 of file ForEachLoop.hxx.

Referenced by YACS::ENGINE::ForEachLoop::getInputPort().


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