X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FContainer%2FContainer_i.cxx;h=aee98c06c9f88c40f5455002f82623f8e8141d12;hb=b397830a2104a47d47a190819eca35a269b32b8f;hp=0ad306bb03a88026596d3a4e4ad0a2c9f86993bb;hpb=74ae0daa1c23f96412c5c6b00cbae7dc2c253db1;p=modules%2Fkernel.git diff --git a/src/Container/Container_i.cxx b/src/Container/Container_i.cxx index 0ad306bb0..aee98c06c 100644 --- a/src/Container/Container_i.cxx +++ b/src/Container/Container_i.cxx @@ -145,14 +145,15 @@ Abstract_Engines_Container_i::Abstract_Engines_Container_i () : */ //============================================================================= -Abstract_Engines_Container_i::Abstract_Engines_Container_i (CORBA::ORB_ptr orb, +Abstract_Engines_Container_i::Abstract_Engines_Container_i (const std::string& pyContainerClsName, + CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, char *containerName , int argc , char* argv[], SALOME_NamingService_Container_Abstract *ns, bool isServantAloneInProcess ) : - _NS(nullptr),_id(0),_numInstance(0),_isServantAloneInProcess(isServantAloneInProcess) + _NS(nullptr),_py_container_name(pyContainerClsName),_id(0),_numInstance(0),_isServantAloneInProcess(isServantAloneInProcess) { _pid = (long)getpid(); @@ -195,7 +196,7 @@ Abstract_Engines_Container_i::Abstract_Engines_Container_i (CORBA::ORB_ptr orb, CORBA::String_var sior = _orb->object_to_string(pCont); std::ostringstream myCommand; - myCommand << "pyCont = SALOME_Container.SALOME_Container_i('" << _containerName << "','" << sior << "'," << DFT_TIME_INTERVAL_BTW_MEASURE << ")\n"; + myCommand << "pyCont = SALOME_Container." << this->getPyContainerClassName() << "('" << _containerName << "','" << sior << "'," << DFT_TIME_INTERVAL_BTW_MEASURE << ")\n"; INFO_MESSAGE("Python command executed : " << myCommand.str()); //[RNV]: Comment the PyEval_AcquireLock() and PyEval_ReleaseLock() because this @@ -1168,6 +1169,46 @@ Engines::FieldsDict *Abstract_Engines_Container_i::get_os_environment() return ret.release(); } +Engines::vectorOfString_var FromVecStringCppToCORBA( const std::vector& group) +{ + Engines::vectorOfString_var ret( new Engines::vectorOfString ); + auto sz( group.size() ); + ret->length( sz ); + for(auto i = 0 ; i < sz ; ++i) + { + ret[i] = CORBA::string_dup( group[i].c_str() ); + } + return ret; +} + +std::vector FromCORBAVecStringToCpp(const Engines::vectorOfString& groupOfLogFileNames) +{ + auto len = groupOfLogFileNames.length(); + std::vector ret( len ); + for( auto i = 0 ; i < len ; ++i ) + { + ret[i] = groupOfLogFileNames[i]; + } + return ret; +} + +void Abstract_Engines_Container_i::addLogFileNameGroup(const Engines::vectorOfString& groupOfLogFileNames) +{ + this->_groups_of_log_files.push_back( FromCORBAVecStringToCpp(groupOfLogFileNames) ); +} + +Engines::vectorOfVectorOfString *Abstract_Engines_Container_i::getAllLogFileNameGroups() +{ + std::unique_ptr ret( new Engines::vectorOfVectorOfString ); + auto nbOfGrps = this->_groups_of_log_files.size(); + ret->length( nbOfGrps ); + for(auto i = 0 ; i < nbOfGrps ; ++i) + { + (*ret)[i] = FromVecStringCppToCORBA( _groups_of_log_files[i] ); + } + return ret.release(); +} + void Abstract_Engines_Container_i::execute_python_code(const char *code) { AutoGIL gstate; @@ -2404,7 +2445,7 @@ static Engines_Container_SSL_i *_container_singleton_ssl = nullptr; static Engines::Container_var _container_ref_singleton_ssl; -Engines_Container_SSL_i *KERNEL::getContainerSA() +Abstract_Engines_Container_SSL_i *KERNEL::getContainerSA() { if(!_container_singleton_ssl) {