SUPERV::FNode_ptr Graph_Impl::FNode( const char * NodeComponentName ,
const char * NodeInterfaceName ,
const SALOME_ModuleCatalog::Service &NodeService ,
- bool isCimpl ) {
+ const SALOME_ModuleCatalog::ImplType ImplType ) {
beginService( "Graph_Impl::FNode" );
SUPERV::FNode_var iobject = SUPERV::FNode::_nil() ;
+ bool isCimpl = true;
+ switch (ImplType)
+ {
+ case SALOME_ModuleCatalog::PY:
+ isCimpl = false;
+ break;
+ case SALOME_ModuleCatalog::SO:
+ case SALOME_ModuleCatalog::EXE:
+ default:
+ ;
+ }
if ( DataFlowEditor()->IsEditing() && !DataFlowEditor()->IsReadOnly() && !IsMacro() ) {
FNode_Impl * myNode = new FNode_Impl( _Orb , _Poa , _ContId ,
instanceName() , interfaceName() ,
SALOME_ModuleCatalog::Service aVoidService = SALOME_ModuleCatalog::Service() ;
char * anEndName ;
if ( strlen( InitName ) ) {
- anEndName = new char( 3 + strlen( InitName ) + 1 ) ;
+ anEndName = new char[ 3 + strlen( InitName ) + 1 ];
strcpy( anEndName , "End" ) ;
strcat( anEndName , InitName ) ;
}
else {
- anEndName = new char( 3 + strlen( "Loop" ) + 1 ) ;
+ anEndName = new char[ 3 + strlen( "Loop" ) + 1 ];
strcpy( anEndName , "EndLoop" ) ;
}
ELNode_Impl * myEndNode = new ELNode_Impl( _Orb , _Poa , _ContId ,
myEndNode->SetObjRef( SUPERV::ESNode::_duplicate( iendobject ) ) ;
myNode->SetCoupled( myEndNode->BaseNode()->Name() ) ;
myEndNode->SetCoupled( myNode->BaseNode()->Name() ) ;
- if ( !Link( myNode->Port( "Default" ) , myEndNode->Port( "Default" ) ) ) {
- iobject = SUPERV::SNode::_nil() ;
- iendobject = SUPERV::ESNode::_nil() ;
- }
+//JR NPAL14793 05.02.2007 : do not add that link
+// if ( !Link( myNode->Port( "Default" ) , myEndNode->Port( "Default" ) ) ) {
+// iobject = SUPERV::SNode::_nil() ;
+// iendobject = SUPERV::ESNode::_nil() ;
+// }
}
}
anEndOfSwitch = SUPERV::ESNode::_duplicate( iendobject ) ;
GraphExecutor::DataFlow * aMacroGraphExecutor ;
CreateExecutor( _Orb , instanceName() , aMacroGraphName , SUPERV::DataStreamGraph ,
dbgfile , &aMacroGraphExecutor );
+ theAutomaton->Executed() ; // Decrement _GraphExecutingNumber for MacroSubGraph
// set GraphMacroLevel for Executor's graph
GraphBase::Graph* aMacroGraphExe = aMacroGraphExecutor->Graph();
if ( RetVal ) {
for ( i = 0 ; i < (int ) aGraphNodes->FNodes.length() ; i++ ) {
SUPERV::FNode_var aNode = (aGraphNodes->FNodes)[ i ] ;
+ SALOME_ModuleCatalog::ImplType implType = SALOME_ModuleCatalog::SO;
+ if (!aNode->IsCimpl()) implType = SALOME_ModuleCatalog::PY;
SUPERV::FNode_ptr myNode = FNode( aNode->GetComponentName() ,
aNode->GetInterfaceName() ,
*(aNode->Service()) ,
- aNode->IsCimpl() ) ; // mkr : PAL11273
+ implType ) ; // mkr : PAL11273
if ( !CORBA::is_nil( myNode ) ) {
myNode->SetName( aNode->Name() ) ;
myNode->SetAuthor( aNode->Author() ) ;
SUPERV::ListOfStreamPorts myStreamPorts = *(aNode->StreamPorts()) ;
for ( j = 0 ; j < (int ) myStreamPorts.length() ; j++ ) {
if ( myStreamPorts[ j ]->IsInput() ) {
- aPort = myNode->InStreamPort( myStreamPorts[ j ]->Name() , StringToDataStreamType( myStreamPorts[ j ]->Type() ) , myStreamPorts[ j ]->Dependency() ) ;
+ aPort = myNode->InStreamPort( myStreamPorts[ j ]->Name(), myStreamPorts[ j ]->Type(), myStreamPorts[ j ]->Dependency() ) ;
}
else {
- aPort = myNode->OutStreamPort( myStreamPorts[ j ]->Name() , StringToDataStreamType( myStreamPorts[ j ]->Type() ) , myStreamPorts[ j ]->Dependency() ) ;
+ aPort = myNode->OutStreamPort( myStreamPorts[ j ]->Name(), myStreamPorts[ j ]->Type(), myStreamPorts[ j ]->Dependency() ) ;
}
}
}
SUPERV::ListOfStreamPorts myStreamPorts = *(aNode->StreamPorts()) ;
for ( j = 0 ; j < (int ) myStreamPorts.length() ; j++ ) {
if ( myStreamPorts[ j ]->IsInput() ) {
- aPort = myNode->InStreamPort( myStreamPorts[ j ]->Name() , StringToDataStreamType( myStreamPorts[ j ]->Type() ) , myStreamPorts[ j ]->Dependency() ) ;
+ aPort = myNode->InStreamPort( myStreamPorts[ j ]->Name(), myStreamPorts[ j ]->Type(), myStreamPorts[ j ]->Dependency() ) ;
}
else {
- aPort = myNode->OutStreamPort( myStreamPorts[ j ]->Name() , StringToDataStreamType( myStreamPorts[ j ]->Type() ) , myStreamPorts[ j ]->Dependency() ) ;
+ aPort = myNode->OutStreamPort( myStreamPorts[ j ]->Name(), myStreamPorts[ j ]->Type(), myStreamPorts[ j ]->Dependency() ) ;
}
}
}
SUPERV::ListOfStreamPorts myStreamPorts = *(aNode->StreamPorts()) ;
for ( j = 0 ; j < (int ) myStreamPorts.length() ; j++ ) {
if ( myStreamPorts[ j ]->IsInput() ) {
- aPort = myNode->InStreamPort( myStreamPorts[ j ]->Name() , StringToDataStreamType( myStreamPorts[ j ]->Type() ) , myStreamPorts[ j ]->Dependency() ) ;
+ aPort = myNode->InStreamPort( myStreamPorts[ j ]->Name(), myStreamPorts[ j ]->Type(), myStreamPorts[ j ]->Dependency() ) ;
}
else {
- aPort = myNode->OutStreamPort( myStreamPorts[ j ]->Name() , StringToDataStreamType( myStreamPorts[ j ]->Type() ) , myStreamPorts[ j ]->Dependency() ) ;
+ aPort = myNode->OutStreamPort( myStreamPorts[ j ]->Name(), myStreamPorts[ j ]->Type(), myStreamPorts[ j ]->Dependency() ) ;
}
}
}
SUPERV::ListOfStreamPorts myStreamLoopPorts = *(myEndOfLoop->StreamPorts()) ;
for ( j = 0 ; j < (int ) myStreamLoopPorts.length() ; j++ ) {
if ( myStreamLoopPorts[ j ]->IsInput() ) {
- aPort = myNode->InStreamPort( myStreamLoopPorts[ j ]->Name() , StringToDataStreamType( myStreamLoopPorts[ j ]->Type() ) , myStreamLoopPorts[ j ]->Dependency() ) ;
+ aPort = myNode->InStreamPort( myStreamLoopPorts[ j ]->Name(), myStreamLoopPorts[ j ]->Type(), myStreamLoopPorts[ j ]->Dependency() ) ;
}
else {
- aPort = myNode->OutStreamPort( myStreamLoopPorts[ j ]->Name() , StringToDataStreamType( myStreamLoopPorts[ j ]->Type() ) , myStreamLoopPorts[ j ]->Dependency() ) ;
+ aPort = myNode->OutStreamPort( myStreamLoopPorts[ j ]->Name(), myStreamLoopPorts[ j ]->Type(), myStreamLoopPorts[ j ]->Dependency() ) ;
}
}
}
SUPERV::ListOfStreamPorts myStreamPorts = *(aNode->StreamPorts()) ;
for ( j = 0 ; j < (int ) myStreamPorts.length() ; j++ ) {
if ( myStreamPorts[ j ]->IsInput() ) {
- aPort = myNode->InStreamPort( myStreamPorts[ j ]->Name() , StringToDataStreamType( myStreamPorts[ j ]->Type() ) , myStreamPorts[ j ]->Dependency() ) ;
+ aPort = myNode->InStreamPort( myStreamPorts[ j ]->Name(), myStreamPorts[ j ]->Type(), myStreamPorts[ j ]->Dependency() ) ;
}
else {
- aPort = myNode->OutStreamPort( myStreamPorts[ j ]->Name() , StringToDataStreamType( myStreamPorts[ j ]->Type() ) , myStreamPorts[ j ]->Dependency() ) ;
+ aPort = myNode->OutStreamPort( myStreamPorts[ j ]->Name(), myStreamPorts[ j ]->Type(), myStreamPorts[ j ]->Dependency() ) ;
}
}
}
SUPERV::ListOfStreamPorts myStreamSwitchPorts = *(myEndOfSwitch->StreamPorts()) ;
for ( j = 0 ; j < (int ) myStreamSwitchPorts.length() ; j++ ) {
if ( myStreamSwitchPorts[ j ]->IsInput() ) {
- aPort = anEndOfSwitch->InStreamPort( myStreamSwitchPorts[ j ]->Name() , StringToDataStreamType( myStreamSwitchPorts[ j ]->Type() ) , myStreamSwitchPorts[ j ]->Dependency() ) ; // mkr : IPAL11394 (add port to !EndSwitch! node)
+ aPort = anEndOfSwitch->InStreamPort( myStreamSwitchPorts[ j ]->Name(), myStreamSwitchPorts[ j ]->Type(), myStreamSwitchPorts[ j ]->Dependency() ) ; // mkr : IPAL11394 (add port to !EndSwitch! node)
}
else {
- aPort = anEndOfSwitch->OutStreamPort( myStreamSwitchPorts[ j ]->Name() , StringToDataStreamType( myStreamSwitchPorts[ j ]->Type() ) , myStreamSwitchPorts[ j ]->Dependency() ) ; // mkr : IPAL11394 (add port to !EndSwitch! node)
+ aPort = anEndOfSwitch->OutStreamPort( myStreamSwitchPorts[ j ]->Name(), myStreamSwitchPorts[ j ]->Type(), myStreamSwitchPorts[ j ]->Dependency() ) ; // mkr : IPAL11394 (add port to !EndSwitch! node)
}
}
}
}
}
+/**
+ * Returns the default name of container for C component
+ */
+char* Graph_Impl::DefaultCContainerName() {
+ return ( CORBA::string_dup( FACTORYSERVER ) );
+}
+
+/**
+ * Returns the default name of container for Python component
+ */
+char* Graph_Impl::DefaultPythonContainerName() {
+ return ( CORBA::string_dup( FACTORYSERVERPY ) );
+}
+
+/*!
+ * Returns the last container name associated with theComponentName component
+ */
+char* Graph_Impl::ContainerNameForComponent( const char * theComponentName ) {
+ const char* aContainer = DataFlowEditor()->Graph()->RetrieveFromMapOfComponentNameContainer(theComponentName);
+ if ( aContainer )
+ return my_strdup(aContainer);
+ else
+ return "";
+}