Version: 9.12.0
Engines_Component_i Class Reference

C++ implementation of Engines::Component interface. More...

#include <SALOME_Component_i.hxx>

Inheritance diagram for Engines_Component_i:

Public Member Functions

 Engines_Component_i ()
 Default constructor, not for use. More...
 
 Engines_Component_i (CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId *contId, const char *instanceName, const char *interfaceName, bool notif=false, bool regist=true)
 Standard Constructor for generic Component, used in derived class. More...
 
 Engines_Component_i (CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, Engines::Container_ptr container, const char *instanceName, const char *interfaceName, bool notif=false, bool regist=true)
 Standard Constructor for standalone Component, used in derived class. More...
 
CORBA::Boolean isSSLMode () override
 
virtual ~Engines_Component_i ()
 Destructor: call Container for decrement of instances count. More...
 
char * instanceName ()
 CORBA method: return name of the instance, unique in this Container. More...
 
char * interfaceName ()
 CORBA method: return name of the component class. More...
 
void ping ()
 CORBA method: Test if instance is alive and responds. More...
 
void destroy ()
 CORBA method: Deactivate this instance. More...
 
Engines::Container_ptr GetContainerRef ()
 CORBA method: return CORBA reference of the Container. More...
 
void setProperties (const Engines::FieldsDict &dico)
 CORBA method: Gives a sequence of (key=string,value=any) to the component. More...
 
Engines::FieldsDictgetProperties ()
 CORBA method: returns a previously stored map (key=string,value=any) as a sequence. More...
 
virtual void SetOption (const char *, const char *)
 CORBA method: This method is to set an option specific to a certain EngineComponent. More...
 
virtual char * GetOption (const char *)
 CORBA method: This method is to get value of an option specific to a certain EngineComponent. More...
 
void Names (const char *graphName, const char *nodeName)
 CORBA method: used by Supervision to give names to this instance. More...
 
bool Kill_impl ()
 CORBA method: used in Supervision. More...
 
bool Stop_impl ()
 CORBA method: used in Supervision. More...
 
bool Suspend_impl ()
 CORBA method: used in Supervision. More...
 
bool Resume_impl ()
 CORBA method: used in Supervision. More...
 
CORBA::Long CpuUsed_impl ()
 CORBA method: More...
 
virtual Engines::TMPFileDumpPython (CORBA::Boolean isPublished, CORBA::Boolean isMultiFile, CORBA::Boolean &isValidScript)
 C++ method: DumpPython default implementation. More...
 
virtual Engines::Salome_file_ptr getInputFileToService (const char *service_name, const char *Salome_file_name)
 
virtual Engines::Salome_file_ptr getOutputFileToService (const char *service_name, const char *Salome_file_name)
 
virtual void checkInputFilesToService (const char *service_name)
 
virtual Engines::Salome_file_ptr setInputFileToService (const char *service_name, const char *Salome_file_name)
 
virtual void checkOutputFilesToService (const char *service_name)
 
virtual Engines::Salome_file_ptr setOutputFileToService (const char *service_name, const char *Salome_file_name)
 
virtual bool hasObjectInfo ()
 Return true if component can provide creation information. More...
 
virtual char * getObjectInfo (const char *entry)
 Get creation information for object addressed by given entry. More...
 
virtual char * getVersion ()
 Get version of the component. More...
 
PortableServer::ObjectId * getId ()
 C++ method: return CORBA instance id, the id is set in derived class constructor, when instance is activated. More...
 
Engines_Container_iGetContainerPtr ()
 C++ method: return Container Servant. More...
 
std::string getContainerName ()
 C++ method: return the name of the container associated with this component This name does not contains the "/Containers" string and all "/" are replaced by "_". More...
 
void setContainerName ()
 C++ method: set the name of the container associated with this component (attribute containerName) This name does not contains the "/Containers" string and all "/" are replaced by "</em>". More...
 
void beginService (const char *serviceName)
 C++ method: used by derived classes for supervision. More...
 
void endService (const char *serviceName)
 C++ method: used by derived classes for supervision. More...
 
void sendMessage (const char *event_type, const char *message)
 C++ method: Send message to event channel. More...
 
char * graphName ()
 C++ method: – CHECK IF USED –. More...
 
char * nodeName ()
 C++ method: – CHECK IF USED –. More...
 
bool Killer (pthread_t ThreadId, int signum)
 C++ method: used in Supervision (see kill_impl) More...
 
void SetCurCpu ()
 C++ method: More...
 
long CpuUsed ()
 C++ method: More...
 
void CancelThread ()
 C++ method: More...
 
virtual void configureSalome_file (std::string service_name, std::string file_port_name, Salome_file_i *file)
 C++ method: used to configure the Salome_file into the runtime. More...
 

Static Public Member Functions

static bool isMultiInstance ()
 
static std::string GetDynLibraryName (const char *componentName)
 C++ method: return standard library name built on component name. More...
 

Protected Types

typedef std::map< std::string, Salome_file_i * > _t_Salome_file_map
 
typedef std::map< std::string, Engines_Component_i::_t_Salome_file_map * > _t_Service_file_map
 

Protected Member Functions

SALOME_NamingService_AbstractgetNS ()
 

Protected Attributes

std::string _instanceName
 
std::string _interfaceName
 
std::string _containerName
 
CORBA::ORB_var _orb
 
PortableServer::POA_var _poa
 
PortableServer::ObjectId * _id
 
PortableServer::ObjectId * _contId
 
Engines::Container_var _container
 
Engines_Component_i_thisObj
 
RegistryConnexion_myConnexionToRegistry
 
NOTIFICATION_Supplier_notifSupplier
 
std::map< std::string, CORBA::Any > _fieldsDict
 
_t_Service_file_map _Input_Service_file_map
 
_t_Service_file_map _Output_Service_file_map
 
_t_Service_file_map::iterator _Service_file_map_it
 
_t_Salome_file_map::iterator _Salome_file_map_it
 
std::string _serviceName
 
std::string _graphName
 
std::string _nodeName
 

Static Protected Attributes

static bool _isMultiInstance = false
 

Private Attributes

pthread_t _ThreadId
 
long _StartUsed
 
long _ThreadCpuUsed
 
bool _Executed
 
bool _CanceledThread
 

Detailed Description

C++ implementation of Engines::Component interface.

Member Typedef Documentation

◆ _t_Salome_file_map

typedef std::map<std::string, Salome_file_i*> Engines_Component_i::_t_Salome_file_map
protected

◆ _t_Service_file_map

Constructor & Destructor Documentation

◆ Engines_Component_i() [1/3]

Engines_Component_i::Engines_Component_i ( )

Default constructor, not for use.

References MESSAGE.

◆ Engines_Component_i() [2/3]

Engines_Component_i::Engines_Component_i ( CORBA::ORB_ptr  orb,
PortableServer::POA_ptr  poa,
PortableServer::ObjectId *  contId,
const char *  instanceName,
const char *  interfaceName,
bool  notif = false,
bool  regist = true 
)

Standard Constructor for generic Component, used in derived class.

Connection to Registry and Notification

Parameters
orbObject Request broker given by Container
poaPortable Object Adapter from Container (normally root_poa)
contIdcontainer CORBA id inside the server
instanceNameunique instance name for this object (see Container_i)
interfaceNamecomponent class name
notifuse of notification
regist(true or false) use of registry (default true)

References _container, _contId, _instanceName, _myConnexionToRegistry, _notifSupplier, _orb, _poa, getNS(), instanceName(), MESSAGE, salome::orb, SALOME_ContainerPy::poa, and setContainerName().

◆ Engines_Component_i() [3/3]

Engines_Component_i::Engines_Component_i ( CORBA::ORB_ptr  orb,
PortableServer::POA_ptr  poa,
Engines::Container_ptr  container,
const char *  instanceName,
const char *  interfaceName,
bool  notif = false,
bool  regist = true 
)

Standard Constructor for standalone Component, used in derived class.

Connection to Registry and Notification

Parameters
orbObject Request broker given by Container
poaPortable Object Adapter from Container (normally root_poa)
containercontainer CORBA reference
instanceNameunique instance name for this object (see Container_i)
interfaceNamecomponent class name
notifuse of notification
regist(true or false) use of registry (default true)

References _container, _instanceName, _myConnexionToRegistry, _notifSupplier, _orb, _poa, TestComponentPy::container, getNS(), instanceName(), MESSAGE, salome::orb, SALOME_ContainerPy::poa, and setContainerName().

◆ ~Engines_Component_i()

Engines_Component_i::~Engines_Component_i ( )
virtual

Destructor: call Container for decrement of instances count.

When instances count falls to 0, the container tries to remove the component library (dlclose)

References _id, _interfaceName, _myConnexionToRegistry, _notifSupplier, Abstract_Engines_Container_i::decInstanceCnt(), MESSAGE, SALOME_ContainerPy::poa, and SCRUTE.

Member Function Documentation

◆ beginService()

void Engines_Component_i::beginService ( const char *  serviceName)

C++ method: used by derived classes for supervision.

References _Executed, _fieldsDict, _instanceName, _serviceName, _StartUsed, _ThreadCpuUsed, _ThreadId, CpuUsed_impl(), MESSAGE, and theEngines_Component.

Referenced by Superv_Component_i::beginService().

◆ CancelThread()

void Engines_Component_i::CancelThread ( )

C++ method:

References _CanceledThread.

Referenced by CallCancelThread().

◆ checkInputFilesToService()

void Engines_Component_i::checkInputFilesToService ( const char *  service_name)
virtual

◆ checkOutputFilesToService()

void Engines_Component_i::checkOutputFilesToService ( const char *  service_name)
virtual

◆ configureSalome_file()

void Engines_Component_i::configureSalome_file ( std::string  service_name,
std::string  file_port_name,
Salome_file_i file 
)
virtual

C++ method: used to configure the Salome_file into the runtime.

Parameters
service_namename of the service that use this Salome_file
file_port_namename of the Salome_file
fileSalome_file C++ object

Referenced by checkInputFilesToService(), and checkOutputFilesToService().

◆ CpuUsed()

long Engines_Component_i::CpuUsed ( )

C++ method:

References _Executed, _StartUsed, _ThreadId, and prepare_test::usage.

Referenced by CpuUsed_impl(), and SetCurCpu().

◆ CpuUsed_impl()

◆ destroy()

void Engines_Component_i::destroy ( )

CORBA method: Deactivate this instance.

CORBA object is deactivated (do not respond any more to CORBA calls), the connection to Regsitry is removed (Registry informed of deactivation), internal server reference counter on the derived servant class is decremented, to allow destruction of the class (delete) by POA, when there are no more references. – TO BE USED BY CONTAINER ONLY (Container housekeeping) –

References _id, _poa, and MESSAGE.

◆ DumpPython()

Engines::TMPFile * Engines_Component_i::DumpPython ( CORBA::Boolean  isPublished,
CORBA::Boolean  isMultiFile,
CORBA::Boolean &  isValidScript 
)
virtual

C++ method: DumpPython default implementation.

◆ endService()

void Engines_Component_i::endService ( const char *  serviceName)

C++ method: used by derived classes for supervision.

References _CanceledThread, _instanceName, _StartUsed, _ThreadCpuUsed, _ThreadId, CpuUsed_impl(), and MESSAGE.

◆ getContainerName()

std::string Engines_Component_i::getContainerName ( )

C++ method: return the name of the container associated with this component This name does not contains the "/Containers" string and all "/" are replaced by "_".

Returns
the container name (reformatted)

References _containerName.

Referenced by create_calcium_port(), CalciumInterface::ecp_cd(), CalciumInterface::ecp_ecriture(), CalciumInterface::ecp_effi(), CalciumInterface::ecp_efft(), CalciumInterface::ecp_fin(), CalciumInterface::ecp_fini(), CalciumInterface::ecp_fint(), and CalciumInterface::ecp_lecture().

◆ GetContainerPtr()

Engines_Container_i * Engines_Component_i::GetContainerPtr ( )

C++ method: return Container Servant.

References _container, and _poa.

◆ GetContainerRef()

Engines::Container_ptr Engines_Component_i::GetContainerRef ( )

CORBA method: return CORBA reference of the Container.

References _container.

Referenced by setInputFileToService(), and setOutputFileToService().

◆ GetDynLibraryName()

std::string Engines_Component_i::GetDynLibraryName ( const char *  componentName)
static

C++ method: return standard library name built on component name.

References waitContainers::cname, and TestKernelHelpers::ret.

Referenced by Abstract_Engines_Container_i::decInstanceCnt(), and Engines_Parallel_Container_i::decInstanceCnt().

◆ getId()

PortableServer::ObjectId * Engines_Component_i::getId ( )

C++ method: return CORBA instance id, the id is set in derived class constructor, when instance is activated.

References _id.

Referenced by SalomeTestComponentEngine_factory(), and TestMPIComponentEngine_factory().

◆ getInputFileToService()

Engines::Salome_file_ptr Engines_Component_i::getInputFileToService ( const char *  service_name,
const char *  Salome_file_name 
)
virtual

◆ getNS()

◆ getObjectInfo()

char * Engines_Component_i::getObjectInfo ( const char *  entry)
virtual

Get creation information for object addressed by given entry.

◆ GetOption()

char * Engines_Component_i::GetOption ( const char *  )
virtual

CORBA method: This method is to get value of an option specific to a certain EngineComponent.

◆ getOutputFileToService()

Engines::Salome_file_ptr Engines_Component_i::getOutputFileToService ( const char *  service_name,
const char *  Salome_file_name 
)
virtual

◆ getProperties()

Engines::FieldsDict * Engines_Component_i::getProperties ( )

CORBA method: returns a previously stored map (key=string,value=any) as a sequence.

(see setProperties)

References _fieldsDict.

◆ getVersion()

char * Engines_Component_i::getVersion ( )
virtual

Get version of the component.

This method is supposed to be implemented in all derived classes; default implementation returns empty string that means that no version information about the component is available.

Note
The version of the component is stored to the study, as a part of general persistence mechanism; once stored, version information in the study cannot be changed.
Returns
string containing component's version, e.g. "1.0"

Referenced by SALOME_DriverPy.SALOME_DriverPy_i::Version().

◆ graphName()

char * Engines_Component_i::graphName ( )

C++ method: – CHECK IF USED –.

References _graphName.

Referenced by Names(), and SALOME_ComponentPy.SALOME_ComponentPy_Gen_i::sendMessage().

◆ hasObjectInfo()

bool Engines_Component_i::hasObjectInfo ( )
virtual

Return true if component can provide creation information.

◆ instanceName()

◆ interfaceName()

char * Engines_Component_i::interfaceName ( )

CORBA method: return name of the component class.

References _interfaceName.

◆ isMultiInstance()

static bool Engines_Component_i::isMultiInstance ( )
static

◆ isSSLMode()

◆ Kill_impl()

bool Engines_Component_i::Kill_impl ( )

CORBA method: used in Supervision.

References _ThreadId, and Killer().

◆ Killer()

bool Engines_Component_i::Killer ( pthread_t  ThreadId,
int  signum 
)

C++ method: used in Supervision (see kill_impl)

References MESSAGE.

Referenced by CpuUsed_impl(), Kill_impl(), Stop_impl(), and Suspend_impl().

◆ Names()

void Engines_Component_i::Names ( const char *  graphName,
const char *  nodeName 
)

CORBA method: used by Supervision to give names to this instance.

References _graphName, _nodeName, graphName(), and nodeName().

◆ nodeName()

◆ ping()

void Engines_Component_i::ping ( )

CORBA method: Test if instance is alive and responds.

References MESSAGE.

◆ Resume_impl()

bool Engines_Component_i::Resume_impl ( )

CORBA method: used in Supervision.

References _id, _instanceName, _interfaceName, _Sleeping, _ThreadId, Kernel_Utils::GetHostname(), and MESSAGE.

◆ sendMessage()

void Engines_Component_i::sendMessage ( const char *  event_type,
const char *  message 
)

C++ method: Send message to event channel.

References _graphName, _nodeName, _notifSupplier, and NOTIFICATION_Supplier::Send().

◆ setContainerName()

void Engines_Component_i::setContainerName ( )

C++ method: set the name of the container associated with this component (attribute containerName) This name does not contains the "/Containers" string and all "/" are replaced by "</em>".

Returns
the container name (reformatted)

References _container, _containerName, SALOME_ContainerPy::containerName, and pythfilter::name.

Referenced by Engines_Component_i().

◆ SetCurCpu()

void Engines_Component_i::SetCurCpu ( )

C++ method:

References _ThreadCpuUsed, and CpuUsed().

Referenced by SetCpuUsed().

◆ setInputFileToService()

Engines::Salome_file_ptr Engines_Component_i::setInputFileToService ( const char *  service_name,
const char *  Salome_file_name 
)
virtual

◆ SetOption()

void Engines_Component_i::SetOption ( const char *  ,
const char *   
)
virtual

CORBA method: This method is to set an option specific to a certain EngineComponent.

◆ setOutputFileToService()

Engines::Salome_file_ptr Engines_Component_i::setOutputFileToService ( const char *  service_name,
const char *  Salome_file_name 
)
virtual

◆ setProperties()

void Engines_Component_i::setProperties ( const Engines::FieldsDict dico)

CORBA method: Gives a sequence of (key=string,value=any) to the component.

Base class component stores the sequence in a map. The map is cleared before. This map is for use by derived classes.

Parameters
dicosequence of (key=string,value=any)

References _fieldsDict.

◆ Stop_impl()

bool Engines_Component_i::Stop_impl ( )

CORBA method: used in Supervision.

References _id, _instanceName, _interfaceName, _ThreadId, Kernel_Utils::GetHostname(), Killer(), and MESSAGE.

◆ Suspend_impl()

bool Engines_Component_i::Suspend_impl ( )

CORBA method: used in Supervision.

References _id, _instanceName, _interfaceName, _Sleeping, _ThreadId, Kernel_Utils::GetHostname(), Killer(), and MESSAGE.

Field Documentation

◆ _CanceledThread

bool Engines_Component_i::_CanceledThread
private

Referenced by CancelThread(), and endService().

◆ _container

◆ _containerName

◆ _contId

PortableServer::ObjectId* Engines_Component_i::_contId
protected

◆ _Executed

◆ _fieldsDict

◆ _graphName

◆ _id

◆ _Input_Service_file_map

_t_Service_file_map Engines_Component_i::_Input_Service_file_map
protected

◆ _instanceName

◆ _interfaceName

◆ _isMultiInstance

bool Engines_Component_i::_isMultiInstance = false
staticprotected

◆ _myConnexionToRegistry

RegistryConnexion* Engines_Component_i::_myConnexionToRegistry
protected

◆ _nodeName

◆ _notifSupplier

◆ _orb

◆ _Output_Service_file_map

_t_Service_file_map Engines_Component_i::_Output_Service_file_map
protected

◆ _poa

◆ _Salome_file_map_it

_t_Salome_file_map::iterator Engines_Component_i::_Salome_file_map_it
protected

◆ _Service_file_map_it

_t_Service_file_map::iterator Engines_Component_i::_Service_file_map_it
protected

◆ _serviceName

◆ _StartUsed

◆ _thisObj

◆ _ThreadCpuUsed

◆ _ThreadId