]> SALOME platform Git repositories - modules/superv.git/blob - src/GraphBase/DataFlowBase_EndOfSwitchNode.hxx
Salome HOME
93e2599d10b372258434fc874bcf7fc72656f6e7
[modules/superv.git] / src / GraphBase / DataFlowBase_EndOfSwitchNode.hxx
1 //  SUPERV GraphBase : contains fondamental classes for Services, Input Ports, Output Ports Links and Nodes.
2 //
3 //  Copyright (C) 2003  CEA/DEN, EDF R&D
4 //
5 //
6 //
7 //  File   : DataFlowBase_EndOfSwitchNode.hxx
8 //  Author : Jean Rahuel, CEA
9 //  Module : SUPERV
10 //  $Header:
11
12 #ifndef _DATAFLOWBASE_ENDOFSWITCHNODE_HXX
13 #define _DATAFLOWBASE_ENDOFSWITCHNODE_HXX
14
15 #include "DataFlowBase_GOTONode.hxx"
16
17 namespace GraphBase {
18
19   class EndOfSwitchNode : public GOTONode {
20
21     private:
22
23       int  _EndSwitchInPortLinkedNumber ; // For Check from Branches to EndOfSwitch links
24       bool _SwitchWithGOTO ;
25     
26     public:
27
28       EndOfSwitchNode() ;
29       EndOfSwitchNode( CORBA::ORB_ptr ORB ,
30                   SALOME_NamingService* ptrNamingService ,
31                   const char * FuncName ,
32                   const SUPERV::ListOfStrings & aPythonFunction ,
33                   const char *NodeName ,
34                   const SUPERV::KindOfNode akind ,
35                   const SUPERV::SDate NodeFirstCreation ,
36                   const SUPERV::SDate NodeLastModification ,
37                   const char * NodeEditorRelease ,
38                   const char * NodeAuthor ,
39                   const char * NodeComment ,
40                   const bool   GeneratedName ,
41                   const long   X ,
42                   const long   Y ,
43                   int * Graph_prof_debug = NULL ,
44                   ofstream * Graph_fdebug = NULL ) ;
45       virtual ~EndOfSwitchNode() ;
46
47       void InitEndSwitchInPortLinked() { // without StreamInPorts and Default
48            _EndSwitchInPortLinkedNumber = GetNodeInPortsSize() - DataStreamInPortsNumber() - 1 ;
49            _SwitchWithGOTO = false ;
50            int i ;
51            for ( i = 0 ; i < GetNodeInPortsSize()-1 ; i++ ) {
52              GetChangeNodeInPort( i )->BranchOfSwitchLinked( false ) ;
53            } } ;
54       bool DecrEndSwitchInPortLinked( GraphBase::InPort * anInPort ) ;
55       void SetSwitchWithGOTO() {
56            _SwitchWithGOTO = true ; } ;
57       bool SwitchWithGOTO() {
58            return _SwitchWithGOTO ; } ;
59       bool CheckEndSwitchInPortsLinked() ;
60
61   };
62   
63 };
64
65 #endif