enum KindOfNode { FactoryNode , DataFlowGraph , ComputingNode ,
InLineNode , LoopNode , EndLoopNode ,
SwitchNode , EndSwitchNode , GOTONode , DataStreamGraph ,
- UnknownNode };
+ MacroNode ,UnknownNode };
/*!
This struct contains fields defining the date.
interface ELNode ;
interface SNode ;
interface ESNode ;
- interface StreamGraph ;
interface Graph ;
+ interface StreamGraph ;
typedef sequence<CNode> ListOfCNodes ;
typedef sequence<FNode> ListOfFNodes ;
typedef sequence<ELNode> ListOfELNodes ;
typedef sequence<SNode> ListOfSNodes ;
typedef sequence<ESNode> ListOfESNodes ;
- typedef sequence<Graph> ListOfGraphs ;
+ typedef sequence<Graph> ListOfGraphs ;
/*!
This struct contains fields defining different types of nodes.
ToSuspendState , ToSuspendDoneState ,
ToKillState , ToKillDoneState , ToStopState ,
NumberOfControlStates } ;
-/*!
-The AutomatonState is an internal state of the automaton of the Executor
-of the %Supervision %Engine. It is used for inner debugging purposes only.
-*/
-
- enum AutomatonState { UnKnownState ,
- DataUndefState ,
- DataWaitingState ,
- DataReadyState ,
- SuspendedReadyState,
- SuspendedReadyToResumeState ,
- ResumedReadyState ,
- KilledReadyState ,
- StoppedReadyState ,
- ExecutingState ,
- SuspendedExecutingState ,
- ResumedExecutingState ,
- KilledExecutingState ,
- StoppedExecutingState ,
- SuccessedExecutingState ,
- ErroredExecutingState ,
- SuspendedSuccessedState ,
- SuspendedErroredState,
- ResumedSuccessedState ,
- ResumedErroredState ,
- KilledSuccessedState ,
- KilledErroredState ,
- StoppedSuccessedState ,
- StoppedErroredState ,
- SuccessedState ,
- ErroredState ,
- SuspendedState ,
- KilledState ,
- StoppedState ,
- SuspendedSuccessedToReStartState ,
- SuspendedErroredToReStartState ,
- ReRunnedState ,
- ReStartedState ,
- NumberOfAutomatonStates
- } ;
*/
SUPERV::StreamPort GetOutStreamPort( in string aParameterName ) ;
+/*!
+ Returns true if a Node (or Graph) has StreamPorts
+*/
+ boolean HasStreamPort() ;
+
/*!
Enters a value into an Input %Port
*/
/*!
Returns True if this node is a graph.
-\note <BR>A node of the graph can also represent in its turn another graph.
*/
boolean IsStreamGraph() ;
/*!
Returns True if this node is a graph.
-\note <BR>A node of the graph can also represent in its turn another graph.
*/
boolean IsGraph() ;
+
+/*!
+Returns True if this node is a MacroNode of a DataFlowGraph or a DataStreamGraph.
+*/
+ boolean IsMacro() ;
+/*!
+Returns True if this node is a MacroNode of a DataFlowGraph.
+*/
+ boolean IsFlowMacro() ;
+/*!
+Returns True if this node is a MacroNode of a DataStreamGraph.
+*/
+ boolean IsStreamMacro() ;
+
+/*!
+Returns True if this node is a Head Graph .
+*/
+ boolean IsHeadGraph() ;
+/*!
+Returns the MacroNode Level of this node.
+*/
+ long GraphLevel() ;
+
/*!
Returns True if the node appears to be a %computing node.
*/
*/
boolean ReStartAt( in string aNodeName );
-/*!
- Returns automaton execution state of the node(graph).
-*/
- SUPERV::AutomatonState AutoState() ;
-
// Control state required : Kill, Suspend, Stop
/*!
Returns control state of the node(graph).
*/
///////////////
- interface Graph : INode {
+ interface Graph : GNode {
///////////////
/*! Creates a Computing Node in a Graph.
SUPERV::SNode SNode( in string FuncName , in ListOfStrings aPythonFunction ,
out SUPERV::INode anEndOfSwitch ) ;
+ /*! Creates a "MacroNode" node which corresponds to a Graph with a xml file
+ */
+ SUPERV::Graph MNode( in string aXmlFileName ) ;
+
+ /*! Creates a "MacroNode" node which corresponds to a Graph with a Graph
+ */
+ SUPERV::Graph GraphMNode( in Graph aGraph ) ;
+
+ /*! Returns a Graph of a "MacroNode" or a "MacroNode" of a Graph
+ */
+ SUPERV::Graph FlowObjRef() ;
+
+ /*! Returns a StreamGraph of a "MacroNode" or a "MacroNode" of a StreamGraph
+ */
+ SUPERV::StreamGraph StreamObjRef() ;
+
/*! Returns an existing node with a definite name.
\param aNodeName Name of the Node.
*/
Allows to copy one graph into another.
*/
SUPERV::StreamGraph StreamCopy() ;
+ /*! Creates a "MacroNode" node which corresponds to a StreamGraph with a xml file
+ */
+ SUPERV::StreamGraph StreamMNode( in string aXmlFileName ) ;
+
+ /*! Creates a "MacroNode" node which corresponds to a StreamGraph with a Graph
+ */
+ SUPERV::StreamGraph StreamGraphMNode( in StreamGraph aStreamGraph ) ;
+
/*!
Creates a link connecting two ports (%Output %Port and %Input %Port) of the nodes in a Graph
*/
*/
boolean IsDone() ;
+/*! deactivate the objref of a Port when its node is destroyed
+*/
+ void Remove() ;
+
} ;
////////////////////