]> SALOME platform Git repositories - modules/superv.git/blobdiff - idl/SUPERV.idl
Salome HOME
DCQ:prepare 2.0.0
[modules/superv.git] / idl / SUPERV.idl
index 4d3f195dd846811ad9e32f1a6966f5c4ef2372f4..59157a4c3f3005145038162e06f2d1380dffff2e 100644 (file)
@@ -77,7 +77,7 @@ This enumeration contains a set of elements defining the type of the node.
   enum KindOfNode { FactoryNode , DataFlowGraph , ComputingNode ,
                     InLineNode , LoopNode , EndLoopNode ,
                     SwitchNode , EndSwitchNode , GOTONode , DataStreamGraph ,
-                    UnknownNode };
+                    MacroNode ,UnknownNode };
 
 /*!
 This struct contains fields defining the date.
@@ -142,8 +142,8 @@ This enumeration contains a set of elements defining the current state of the no
   interface ELNode ;
   interface SNode ;
   interface ESNode ;
-  interface StreamGraph ;
   interface Graph ;
+  interface StreamGraph ;
 
   typedef sequence<CNode>  ListOfCNodes ;
   typedef sequence<FNode>  ListOfFNodes ;
@@ -153,7 +153,7 @@ This enumeration contains a set of elements defining the current state of the no
   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.
@@ -185,46 +185,6 @@ the user (Suspend, SuspendDone, Kill, etc...).
                       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
-                     } ;
 
 
 
@@ -386,6 +346,11 @@ Allows to update the comments about this node(graph).
 */
     SUPERV::StreamPort GetOutStreamPort( in string aParameterName ) ;
 
+/*!
+ Returns true if a Node (or Graph) has StreamPorts
+*/
+    boolean HasStreamPort() ;
+
 /*!
  Enters a value into an Input %Port
 */
@@ -412,14 +377,35 @@ Allows to update the comments about this node(graph).
 
 /*!
 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.
 */
@@ -571,11 +557,6 @@ Restarts and suspends execution of the graph beginning from a definite 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).
@@ -770,7 +751,7 @@ This interface includes a set of methods used for management of the graphs in %S
 */
 
   ///////////////
-  interface Graph : INode {
+  interface Graph : GNode {
   ///////////////
 
     /*! Creates a Computing Node in a Graph.
@@ -804,6 +785,22 @@ This interface includes a set of methods used for management of the graphs in %S
     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.
     */
@@ -975,6 +972,14 @@ This interface includes a set of methods used for management of the graphs in %S
 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
 */
@@ -1247,6 +1252,10 @@ Returns True if the %Port appears to be an EndSwitch Node connected to several o
 */
     boolean IsDone() ;
 
+/*! deactivate the objref of a Port when its node is destroyed
+*/
+    void Remove() ;
+
   } ;
 
   ////////////////////