53 class InputDataStreamPort;
54 class OutputDataStreamPort;
94 static const char SEP_CHAR_IN_PORT[];
99 Node *_eventReceiver=
nullptr;
101 Node(
const std::string& name);
110 virtual void init(
bool start=
true);
111 virtual void shutdown(
int level);
112 virtual void resetState(
int level);
116 Node *cloneWithoutCompAndContDeepCpy(
ComposedNode *father,
bool editionOnly=
true)
const;
125 const std::string&
getName()
const {
return _name; }
126 void setName(
const std::string& name);
128 const std::string getId()
const;
129 bool exIsControlReady()
const;
130 std::list<Node *> getOutNodes()
const;
131 virtual void writeDot(std::ostream &os)
const;
132 void writeDotInFile(
const std::string& fileName)
const;
133 virtual void exUpdateState();
134 virtual void exFailedState();
135 virtual void exDisabledState();
141 std::list<InPort *> getSetOfInPort()
const;
142 std::list<OutPort *> getSetOfOutPort()
const;
147 virtual std::set<InputPort *> edGetSetOfUnitializedInputPort()
const;
148 virtual bool edAreAllInputPortInitialized()
const;
153 InPort *getInPort(
const std::string& name)
const;
155 virtual OutPort *getOutPort(
const std::string& name)
const;
160 virtual InputPort *getInputPort(
const std::string& name)
const;
164 std::list<ComposedNode *> getAllAscendanceOf(
ComposedNode *levelToStop = 0)
const;
165 bool operator>(
const Node& other)
const;
166 bool operator<(
const Node& other)
const;
167 std::string getImplementation()
const;
170 virtual void setProperty(
const std::string& name,
const std::string& value);
171 virtual std::string getProperty(
const std::string& name);
172 std::map<std::string,std::string> getProperties() ;
174 virtual void setProperties(std::map<std::string,std::string> properties);
176 virtual Proc *getProc();
177 virtual const Proc *getProc()
const;
182 std::string getQualifiedName()
const;
184 std::vector<std::pair<std::string,int> > getDPLScopeInfo(
ComposedNode *gfn);
186 virtual void sendEvent(
const std::string& event);
187 virtual void sendEvent2(
const std::string& event,
void *something);
189 virtual std::string
typeName() {
return "YACS__ENGINE__Node"; }
192 virtual void modified();
194 virtual int isValid();
195 virtual void edUpdateState();
196 virtual std::string getErrorReport();
197 virtual std::string getContainerLog();
198 virtual void ensureLoading();
200 virtual void cleanNodes();
202 virtual void exForwardFailed();
203 virtual void exForwardFinished();
204 virtual void edDisconnectAllLinksWithMe();
205 static void checkValidityOfPortName(
const std::string& name);
208 static void checkValidityOfNodeName(
const std::string& name);
#define YACSLIBENGINE_EXPORT
Composed node to group elementary and composed nodes.
Base class for all composed nodes.
Base class for dynamically (fully or semifully) built graphs.
Base class for all calculation nodes.
Loop node for parametric calculation.
class for Input Property Ports
Base class for loop node.
Base class for all nodes.
static std::map< int, Node * > idMap
virtual std::list< OutputPort * > getSetOfOutputPort() const =0
virtual Node * simpleClone(ComposedNode *father, bool editionOnly=true) const =0
virtual int getMaxLevelOfParallelism() const =0
virtual void setErrorDetails(const std::string &error)
virtual std::string getInPortName(const InPort *) const =0
virtual std::vector< std::pair< InPort *, OutPort * > > getSetOfLinksComingInCurrentScope() const =0
virtual void getReadyTasks(std::vector< Task * > &tasks)=0
virtual InputDataStreamPort * getInputDataStreamPort(const std::string &name) const =0
virtual std::list< InputDataStreamPort * > getSetOfInputDataStreamPort() const =0
virtual void getCoupledNodes(std::set< Task * > &coupledNodes)
virtual std::list< InputPort * > getLocalInputPorts() const =0
virtual void getWeightRegardingDPL(ComplexWeight *weight)=0
InPropertyPort * _inPropertyPort
virtual std::string getOutPortName(const OutPort *) const =0
std::map< std::string, std::string > _propertyMap
virtual std::list< ProgressWeight > getProgressWeight() const =0
virtual std::list< OutputPort * > getLocalOutputPorts() const =0
virtual int getNumberOfInputPorts() const =0
virtual void performDuplicationOfPlacement(const Node &other)=0
performs a duplication of placement using clone method of containers and components....
virtual Node * getChildByName(const std::string &name) const =0
virtual std::set< InPort * > getAllInPortsComingFromOutsideOfCurrentScope() const =0
ComposedNode * getFather() const
friend void StateLoader(Node *node, YACS::StatesForNode state)
virtual std::string typeName()
std::map< std::string, std::string > getPropertyMap()
std::string _implementation
virtual std::list< ElementaryNode * > getRecursiveConstituents() const =0
virtual std::string getErrorDetails() const
virtual int getNumberOfOutputPorts() const =0
virtual YACS::StatesForNode getState() const
virtual void performShallowDuplicationOfPlacement(const Node &other)=0
performs a also duplication of placement but here containers and components are not copied at all wha...
virtual std::list< InputPort * > getSetOfInputPort() const =0
virtual std::set< OutPort * > getAllOutPortsLeavingCurrentScope() const =0
virtual std::vector< std::pair< OutPort *, InPort * > > getSetOfLinksLeavingCurrentScope() const =0
const std::string & getName() const
virtual OutputPort * getOutputPort(const std::string &name) const =0
std::string _errorDetails
YACS::StatesForNode _state
virtual void partitionRegardingDPL(const PartDefinition *pd, std::map< ComposedNode *, YACS::BASES::AutoRefCnt< PartDefinition > > &zeMap)=0
virtual void accept(Visitor *visitor)=0
virtual OutputDataStreamPort * getOutputDataStreamPort(const std::string &name) const =0
virtual std::list< OutputDataStreamPort * > getSetOfOutputDataStreamPort() const =0
Base class for all schema objects.
Control node that emulates the C switch.
void YACSLIBENGINE_EXPORT StateLoader(Node *node, YACS::StatesForNode state)