Salome HOME
updated copyright message
[modules/kernel.git] / src / Communication / SALOME_Comm_i.cxx
index 75af1c528e48d7e80625e0ca37d11cd662980fcb..74b41b0174a0fa9dbb261793bb3cb7187ef73009 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2020  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023  CEA, EDF, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 #endif
 #include "omniORB4/poa.h"
 #include "omnithread.h"
-#include "Utils_SINGLETON.hxx"
-#include "Utils_ORB_INIT.hxx"
+#include "OpUtil.hxx"
+#include "Basics_MpiUtils.hxx"
 #include "utilities.h"
 
 #include "SenderFactory.hxx"
 
 #ifndef WIN32
 CORBA::ORB_var &getGlobalORB(){
-  ORB_INIT &init = *SINGLETON_<ORB_INIT>::Instance();
-  CORBA::ORB_var &orb = init(0,0);
+  CORBA::ORB_var orb = KERNEL::GetRefToORB();
   return orb;
 }
 #endif
@@ -145,7 +144,7 @@ SALOME_SenderInt_i *SALOME_SenderInt_i::find(SALOME::SenderInt_ptr pCorba){
   return dynamic_cast<SALOME_SenderInt_i *>(ret);
 }
 
-SALOME_CorbaDoubleNCSender_i::SALOME_CorbaDoubleNCSender_i(const double *tabToSend,long lgrTabToSend,bool ownTabToSend):SALOME_SenderDouble_i(tabToSend,lgrTabToSend,ownTabToSend),SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(double),ownTabToSend){
+SALOME_CorbaDoubleNCSender_i::SALOME_CorbaDoubleNCSender_i(const double *tabToSend,long lgrTabToSend,bool ownTabToSend):SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(double),ownTabToSend),SALOME_SenderDouble_i(tabToSend,lgrTabToSend,ownTabToSend){
 }
 
 SALOME_CorbaDoubleNCSender_i::~SALOME_CorbaDoubleNCSender_i(){
@@ -166,7 +165,7 @@ SALOME::vectorOfDouble* SALOME_CorbaDoubleNCSender_i::send(){
   return c1._retn();
 }
 
-SALOME_CorbaDoubleCSender_i::SALOME_CorbaDoubleCSender_i(const double *tabToSend,long lgrTabToSend,bool ownTabToSend):SALOME_SenderDouble_i(tabToSend,lgrTabToSend,ownTabToSend),SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(double),ownTabToSend){
+SALOME_CorbaDoubleCSender_i::SALOME_CorbaDoubleCSender_i(const double *tabToSend,long lgrTabToSend,bool ownTabToSend):SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(double),ownTabToSend),SALOME_SenderDouble_i(tabToSend,lgrTabToSend,ownTabToSend){
 }
 
 SALOME_CorbaDoubleCSender_i::~SALOME_CorbaDoubleCSender_i(){
@@ -180,14 +179,14 @@ CORBA::ULong SALOME_CorbaDoubleCSender_i::getSize(){
 SALOME::vectorOfDouble* SALOME_CorbaDoubleCSender_i::sendPart(CORBA::ULong offset, CORBA::ULong length){
   SALOME::vectorOfDouble_var c1 = new SALOME::vectorOfDouble;
   c1->length(length);
-  for (long i=0; i<length; i++)
+  for (unsigned long i=0; i<length; i++)
     c1[i] = ((double *)_tabToSend)[i+offset];
   return c1._retn();
 }
 
 ////////////////////////
 
-SALOME_CorbaLongNCSender_i::SALOME_CorbaLongNCSender_i(const int *tabToSend,long lgrTabToSend,bool ownTabToSend):SALOME_SenderInt_i(tabToSend,lgrTabToSend,ownTabToSend),SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(int),ownTabToSend){
+SALOME_CorbaLongNCSender_i::SALOME_CorbaLongNCSender_i(const int *tabToSend,long lgrTabToSend,bool ownTabToSend):SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(int),ownTabToSend),SALOME_SenderInt_i(tabToSend,lgrTabToSend,ownTabToSend){
 }
 
 SALOME_CorbaLongNCSender_i::~SALOME_CorbaLongNCSender_i(){
@@ -208,7 +207,7 @@ SALOME::vectorOfLong* SALOME_CorbaLongNCSender_i::send(){
   return c1._retn();
 }
 
-SALOME_CorbaLongCSender_i::SALOME_CorbaLongCSender_i(const int *tabToSend,long lgrTabToSend,bool ownTabToSend):SALOME_SenderInt_i(tabToSend,lgrTabToSend,ownTabToSend),SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(int),ownTabToSend){
+SALOME_CorbaLongCSender_i::SALOME_CorbaLongCSender_i(const int *tabToSend,long lgrTabToSend,bool ownTabToSend):SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(int),ownTabToSend),SALOME_SenderInt_i(tabToSend,lgrTabToSend,ownTabToSend){
 }
 
 SALOME_CorbaLongCSender_i::~SALOME_CorbaLongCSender_i(){
@@ -222,7 +221,7 @@ CORBA::ULong SALOME_CorbaLongCSender_i::getSize(){
 SALOME::vectorOfLong* SALOME_CorbaLongCSender_i::sendPart(CORBA::ULong offset, CORBA::ULong length){
   SALOME::vectorOfLong_var c1 = new SALOME::vectorOfLong;
   c1->length(length);
-  for (long i=0; i<length; i++)
+  for (unsigned long i=0; i<length; i++)
     c1[i] = ((long *)_tabToSend)[i+offset];
   return c1._retn();
 }
@@ -254,25 +253,17 @@ SALOME::MPISender::param* SALOME_MPISender_i::getParam()
   p->tag2 =_tag2;
   _tag2Inst=_tag2;
   std::string service("toto_");
-  sprintf(stag,"%d_",_tag1);
+  sprintf(stag,"%ld_",_tag1);
   service += stag;
   sprintf(stag,"%d_",p->tag2);
   service += stag;
   p->service = CORBA::string_dup(service.c_str());
   MPI_Open_port(MPI_INFO_NULL, _portName);
-#if OMPI_MAJOR_VERSION >= 4
-  MPI_Comm_set_errhandler(MPI_COMM_WORLD, MPI_ERRORS_RETURN);
-#else
-  MPI_Errhandler_set(MPI_COMM_WORLD, MPI_ERRORS_RETURN);
-#endif
+  MPI_ERROR_HANDLER(MPI_ERRORS_RETURN);
   while ( i != TIMEOUT  && MPI_Publish_name((char*)service.c_str(),MPI_INFO_NULL,_portName) != MPI_SUCCESS) {
     i++;
   }
-#if OMPI_MAJOR_VERSION >= 4
-  MPI_Comm_set_errhandler(MPI_COMM_WORLD, MPI_ERRORS_ARE_FATAL);
-#else 
-  MPI_Errhandler_set(MPI_COMM_WORLD, MPI_ERRORS_ARE_FATAL);
-#endif
+  MPI_ERROR_HANDLER(MPI_ERRORS_ARE_FATAL);
   if ( i == TIMEOUT  ) { 
     MPI_Close_port(_portName);
     MPI_Finalize();
@@ -336,14 +327,14 @@ void SALOME_MPISender_i::close(const SALOME::MPISender::param& p)
 }
 
 SALOME_MPISenderDouble_i::SALOME_MPISenderDouble_i(const double *tabToSend,long lgrTabToSend,bool ownTabToSend)
-  :SALOME_SenderDouble_i(tabToSend,lgrTabToSend,ownTabToSend),SALOME_MPISender_i(tabToSend,lgrTabToSend,sizeof(double),ownTabToSend)
-  ,SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(double),ownTabToSend)
+  :SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(double),ownTabToSend)
+  ,SALOME_SenderDouble_i(tabToSend,lgrTabToSend,ownTabToSend),SALOME_MPISender_i(tabToSend,lgrTabToSend,sizeof(double),ownTabToSend)
 {
 }
 
 SALOME_MPISenderInt_i::SALOME_MPISenderInt_i(const int *tabToSend,long lgrTabToSend,bool ownTabToSend)
-  :SALOME_SenderInt_i(tabToSend,lgrTabToSend,ownTabToSend),SALOME_MPISender_i(tabToSend,lgrTabToSend,sizeof(int),ownTabToSend)
-  ,SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(int),ownTabToSend)
+  :SALOME_Sender_i(tabToSend,lgrTabToSend,sizeof(int),ownTabToSend)
+  ,SALOME_SenderInt_i(tabToSend,lgrTabToSend,ownTabToSend),SALOME_MPISender_i(tabToSend,lgrTabToSend,sizeof(int),ownTabToSend)
 {
 }
 
@@ -492,7 +483,7 @@ void* SALOME_SocketSender_i::myThread(void *args)
   return args;
 }
 
-void SALOME_SocketSender_i::initCom() throw(SALOME::SALOME_Exception)
+void SALOME_SocketSender_i::initCom()
 {
   struct sockaddr_in serv_addr;
   socklen_t n;
@@ -537,7 +528,7 @@ void SALOME_SocketSender_i::initCom() throw(SALOME::SALOME_Exception)
   SCRUTE(_port);
 }
 
-void SALOME_SocketSender_i::acceptCom() throw(SALOME::SALOME_Exception)
+void SALOME_SocketSender_i::acceptCom()
 {
   socklen_t sin_size;
   struct sockaddr_in client_addr;