Salome HOME
projects
/
modules
/
kernel.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c45cc05
)
MPIContyainer_i.cxx: Fix some compilation errors.
author
Pascal Obry
<pascal.obry@edf.fr>
Tue, 5 Sep 2023 13:33:46 +0000
(15:33 +0200)
committer
Nabil Ghodbane
<nabil.ghodbane@cea.fr>
Mon, 2 Oct 2023 11:03:58 +0000
(13:03 +0200)
src/MPIContainer/MPIContainer_i.cxx
patch
|
blob
|
history
diff --git
a/src/MPIContainer/MPIContainer_i.cxx
b/src/MPIContainer/MPIContainer_i.cxx
index 70c2af11e19011553ca4227b4c89a24468a0289e..5206b0a8cc777c2a67280f89d78dc02880601755 100644
(file)
--- a/
src/MPIContainer/MPIContainer_i.cxx
+++ b/
src/MPIContainer/MPIContainer_i.cxx
@@
-29,6
+29,7
@@
#include "SALOME_NamingService.hxx"
#include "Utils_SINGLETON.hxx"
#include "OpUtil.hxx"
#include "SALOME_NamingService.hxx"
#include "Utils_SINGLETON.hxx"
#include "OpUtil.hxx"
+#include "PythonCppUtils.hxx"
#include "utilities.h"
#include <time.h>
#include <sys/time.h>
#include "utilities.h"
#include <time.h>
#include <sys/time.h>
@@
-42,10
+43,10
@@
#include "Container_init_python.hxx"
// L'appel au registry SALOME ne se fait que pour le process 0
#include "Container_init_python.hxx"
// L'appel au registry SALOME ne se fait que pour le process 0
-Engines_MPIContainer_i::Engines_MPIContainer_i(CORBA::ORB_ptr orb,
+Engines_MPIContainer_i::Engines_MPIContainer_i(CORBA::ORB_ptr orb,
PortableServer::POA_ptr poa,
char * containerName,
PortableServer::POA_ptr poa,
char * containerName,
- int argc, char *argv[])
+ int argc, char *argv[])
: Engines_Container_i(orb,poa,containerName,argc,argv,nullptr,false)
{
: Engines_Container_i(orb,poa,containerName,argc,argv,nullptr,false)
{
@@
-71,7
+72,7
@@
Engines_MPIContainer_i::Engines_MPIContainer_i(CORBA::ORB_ptr orb,
BCastIOR(_orb,pobj,true);
}
BCastIOR(_orb,pobj,true);
}
-Engines_MPIContainer_i::Engines_MPIContainer_i()
+Engines_MPIContainer_i::Engines_MPIContainer_i()
: Engines_Container_i()
{
}
: Engines_Container_i()
{
}
@@
-152,8
+153,8
@@
bool Engines_MPIContainer_i::Lload_component_Library(const char* componentName)
#else
std::string impl_name = std::string ("lib") + aCompName + std::string("Engine.so");
#endif
#else
std::string impl_name = std::string ("lib") + aCompName + std::string("Engine.so");
#endif
-
- _numInstanceMutex.lock(); // lock to be alone
+
+ _numInstanceMutex.lock(); // lock to be alone
// (see decInstanceCnt, finalize_removal))
if (_toRemove_map[impl_name]) _toRemove_map.erase(impl_name);
if (_library_map[impl_name])
// (see decInstanceCnt, finalize_removal))
if (_toRemove_map[impl_name]) _toRemove_map.erase(impl_name);
if (_library_map[impl_name])
@@
-162,7
+163,7
@@
bool Engines_MPIContainer_i::Lload_component_Library(const char* componentName)
_numInstanceMutex.unlock();
return true;
}
_numInstanceMutex.unlock();
return true;
}
-
+
void* handle;
handle = dlopen( impl_name.c_str() , RTLD_LAZY | RTLD_GLOBAL ) ;
if ( handle )
void* handle;
handle = dlopen( impl_name.c_str() , RTLD_LAZY | RTLD_GLOBAL ) ;
if ( handle )
@@
-193,18
+194,20
@@
bool Engines_MPIContainer_i::Lload_component_Library(const char* componentName)
}
else
{
}
else
{
+ PyObject *pyCont = nullptr;
+ std::string ret;
{
AutoGIL agil;
PyObject *mainmod = PyImport_AddModule((char *)"__main__");
PyObject *globals = PyModule_GetDict(mainmod);
{
AutoGIL agil;
PyObject *mainmod = PyImport_AddModule((char *)"__main__");
PyObject *globals = PyModule_GetDict(mainmod);
-
PyObject *
pyCont = PyDict_GetItemString(globals, "pyCont");
+ pyCont = PyDict_GetItemString(globals, "pyCont");
PyObject *result = PyObject_CallMethod(pyCont,
(char*)"import_component",
(char*)"s",componentName);
PyObject *result = PyObject_CallMethod(pyCont,
(char*)"import_component",
(char*)"s",componentName);
-
std::string
ret= PyUnicode_AsUTF8(result);
+ ret= PyUnicode_AsUTF8(result);
SCRUTE(ret);
}
SCRUTE(ret);
}
-
+
if (ret=="") // import possible: Python component
{
_library_map[aCompName] = (void *)pyCont; // any non O value OK
if (ret=="") // import possible: Python component
{
_library_map[aCompName] = (void *)pyCont; // any non O value OK
@@
-269,6
+272,7
@@
Engines_MPIContainer_i::Lcreate_component_instance( const char* genericRegisterN
std::string component_registerName =
_containerName + "/" + instanceName;
std::string component_registerName =
_containerName + "/" + instanceName;
+ std::string iors;
{
AutoGIL agil;
PyObject *mainmod = PyImport_AddModule((char*)"__main__");
{
AutoGIL agil;
PyObject *mainmod = PyImport_AddModule((char*)"__main__");
@@
-282,10
+286,10
@@
Engines_MPIContainer_i::Lcreate_component_instance( const char* genericRegisterN
const char *ior;
const char *error;
PyArg_ParseTuple(result,"ss", &ior, &error);
const char *ior;
const char *error;
PyArg_ParseTuple(result,"ss", &ior, &error);
-
std::string
iors = ior;
+ iors = ior;
SCRUTE(iors);
}
SCRUTE(iors);
}
-
+
CORBA::Object_var obj = _orb->string_to_object(iors.c_str());
iobject = Engines::EngineComponent::_narrow( obj ) ;
pobj = Engines::MPIObject::_narrow(obj) ;
CORBA::Object_var obj = _orb->string_to_object(iors.c_str());
iobject = Engines::EngineComponent::_narrow( obj ) ;
pobj = Engines::MPIObject::_narrow(obj) ;
@@
-296,7
+300,7
@@
Engines_MPIContainer_i::Lcreate_component_instance( const char* genericRegisterN
return iobject._retn();
}
return iobject._retn();
}
-
+
//--- try C++
#ifdef __APPLE__
//--- try C++
#ifdef __APPLE__
@@
-328,9
+332,9
@@
Engines_MPIContainer_i::createMPIInstance(std::string genericRegisterName,
typedef PortableServer::ObjectId * (*MPIFACTORY_FUNCTION)
(CORBA::ORB_ptr,
typedef PortableServer::ObjectId * (*MPIFACTORY_FUNCTION)
(CORBA::ORB_ptr,
- PortableServer::POA_ptr,
- PortableServer::ObjectId *,
- const char *,
+ PortableServer::POA_ptr,
+ PortableServer::ObjectId *,
+ const char *,
const char *) ;
dlerror();
const char *) ;
dlerror();
@@
-464,10
+468,10
@@
Engines::EngineComponent_ptr Engines_MPIContainer_i::Lload_impl(
const char *,
const char *) =
(PortableServer::ObjectId * (*) (CORBA::ORB_ptr,
const char *,
const char *) =
(PortableServer::ObjectId * (*) (CORBA::ORB_ptr,
- PortableServer::POA_ptr,
- PortableServer::ObjectId *,
- const char *,
- const char *))
+ PortableServer::POA_ptr,
+ PortableServer::ObjectId *,
+ const char *,
+ const char *))
dlsym(handle, factory_name.c_str());
char *error ;
dlsym(handle, factory_name.c_str());
char *error ;