X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=idl%2FSALOME_Component.idl;h=2e3b662f49efe032a164fd8ed4369463e88bfd7c;hb=f9ed7d1e82753ef572fcb1179e370e11e807a883;hp=9ba53cd97e777ba7aad9b77ad91e184785040913;hpb=a2a12c4a79396710ac62f71ba5eb6430c9307fb7;p=modules%2Fkernel.git diff --git a/idl/SALOME_Component.idl b/idl/SALOME_Component.idl index 9ba53cd97..2e3b662f4 100644 --- a/idl/SALOME_Component.idl +++ b/idl/SALOME_Component.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 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 @@ -19,6 +19,7 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + // File : SALOME_Component.idl // Author : Paul RASCLE, EDF @@ -29,13 +30,14 @@ #include "SALOMEDS.idl" #include "SALOME_Exception.idl" #include "SALOME_PyNode.idl" +#include "SALOME_Embedded_NamingService.idl" /*! \file SALOME_Component.idl \brief interfaces for EngineComponent and Container */ /*! \brief This is a package of interfaces used for connecting new components to %SALOME -application. It also contains a set of interfaces used for management of %MED +application. It also contains a set of interfaces used for management of %FIELDS component in %SALOME application. */ module Engines @@ -60,6 +62,8 @@ module Engines }; typedef sequence FieldsDict; + typedef sequence vectorOfDouble; + typedef sequence vectorOfString; interface EngineComponent ; interface fileRef ; @@ -74,13 +78,21 @@ module Engines interface Container { + void override_environment( in FieldsDict env ); + + void override_environment_python( in FieldsDict env ); + + FieldsDict get_os_environment(); + + void execute_python_code( in string code ) raises(SALOME::SALOME_Exception); + /*! \brief Loads a new component class (dynamic library). \param componentName like COMPONENT, (Python or C++ implementation) try to make a Python import of COMPONENT, then a lib open of libCOMPONENTEngine.so \param reason in case of error (return false) a string explaining the error - \return true if load successfull or already done, false otherwise + \return true if load successful or already done, false otherwise */ boolean load_component_Library(in string componentName, out string reason); @@ -90,22 +102,17 @@ module Engines \param componentName Name of the component which will be registered in Registry and Name Service, (instance number suffix added to the registered name) - \param studyId 0 if instance is not associated to a study, - >0 otherwise (== study id) \return a loaded component */ - Engines::EngineComponent create_component_instance(in string componentName, - in long studyId); + Engines::EngineComponent create_component_instance(in string componentName); //! Create a new Python servant instance of a generic service. /*! This simply loads the service in the current container by importing the corresponding Python module. Warning: no internal registration is done, so it is up to the caller to - manage the various instanciation. + manage the various instantiation. \param serviceName Name of the service - - >0 otherwise (== study id) \param reason in case of error (return void string) a string explaining the error \return the IOR of the loaded service. */ @@ -118,25 +125,20 @@ module Engines \param componentName Name of the component which will be registered in Registry and Name Service, (instance number suffix added to the registered name) - \param studyId 0 if instance is not associated to a study, - >0 otherwise (== study id) \param env a dict of env variables \param reason in case of error (return nil) a string explaining the error \return a loaded component */ Engines::EngineComponent create_component_instance_env(in string componentName, - in long studyId, in FieldsDict env, + in FieldsDict env, out string reason); //! Find a servant instance of a component /*! \param registeredName Name of the component in Registry or Name Service, without instance suffix number - \param studyId 0 if instance is not associated to a study, - >0 otherwise (== study id) - \return the first instance found with same studyId + \return the first instance found */ - EngineComponent find_component_instance(in string registeredName, - in long studyId); + EngineComponent find_component_instance(in string registeredName); //! Find a servant instance of a component, or create a new one. /*! @@ -156,6 +158,11 @@ module Engines \param component_i Component to be removed */ void remove_impl(in EngineComponent component_i); + + //! In case of SSL mode Returns entry to Embedded NS + EmbeddedNamingService get_embedded_NS_if_ssl(); + + boolean is_SSL_mode(); //! Unload component libraries from the container. void finalize_removal() ; @@ -233,7 +240,7 @@ module Engines PyNode createPyNode(in string nodeName, in string code) raises(SALOME::SALOME_Exception); //! Retrieves the last created PyNode instance with createPyNode. - PyNode getDefaultPyNode(); + PyNode getDefaultPyNode(in string nodeName); //! Create a PyScriptNode in the container /*! @@ -242,8 +249,40 @@ module Engines */ PyScriptNode createPyScriptNode(in string nodeName, in string code) raises(SALOME::SALOME_Exception); + void removePyScriptNode(in string nodeName) raises(SALOME::SALOME_Exception); + //! Retrieves the last created PyScriptNode instance with createPyScriptNode. - PyScriptNode getDefaultPyScriptNode(); + PyScriptNode getDefaultPyScriptNode(in string nodeName); + + //! This method remove all refs of PyScriptNode servant objects stored in server. + /*! + * Previous scripts created on container may have been stored in a map. This method removes them. It then clean all the contexts dict attached to them. + */ + void cleanAllPyScripts(); + + //! Return number of CPU cores in the calculation node. + long getNumberOfCPUCores(); + + //! Return a load of each CPU core. + vectorOfDouble loadOfCPUCores() raises(SALOME::SALOME_Exception); + + //! Set custom script to calculate a load of each CPU core. + /*! + \param script Python script to execute + */ + void setPyScriptForCPULoad(in string script); + + //! Nullify custom script to calculate each CPU core's load. + void resetScriptForCPULoad(); + + //! Get total physical memory of calculation node, in megabytes. + long getTotalPhysicalMemory(); + + //! Get used physical memory of calculation node, in megabytes. + long getTotalPhysicalMemoryInUse(); + + //! Obtain physical memory, used by the current process, in megabytes. + long getTotalPhysicalMemoryInUseByMe(); }; /*! \brief Interface of the %component. @@ -261,15 +300,7 @@ module Engines //! Determines whether the server has already been loaded or not. void ping(); - //! Get study associated to component instance - /*! - get study associated to component instance - \return -1: not initialised (Internal Error) - 0: multistudy component instance - >0: study id associated to this instance - */ - long getStudyId(); - + boolean isSSLMode() raises(SALOME::SALOME_Exception); //! Remove component instance from container /*! Deactivates the %Component. @@ -355,8 +386,7 @@ module Engines Returns a python script, which is being played back reproduces the data model of component */ - TMPFile DumpPython(in Object theStudy, - in boolean isPublished, + TMPFile DumpPython(in boolean isPublished, in boolean isMultiFile, out boolean isValidScript); @@ -369,7 +399,7 @@ module Engines \return CORBA Ref of the requested file. - \exception contains informations of what if the component cannot + \exception contains information of what if the component cannot sends the file's reference. */ Engines::Salome_file getInputFileToService(in string service_name, @@ -389,7 +419,7 @@ module Engines \param service_name service's name. - \exception contains informations about files that are not in a good state. + \exception contains information about files that are not in a good state. */ void checkInputFilesToService(in string service_name) raises(SALOME::SALOME_Exception); @@ -415,7 +445,7 @@ module Engines \return CORBA Ref of the requested file. - \exception contains informations of what if the component cannot + \exception contains information of what if the component cannot sends the file's reference. */ Engines::Salome_file getOutputFileToService(in string service_name, @@ -435,7 +465,7 @@ module Engines \param service_name service's name. - \exception contains informations about files that are not in a good state. + \exception contains information about files that are not in a good state. */ void checkOutputFilesToService(in string service_name) raises(SALOME::SALOME_Exception); @@ -469,11 +499,10 @@ module Engines It is worth using this method only if hasObjectInfo() method returns true. \param entry object's entry. - \param studyId study id \return an information about the given object. */ - string getObjectInfo(in long studyId, in string entry); + string getObjectInfo(in string entry); //! Get version of the component /*! @@ -589,7 +618,7 @@ module Engines \param hdf5_file name (with path) of the hdf5_file. - \exception contains informations of errors if the loading doesn't succeed. + \exception contains information of errors if the loading doesn't succeed. */ void load(in string hdf5_file) raises (SALOME::SALOME_Exception); @@ -598,7 +627,7 @@ module Engines \param hdf5_file name (with path) of the hdf5_file. - \exception contains informations of errors if the save doesn't succeed. + \exception contains information of errors if the save doesn't succeed. */ void save(in string hdf5_file) raises (SALOME::SALOME_Exception); @@ -609,7 +638,7 @@ module Engines \param hdf5_file name (with path) of the hdf5_file. - \exception contains informations of errors if the save doesn't succeed. + \exception contains information of errors if the save doesn't succeed. */ void save_all(in string hdf5_file) raises (SALOME::SALOME_Exception); @@ -730,7 +759,7 @@ module Engines with createFileRef(in string origFileName) method. The fileRef object maintains a list of (machine,filename) for copies. If a copy exists on myMachine, getRef(myMachine) returns the file name - of the copy on myMachine, else returns empy string. + of the copy on myMachine, else returns empty string. If there is no copy on myMachine, method getFileTransfer() from container factoryServer on refMachine provides a fileTransfer object dedicated to CORBA file copy.