Salome HOME
Compilation under Windows: add missing header
[modules/kernel.git] / src / ParallelContainer / SALOME_ParallelContainerProxy_i.cxx
index 19e5ab33db483a69c72065e4c134b7e9a6b96e72..23be1c6c040d65bd15f1f6bd06aa6a904bb74375 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2021  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
@@ -69,7 +69,7 @@ Container_proxy_impl_final:: ~Container_proxy_impl_final() {
   if (_NS)
     delete _NS;
 
-  // _fab_thread not deleted beacause fab_thread is managed
+  // _fab_thread not deleted because fab_thread is managed
   // by paco_fabrique_manager
 }
 
@@ -158,13 +158,17 @@ Container_proxy_impl_final::load_component_Library(const char* componentName, CO
 
     MESSAGE("Try to load C++ component");
 #ifndef WIN32
+#ifdef __APPLE__
+    std::string impl_name = string ("lib") + aCompName + string("Engine.dylib");
+#else
     std::string impl_name = string ("lib") + aCompName + string("Engine.so");
+#endif
 #else
     std::string impl_name = aCompName + string("Engine.dll");
 #endif
     void* handle;
 #ifndef WIN32
-    handle = dlopen( impl_name.c_str() , RTLD_LAZY ) ;
+    handle = dlopen( impl_name.c_str() , RTLD_LAZY | RTLD_GLOBAL ) ;
 #else
     handle = dlopen( impl_name.c_str() , 0 ) ;
 #endif
@@ -212,7 +216,7 @@ Container_proxy_impl_final::load_component_Library(const char* componentName, CO
       PyObject *result = PyObject_CallMethod(pyCont,
                                              (char*)"import_component",
                                              (char*)"s",componentName);
-      std::string ret_p= PyString_AsString(result);
+      std::string ret_p= PyUnicode_AsUTF8(result);
       Py_XDECREF(result);
       Py_RELEASE_NEW_THREAD;
 
@@ -313,7 +317,11 @@ Container_proxy_impl_final::create_component_instance_env(const char* componentN
 
   // On commence par créer le proxy
 #ifndef WIN32
+#ifdef __APPLE__
+  std::string impl_name = string ("lib") + aCompName + string("Engine.dylib");
+#else
   std::string impl_name = string ("lib") + aCompName + string("Engine.so");
+#endif
 #else
   std::string impl_name = aCompName + string("Engine.dll");
 #endif
@@ -342,7 +350,7 @@ Container_proxy_impl_final::create_component_instance_env(const char* componentN
     string instanceName = aCompName + "_inst_" + aNumI ;
     string component_registerName = _containerName + "/" + instanceName;
 
-    // --- Instanciate required CORBA object
+    // --- Instantiate required CORBA object
     Container_proxy_impl_final::proxy_object * proxy = new Container_proxy_impl_final::proxy_object();
     
     proxy->proxy_id = (component_proxy_factory) (_orb, 
@@ -378,7 +386,7 @@ Container_proxy_impl_final::create_component_instance_env(const char* componentN
   }
   catch (...)
   {
-    INFOS( "Exception catched in Proxy creation" );
+    INFOS( "Exception caught in Proxy creation" );
     return Engines::EngineComponent::_nil();
   }