29 #ifndef _SALOME_CONTAINER_I_HXX_
30 #define _SALOME_CONTAINER_I_HXX_
35 #include <SALOMEconfig.h>
36 #include CORBA_SERVER_HEADER(SALOME_Component)
37 #include CORBA_SERVER_HEADER(SALOME_PyNode)
45 #include <sys/types.h>
46 #include <omnithread.h>
54 public virtual PortableServer::ServantBase
59 PortableServer::POA_ptr
poa,
61 int argc,
char *
argv[],
63 bool isServantAloneInProcess =
true);
70 virtual bool load_component_Library(
const char *componentName, CORBA::String_out reason);
72 virtual Engines::EngineComponent_ptr
73 create_component_instance(
const char *componentName);
81 void execute_python_code(
const char *code)
override;
83 virtual Engines::EngineComponent_ptr
84 create_component_instance_env(
const char *componentName,
86 CORBA::String_out reason);
89 create_python_service_instance(
const char *CompName,
90 CORBA::String_out reason);
92 Engines::EngineComponent_ptr
93 find_component_instance(
const char *registeredName);
95 Engines::EngineComponent_ptr
96 load_impl(
const char *nameToRegister,
97 const char *componentName);
101 Engines::EmbeddedNamingService_ptr get_embedded_NS_if_ssl()
override;
105 void remove_impl(Engines::EngineComponent_ptr component_i);
106 void finalize_removal();
111 void setPyScriptForCPULoad(
const char *script);
112 void resetScriptForCPULoad();
119 void logfilename(
const char *
name);
121 virtual void Shutdown();
123 CORBA::Long getPID();
127 Engines::fileRef_ptr createFileRef(
const char *origFileName);
128 Engines::fileTransfer_ptr getFileTransfer();
130 virtual Engines::Salome_file_ptr createSalome_file(
const char *origFileName);
131 void copyFile(Engines::Container_ptr
container,
const char *remoteFile,
const char *localFile);
132 Engines::PyNode_ptr createPyNode(
const char *nodeName,
const char *code);
133 Engines::PyNode_ptr getDefaultPyNode(
const char *nodeName);
134 Engines::PyScriptNode_ptr createPyScriptNode(
const char *nodeName,
const char *code);
135 void removePyScriptNode(
const char *nodeName)
override;
136 void cleanAllPyScripts()
override;
137 Engines::PyScriptNode_ptr getDefaultPyScriptNode(
const char *nodeName);
140 Engines::EngineComponent_ptr
141 find_or_create_instance(std::string genericRegisterName,
142 std::string componentLibraryName);
144 bool load_component_CppImplementation(
const char *componentName, std::string &reason);
145 bool load_component_PythonImplementation(
const char *componentName, std::string &reason);
146 bool load_component_ExecutableImplementation(
const char *componentName, std::string &reason);
148 Engines::EngineComponent_ptr createPythonInstance(std::string CompName, std::string &
error);
149 Engines::EngineComponent_ptr createExecutableInstance(std::string CompName,
const Engines::FieldsDict &env, std::string &
error);
150 Engines::EngineComponent_ptr createInstance(std::string genericRegisterName,
void *handle, std::string &
error);
153 static void decInstanceCnt(std::string genericRegisterName);
161 void registerTemporaryFile(
const std::string &fileName);
162 void unregisterTemporaryFile(
const std::string &fileName);
163 void clearTemporaryFiles();
181 PortableServer::ObjectId *
_id;
203 PortableServer::POA_ptr
poa,
205 int argc,
char *
argv[],
207 bool isServantAloneInProcess =
true) :
217 PortableServer::POA_ptr
poa,
219 int argc,
char *
argv[],
221 bool isServantAloneInProcess =
true) :
bool isPythonContainer(const char *ContainerName)
This is no longer valid (C++ container are also python containers)
Definition: SALOME_ContainerManager.cxx:791
#define CONTAINER_EXPORT
Definition: SALOME_Container.hxx:37
Definition: SALOME_Container_i.hxx:55
std::string _library_path
Definition: SALOME_Container_i.hxx:175
bool _isServantAloneInProcess
Definition: SALOME_Container_i.hxx:195
std::map< std::string, Engines::PyNode_var > _dftPyNode
Definition: SALOME_Container_i.hxx:187
static std::map< std::string, void * > _toRemove_map
Definition: SALOME_Container_i.hxx:169
Engines::fileTransfer_var _fileTransfer
Definition: SALOME_Container_i.hxx:190
std::string _logfilename
Definition: SALOME_Container_i.hxx:177
static std::map< std::string, void * > _library_map
Definition: SALOME_Container_i.hxx:168
static omni_mutex _numInstanceMutex
Definition: SALOME_Container_i.hxx:170
SALOME_NamingService_Container_Abstract * _NS
Definition: SALOME_Container_i.hxx:174
CORBA::ORB_var _orb
Definition: SALOME_Container_i.hxx:179
bool is_SSL_mode() override
Definition: SALOME_Container_i.hxx:99
int getArgc()
Definition: SALOME_Container_i.hxx:158
PortableServer::ObjectId * _id
Definition: SALOME_Container_i.hxx:181
int _argc
Definition: SALOME_Container_i.hxx:192
Utils_Mutex _mutexForDftPy
Definition: SALOME_Container_i.hxx:188
std::string _load_script
Definition: SALOME_Container_i.hxx:178
SALOME_NamingService_Container_Abstract * getNS() const
Definition: SALOME_Container_i.hxx:103
char ** _argv
Definition: SALOME_Container_i.hxx:193
std::map< std::string, Engines::Salome_file_var > _Salome_file_map
Definition: SALOME_Container_i.hxx:185
char ** getArgv()
Definition: SALOME_Container_i.hxx:159
std::map< std::string, Engines::fileRef_var > _fileRef_map
Definition: SALOME_Container_i.hxx:184
std::list< std::string > _tmp_files
Definition: SALOME_Container_i.hxx:189
PortableServer::ObjectId * getCORBAId() const
Definition: SALOME_Container_i.hxx:164
int _numInstance
Definition: SALOME_Container_i.hxx:182
std::map< std::string, Engines::EngineComponent_var > _listInstances_map
Definition: SALOME_Container_i.hxx:183
static std::map< std::string, int > _cntInstances_map
Definition: SALOME_Container_i.hxx:167
std::string _containerName
Definition: SALOME_Container_i.hxx:176
std::map< std::string, Engines::PyScriptNode_var > _dftPyScriptNode
Definition: SALOME_Container_i.hxx:186
bool _isSupervContainer
Definition: SALOME_Container_i.hxx:172
PortableServer::POA_var _poa
Definition: SALOME_Container_i.hxx:180
virtual bool isSSLMode() const =0
long _pid
Definition: SALOME_Container_i.hxx:194
Definition: SALOME_Container_i.hxx:213
Engines_Container_SSL_i()
Engines_Container_SSL_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, char *containerName, int argc, char *argv[], SALOME_NamingService_Container_Abstract *ns=nullptr, bool isServantAloneInProcess=true)
Definition: SALOME_Container_i.hxx:216
bool isSSLMode() const override
Definition: SALOME_Container_i.hxx:223
C++ implementation of Engines::Container interface.
Definition: SALOME_Container_i.hxx:199
Engines_Container_i(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, char *containerName, int argc, char *argv[], SALOME_NamingService_Container_Abstract *ns=nullptr, bool isServantAloneInProcess=true)
Definition: SALOME_Container_i.hxx:202
bool isSSLMode() const override
Definition: SALOME_Container_i.hxx:209
Engines_Container_i()
Definition: SALOME_Container_i.hxx:201
Definition: SALOME_NamingService_Abstract.hxx:32
Definition: Utils_Mutex.hxx:37
sequence< KeyValuePair > FieldsDict
Definition: SALOME_Component.idl:64
sequence< double > vectorOfDouble
Definition: SALOME_Component.idl:65
def error(message)
Definition: IDLparser.py:67
def getTotalPhysicalMemory()
Definition: salome_psutil.py:71
def getTotalPhysicalMemoryInUseByMe()
Definition: salome_psutil.py:87
def getTotalPhysicalMemoryInUse()
Definition: salome_psutil.py:79
def loadOfCPUCores(script=None)
Definition: salome_psutil.py:37
def getNumberOfCPUCores()
Definition: salome_psutil.py:29
Methods to be used in SSL mode to skip NS.
Definition: SALOME_Container_i.hxx:230
Engines::Container_var getContainerRefSA()
Definition: Container_i.cxx:2371
Engines_Container_SSL_i * getContainerSA()
Definition: Container_i.cxx:2334
poa
Definition: SALOME_ContainerPy.py:377
containerName
Definition: SALOME_ContainerPy.py:383
container
Definition: TestComponentPy.py:63
argv
Definition: envSalome.py:42
string name
Definition: pythfilter.py:56
def getHostName()
Definition: salome_utils.py:130
orb
Definition: salome.py:122