Version: 8.3.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...
 
virtual ~Engines_Component_i ()
 Destructor: call Container for decrement of instances count. More...
 
charinstanceName ()
 CORBA method: return name of the instance, unique in this Container. More...
 
charinterfaceName ()
 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...
 
CORBA::Long getStudyId ()
 CORBA method: Get study Id. 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 charGetOption (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::Object_ptr theStudy, 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 ()
 
virtual chargetObjectInfo (CORBA::Long studyId, const char *entry)
 
virtual chargetVersion ()
 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...
 
virtual bool setStudyId (CORBA::Long studyId)
 C++ method: set study Id. 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...
 
chargraphName ()
 C++ method: – CHECK IF USED –. More...
 
charnodeName ()
 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 isMultiStudy ()
 
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 Attributes

int _studyId
 
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 _isMultiStudy = true
 
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

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

Constructor & Destructor Documentation

Engines_Component_i::Engines_Component_i ( )

Default constructor, not for use.

References MESSAGE.

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, MESSAGE, and setContainerName().

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, MESSAGE, and setContainerName().

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, Engines_Container_i::decInstanceCnt(), MESSAGE, and SCRUTE.

Member Function Documentation

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(), and MESSAGE.

Referenced by Superv_Component_i::beginService().

void Engines_Component_i::CancelThread ( )

C++ method:

References _CanceledThread.

Referenced by CallCancelThread().

void Engines_Component_i::checkInputFilesToService ( const char service_name)
virtual
void Engines_Component_i::checkOutputFilesToService ( const char service_name)
virtual
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().

long Engines_Component_i::CpuUsed ( )

C++ method:

References _Executed, _StartUsed, and _ThreadId.

Referenced by CpuUsed_impl(), and SetCurCpu().

CORBA::Long Engines_Component_i::CpuUsed_impl ( )

CORBA method:

References _Executed, _Sleeping, _ThreadCpuUsed, _ThreadId, CpuUsed(), and Killer().

Referenced by beginService(), and endService().

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.

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

C++ method: DumpPython default implementation.

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.

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().

Engines_Container_i * Engines_Component_i::GetContainerPtr ( )

C++ method: return Container Servant.

References _container, and _poa.

Engines::Container_ptr Engines_Component_i::GetContainerRef ( )

CORBA method: return CORBA reference of the Container.

References _container.

Referenced by setInputFileToService(), and setOutputFileToService().

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

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

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

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().

Engines::Salome_file_ptr Engines_Component_i::getInputFileToService ( const char service_name,
const char Salome_file_name 
)
virtual
virtual char* Engines_Component_i::getObjectInfo ( CORBA::Long  studyId,
const char entry 
)
virtual
char * Engines_Component_i::GetOption ( const char )
virtual

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

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

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

(see setProperties)

References _fieldsDict.

CORBA::Long Engines_Component_i::getStudyId ( )

CORBA method: Get study Id.

Returns
-1: not initialised (Internal Error) 0: multistudy component instance >0: study id associated to this instance

References _studyId.

Referenced by Engines_Container_i::find_or_create_instance(), and Engines_Parallel_Container_i::find_or_create_instance().

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"
char * Engines_Component_i::graphName ( )

C++ method: – CHECK IF USED –.

References _graphName.

Referenced by Names().

virtual bool Engines_Component_i::hasObjectInfo ( )
virtual
char * Engines_Component_i::interfaceName ( )

CORBA method: return name of the component class.

References _interfaceName.

static bool Engines_Component_i::isMultiInstance ( )
static
static bool Engines_Component_i::isMultiStudy ( )
static
bool Engines_Component_i::Kill_impl ( )

CORBA method: used in Supervision.

References _ThreadId, and 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().

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().

char * Engines_Component_i::nodeName ( )

C++ method: – CHECK IF USED –.

References _nodeName.

Referenced by Names().

void Engines_Component_i::ping ( )

CORBA method: Test if instance is alive and responds.

References MESSAGE.

bool Engines_Component_i::Resume_impl ( )

CORBA method: used in Supervision.

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

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().

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, and _containerName.

Referenced by Engines_Component_i().

void Engines_Component_i::SetCurCpu ( )

C++ method:

References _ThreadCpuUsed, and CpuUsed().

Referenced by SetCpuUsed().

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

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

Engines::Salome_file_ptr Engines_Component_i::setOutputFileToService ( const char service_name,
const char Salome_file_name 
)
virtual
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.

CORBA::Boolean Engines_Component_i::setStudyId ( CORBA::Long  studyId)
virtual

C++ method: set study Id.

Parameters
studyId0 if instance is not associated to a study, >0 otherwise (== study id)
Returns
true if the set of study Id is OK must be set once by Container, at instance creation, and cannot be changed after.

References _studyId, and ASSERT.

Referenced by Engines_Parallel_Container_i::createCPPInstance(), Engines_Container_i::createInstance(), and Engines_MPIContainer_i::createMPIInstance().

bool Engines_Component_i::Stop_impl ( )

CORBA method: used in Supervision.

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

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

bool Engines_Component_i::_CanceledThread
private

Referenced by CancelThread(), and endService().

Engines::Container_var Engines_Component_i::_container
protected
std::string Engines_Component_i::_containerName
protected
PortableServer::ObjectId* Engines_Component_i::_contId
protected

Referenced by Engines_Component_i().

bool Engines_Component_i::_Executed
private

Referenced by beginService(), CpuUsed(), and CpuUsed_impl().

std::map<std::string,CORBA::Any> Engines_Component_i::_fieldsDict
protected
std::string Engines_Component_i::_graphName
protected

Referenced by graphName(), Names(), and sendMessage().

_t_Service_file_map Engines_Component_i::_Input_Service_file_map
protected
std::string Engines_Component_i::_instanceName
protected
std::string Engines_Component_i::_interfaceName
protected
bool Engines_Component_i::_isMultiInstance = false
staticprotected
bool Engines_Component_i::_isMultiStudy = true
staticprotected
RegistryConnexion* Engines_Component_i::_myConnexionToRegistry
protected
std::string Engines_Component_i::_nodeName
protected

Referenced by Names(), nodeName(), and sendMessage().

NOTIFICATION_Supplier* Engines_Component_i::_notifSupplier
protected
CORBA::ORB_var Engines_Component_i::_orb
protected

Referenced by Engines_Component_i().

_t_Service_file_map Engines_Component_i::_Output_Service_file_map
protected
_t_Salome_file_map::iterator Engines_Component_i::_Salome_file_map_it
protected
_t_Service_file_map::iterator Engines_Component_i::_Service_file_map_it
protected
std::string Engines_Component_i::_serviceName
protected

Referenced by beginService().

long Engines_Component_i::_StartUsed
private

Referenced by beginService(), CpuUsed(), and endService().

int Engines_Component_i::_studyId
protected

Referenced by getStudyId(), and setStudyId().

long Engines_Component_i::_ThreadCpuUsed
private
pthread_t Engines_Component_i::_ThreadId
private