-// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Module : SMESH
#include "SMESH_Client.hxx"
-#include "SMESH_Mesh.hxx"
+
+#include "SMESHDS_Mesh.hxx"
#include "SMESHDS_Script.hxx"
+#include "SMESH_Mesh.hxx"
+#include "SMESH_Component_Generator.hxx"
#include "SALOME_NamingService.hxx"
#include "SALOME_LifeCycleCORBA.hxx"
//=======================================================================
//function : ChangePolyhedronNodes
//=======================================================================
- inline void ChangePolyhedronNodes (SMDS_Mesh* theMesh,
+ inline void ChangePolyhedronNodes (SMDS_Mesh* theMesh,
SMESH::log_array_var& theSeq,
- CORBA::Long theId)
+ CORBA::Long theId)
{
const SMESH::long_array& anIndexes = theSeq[theId].indexes;
CORBA::Long iind = 0, aNbElems = theSeq[theId].number;
{
static SMESH::SMESH_Gen_var aMeshGen;
- if(CORBA::is_nil(aMeshGen.in())){
+ if(CORBA::is_nil(aMeshGen.in()))
+ {
+ Engines::EngineComponent_var isCompoInSSLMode = GetSMESHInstanceHasThis();
+ if( CORBA::is_nil(isCompoInSSLMode) )
+ {
#ifdef WIN32
- long aClientPID = (long)_getpid();
+ long aClientPID = (long)_getpid();
#else
- long aClientPID = (long)getpid();
+ long aClientPID = (long)getpid();
#endif
- SALOME_NamingService aNamingService(theORB);
- SALOME_LifeCycleCORBA aLifeCycleCORBA(&aNamingService);
- Engines::EngineComponent_var aComponent = aLifeCycleCORBA.FindOrLoad_Component("FactoryServer","SMESH");
- aMeshGen = SMESH::SMESH_Gen::_narrow(aComponent);
+ SALOME_NamingService aNamingService(theORB);
+ SALOME_LifeCycleCORBA aLifeCycleCORBA(&aNamingService);
+ Engines::EngineComponent_var aComponent = aLifeCycleCORBA.FindOrLoad_Component("FactoryServer","SMESH");
+ aMeshGen = SMESH::SMESH_Gen::_narrow(aComponent);
- std::string aClientHostName = Kernel_Utils::GetHostname();
- Engines::Container_var aServerContainer = aMeshGen->GetContainerRef();
- CORBA::String_var aServerHostName = aServerContainer->getHostName();
- CORBA::Long aServerPID = aServerContainer->getPID();
- aMeshGen->SetEmbeddedMode((aClientPID == aServerPID) && (aClientHostName == aServerHostName.in()));
+ std::string aClientHostName = Kernel_Utils::GetHostname();
+ Engines::Container_var aServerContainer = aMeshGen->GetContainerRef();
+ CORBA::String_var aServerHostName = aServerContainer->getHostName();
+ CORBA::Long aServerPID = aServerContainer->getPID();
+ aMeshGen->SetEmbeddedMode((aClientPID == aServerPID) && (aClientHostName == aServerHostName.in()));
+ }
+ else
+ {
+ aMeshGen = SMESH::SMESH_Gen::_narrow(isCompoInSSLMode);
+ }
+
}
theIsEmbeddedMode = aMeshGen->IsEmbeddedMode();
-
return aMeshGen;
}
mySMESHDSMesh(NULL),
mySMDSMesh(NULL)
{
- MESSAGE("SMESH_Client::SMESH_Client");
+ if ( MYDEBUG ) MESSAGE("SMESH_Client::SMESH_Client");
myMeshServer->Register();
CORBA::Boolean anIsEmbeddedMode;
GetSMESHGen(theORB,anIsEmbeddedMode);
if(anIsEmbeddedMode){
- if ( MYDEBUG )
- MESSAGE("Info: The same process, update mesh by pointer ");
+ if ( MYDEBUG ) MESSAGE("Info: The same process, update mesh by pointer ");
// just set client mesh pointer to server mesh pointer
//SMESH_Mesh* aMesh = reinterpret_cast<SMESH_Mesh*>(theMesh->GetMeshPtr());
CORBA::LongLong pointeur = theMesh->GetMeshPtr();
- if( MYDEBUG )
- MESSAGE("SMESH_Client::SMESH_Client pointeur "<<pointeur);
+ if( MYDEBUG ) MESSAGE("SMESH_Client::SMESH_Client pointeur "<<pointeur);
SMESH_Mesh* aMesh = reinterpret_cast<SMESH_Mesh*> (pointeur);
- if ( MYDEBUG )
- MESSAGE("SMESH_Client::SMESH_Client aMesh "<<aMesh);
+ if ( MYDEBUG ) MESSAGE("SMESH_Client::SMESH_Client aMesh "<<aMesh);
//if(aMesh->GetMeshDS()->IsEmbeddedMode()){
if(anIsEmbeddedMode){
mySMESHDSMesh = aMesh->GetMeshDS();
ChangePolyhedronNodes(mySMDSMesh, aSeq, anId);
break;
case SMESH::RENUMBER:
- for(CORBA::Long i=0; anElemId < aNbElems; anElemId++, i+=3)
- {
- mySMDSMesh->Renumber( anIndexes[i], anIndexes[i+1], anIndexes[i+2] );
- }
+ // for(CORBA::Long i=0; anElemId < aNbElems; anElemId++, i+=3)
+ // {
+ // mySMDSMesh->Renumber( anIndexes[i], anIndexes[i+1], anIndexes[i+2] );
+ // }
break;
default:;