-// Copyright (C) 2007-2022 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
}
}
+void SALOME_ContainerManager::SetOverrideEnvForContainers(const Engines::KeyValDict& env)
+{
+ this->_override_env.clear();
+ auto sz = env.length();
+ for(auto i = 0 ; i < sz ; ++i)
+ _override_env.emplace_back(env[i].key.in(), env[i].val.in());
+}
+
+Engines::KeyValDict *SALOME_ContainerManager::GetOverrideEnvForContainers()
+{
+ std::unique_ptr<Engines::KeyValDict> ret( new Engines::KeyValDict );
+ auto sz = _override_env.size();
+ ret->length(sz);
+ for(auto i = 0 ; i < sz ; ++i)
+ {
+ (*ret)[i].key = CORBA::string_dup( _override_env[i].first.c_str() );
+ (*ret)[i].val = CORBA::string_dup( _override_env[i].second.c_str() );
+ }
+ return ret.release();
+}
+
//=============================================================================
//! Give a suitable Container given constraints
/*! CORBA Method:
if (!CORBA::is_nil(cont))
{
INFOS("[GiveContainer] container " << containerNameInNS << " launched");
+ std::ostringstream envInfo;
+ std::for_each( _override_env.begin(), _override_env.end(), [&envInfo](const std::pair<std::string,std::string>& p) { envInfo << p.first << " = " << p.second << std::endl; } );
+ INFOS("[GiveContainer] container " << containerNameInNS << " override " << envInfo.str());
+ Engines::FieldsDict envCorba;
+ {
+ auto sz = _override_env.size();
+ envCorba.length(sz);
+ for(auto i = 0 ; i < sz ; ++i)
+ {
+ envCorba[i].key = CORBA::string_dup( _override_env[i].first.c_str() );
+ envCorba[i].value <<= CORBA::string_dup( _override_env[i].second.c_str() );
+ }
+ }
+ cont->override_environment_python( envCorba );
return cont._retn();
}
else