Version: 7.8.0
Engines_Parallel_Component_i Class Reference

#include <SALOME_ParallelComponent_i.hxx>

Inheritance diagram for Engines_Parallel_Component_i:

Public Member Functions

 Engines_Parallel_Component_i (CORBA::ORB_ptr orb, char *ior, int rank, 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. More...
 
virtual ~Engines_Parallel_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...
 
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)
 
void send_parallel_proxy_object (CORBA::Object_ptr proxy_ref)
 C++ method: Used by the Parallel Component to deploy a Parallel Salome_file. More...
 
virtual bool hasObjectInfo ()
 
virtual chargetObjectInfo (CORBA::Long studyId, const char *entry)
 
PortableServer::ObjectId * getId ()
 C++ method: return CORBA instance id, the id is set in derived class constructor, when instance is activated. More...
 
Engines_Parallel_Container_iGetContainerPtr ()
 C++ method: return Container Servant. More...
 
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...
 
void wait_parallel_object_proxy ()
 C++ method: Used by the Parallel Component to deploy a Parallel Salome_file. More...
 
charget_parallel_proxy_object ()
 C++ method: Used by the Parallel Component to deploy a Parallel Salome_file. More...
 
virtual void configureSalome_file (std::string service_name, std::string file_port_name, Engines::Parallel_Salome_file_proxy_impl *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,
Parallel_Salome_file_i * > 
_t_Salome_file_map
 
typedef std::map< std::string,
Engines::Parallel_Salome_file_proxy_impl * > 
_t_Proxy_Salome_file_map
 
typedef std::map< std::string,
std::string > 
_t_IOR_Proxy_Salome_file_map
 
typedef std::map< std::string,
Engines_Parallel_Component_i::_t_Salome_file_map * > 
_t_Service_file_map
 
typedef std::map< std::string,
Engines_Parallel_Component_i::_t_Proxy_Salome_file_map * > 
_t_Proxy_Service_file_map
 
typedef std::map< std::string,
Engines_Parallel_Component_i::_t_IOR_Proxy_Salome_file_map * > 
_t_IOR_Proxy_Service_file_map
 

Protected Attributes

int _studyId
 
std::string _instanceName
 
std::string _interfaceName
 
CORBA::ORB_var _orb
 
PortableServer::POA_var _poa
 
PortableServer::ObjectId * _id
 
PortableServer::ObjectId * _contId
 
Engines_Parallel_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
 
_t_Proxy_Service_file_map _Proxy_Input_Service_file_map
 
_t_Proxy_Service_file_map _Proxy_Output_Service_file_map
 
_t_Proxy_Service_file_map::iterator _Proxy_Service_file_map_it
 
_t_Proxy_Salome_file_map::iterator _Proxy_Salome_file_map_it
 
_t_IOR_Proxy_Service_file_map _IOR_Proxy_Input_Service_file_map
 
_t_IOR_Proxy_Service_file_map _IOR_Proxy_Output_Service_file_map
 
_t_IOR_Proxy_Service_file_map::iterator _IOR_Proxy_Service_file_map_it
 
_t_IOR_Proxy_Salome_file_map::iterator _IOR_Proxy_Salome_file_map_it
 
std::string _serviceName
 
std::string _graphName
 
std::string _nodeName
 
pthread_mutex_t * deploy_mutex
 
char_proxy
 

Static Protected Attributes

static bool _isMultiStudy = true
 
static bool _isMultiInstance = false
 

Private Attributes

pthread_t _ThreadId
 
long _StartUsed
 
long _ThreadCpuUsed
 
bool _Executed
 
bool _CanceledThread
 
bool _destroyed
 

Member Typedef Documentation

typedef std::map<std::string, std::string> Engines_Parallel_Component_i::_t_IOR_Proxy_Salome_file_map
protected
typedef std::map<std::string, Engines::Parallel_Salome_file_proxy_impl*> Engines_Parallel_Component_i::_t_Proxy_Salome_file_map
protected

Constructor & Destructor Documentation

Engines_Parallel_Component_i::Engines_Parallel_Component_i ( CORBA::ORB_ptr  orb,
char ior,
int  rank,
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 poa Portable 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

References _contId, _instanceName, _myConnexionToRegistry, _notifSupplier, _orb, _poa, _proxy, deploy_mutex, and MESSAGE.

Engines_Parallel_Component_i::~Engines_Parallel_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, _proxy, Engines_Parallel_Container_i::decInstanceCnt(), deploy_mutex, and MESSAGE.

Member Function Documentation

void Engines_Parallel_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.

void Engines_Parallel_Component_i::CancelThread ( )

C++ method:

References _CanceledThread.

Referenced by CallCancelThread().

void Engines_Parallel_Component_i::checkInputFilesToService ( const char service_name)
virtual
void Engines_Parallel_Component_i::checkOutputFilesToService ( const char service_name)
virtual
void Engines_Parallel_Component_i::configureSalome_file ( std::string  service_name,
std::string  file_port_name,
Engines::Parallel_Salome_file_proxy_impl *  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
fileParallel Salome_file C++ object

Referenced by checkInputFilesToService(), and checkOutputFilesToService().

long Engines_Parallel_Component_i::CpuUsed ( )

C++ method:

References _Executed, _StartUsed, and _ThreadId.

Referenced by CpuUsed_impl(), and SetCurCpu().

CORBA::Long Engines_Parallel_Component_i::CpuUsed_impl ( )

CORBA method:

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

Referenced by beginService(), and endService().

void Engines_Parallel_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 _destroyed, and MESSAGE.

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

C++ method: DumpPython default implementation.

void Engines_Parallel_Component_i::endService ( const char serviceName)

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

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

char * Engines_Parallel_Component_i::get_parallel_proxy_object ( )

C++ method: Used by the Parallel Component to deploy a Parallel Salome_file.

References _proxy.

Referenced by setInputFileToService(), setOutputFileToService(), and wait_parallel_object_proxy().

Engines_Parallel_Container_i * Engines_Parallel_Component_i::GetContainerPtr ( )

C++ method: return Container Servant.

References _contId, and _poa.

Engines::Container_ptr Engines_Parallel_Component_i::GetContainerRef ( )

CORBA method: return CORBA reference of the Container.

References _contId, _poa, and MESSAGE.

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

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

PortableServer::ObjectId * Engines_Parallel_Component_i::getId ( )

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

References _id.

Engines::Salome_file_ptr Engines_Parallel_Component_i::getInputFileToService ( const char service_name,
const char Salome_file_name 
)
virtual
virtual char* Engines_Parallel_Component_i::getObjectInfo ( CORBA::Long  studyId,
const char entry 
)
virtual
Engines::Salome_file_ptr Engines_Parallel_Component_i::getOutputFileToService ( const char service_name,
const char Salome_file_name 
)
virtual
Engines::FieldsDict * Engines_Parallel_Component_i::getProperties ( )

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

(see setProperties)

References _fieldsDict.

CORBA::Long Engines_Parallel_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.

char * Engines_Parallel_Component_i::graphName ( )

C++ method: – CHECK IF USED –.

References _graphName.

Referenced by Names(), and sendMessage().

virtual bool Engines_Parallel_Component_i::hasObjectInfo ( )
virtual
char * Engines_Parallel_Component_i::instanceName ( )

CORBA method: return name of the instance, unique in this Container.

References _instanceName.

char * Engines_Parallel_Component_i::interfaceName ( )

CORBA method: return name of the component class.

References _interfaceName.

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

CORBA method: used in Supervision.

References _ThreadId, and Killer().

bool Engines_Parallel_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_Parallel_Component_i::Names ( const char graphName,
const char nodeName 
)

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

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

char * Engines_Parallel_Component_i::nodeName ( )

C++ method: – CHECK IF USED –.

References _nodeName.

Referenced by Names(), and sendMessage().

void Engines_Parallel_Component_i::ping ( )

CORBA method: Test if instance is alive and responds.

References MESSAGE.

bool Engines_Parallel_Component_i::Resume_impl ( )

CORBA method: used in Supervision.

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

void Engines_Parallel_Component_i::send_parallel_proxy_object ( CORBA::Object_ptr  proxy_ref)

C++ method: Used by the Parallel Component to deploy a Parallel Salome_file.

References _orb, and _proxy.

void Engines_Parallel_Component_i::sendMessage ( const char event_type,
const char message 
)

C++ method: Send message to event channel.

References _notifSupplier, graphName(), nodeName(), and NOTIFICATION_Supplier::Send().

void Engines_Parallel_Component_i::SetCurCpu ( )

C++ method:

References _ThreadCpuUsed, and CpuUsed().

Referenced by SetCpuUsed().

Engines::Salome_file_ptr Engines_Parallel_Component_i::setInputFileToService ( const char service_name,
const char Salome_file_name 
)
virtual
Engines::Salome_file_ptr Engines_Parallel_Component_i::setOutputFileToService ( const char service_name,
const char Salome_file_name 
)
virtual
void Engines_Parallel_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_Parallel_Component_i::setStudyId ( CORBA::Long  studyId)

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.

bool Engines_Parallel_Component_i::Stop_impl ( )

CORBA method: used in Supervision.

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

bool Engines_Parallel_Component_i::Suspend_impl ( )

CORBA method: used in Supervision.

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

void Engines_Parallel_Component_i::wait_parallel_object_proxy ( )

C++ method: Used by the Parallel Component to deploy a Parallel Salome_file.

References get_parallel_proxy_object().

Referenced by setInputFileToService(), and setOutputFileToService().

Field Documentation

bool Engines_Parallel_Component_i::_CanceledThread
private

Referenced by CancelThread(), and endService().

PortableServer::ObjectId* Engines_Parallel_Component_i::_contId
protected
bool Engines_Parallel_Component_i::_destroyed
private

Referenced by destroy().

bool Engines_Parallel_Component_i::_Executed
private

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

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

Referenced by graphName(), and Names().

PortableServer::ObjectId* Engines_Parallel_Component_i::_id
protected
_t_Service_file_map Engines_Parallel_Component_i::_Input_Service_file_map
protected

Referenced by setInputFileToService().

std::string Engines_Parallel_Component_i::_instanceName
protected
std::string Engines_Parallel_Component_i::_interfaceName
protected
_t_IOR_Proxy_Service_file_map Engines_Parallel_Component_i::_IOR_Proxy_Input_Service_file_map
protected

Referenced by setInputFileToService().

_t_IOR_Proxy_Service_file_map Engines_Parallel_Component_i::_IOR_Proxy_Output_Service_file_map
protected

Referenced by setOutputFileToService().

_t_IOR_Proxy_Salome_file_map::iterator Engines_Parallel_Component_i::_IOR_Proxy_Salome_file_map_it
protected
_t_IOR_Proxy_Service_file_map::iterator Engines_Parallel_Component_i::_IOR_Proxy_Service_file_map_it
protected
bool Engines_Parallel_Component_i::_isMultiInstance = false
staticprotected
bool Engines_Parallel_Component_i::_isMultiStudy = true
staticprotected
RegistryConnexion* Engines_Parallel_Component_i::_myConnexionToRegistry
protected
std::string Engines_Parallel_Component_i::_nodeName
protected

Referenced by Names(), and nodeName().

NOTIFICATION_Supplier* Engines_Parallel_Component_i::_notifSupplier
protected
_t_Service_file_map Engines_Parallel_Component_i::_Output_Service_file_map
protected

Referenced by setOutputFileToService().

PortableServer::POA_var Engines_Parallel_Component_i::_poa
protected
_t_Proxy_Service_file_map Engines_Parallel_Component_i::_Proxy_Input_Service_file_map
protected
_t_Proxy_Service_file_map Engines_Parallel_Component_i::_Proxy_Output_Service_file_map
protected
_t_Proxy_Salome_file_map::iterator Engines_Parallel_Component_i::_Proxy_Salome_file_map_it
protected
_t_Proxy_Service_file_map::iterator Engines_Parallel_Component_i::_Proxy_Service_file_map_it
protected
_t_Salome_file_map::iterator Engines_Parallel_Component_i::_Salome_file_map_it
protected
_t_Service_file_map::iterator Engines_Parallel_Component_i::_Service_file_map_it
protected
std::string Engines_Parallel_Component_i::_serviceName
protected

Referenced by beginService().

long Engines_Parallel_Component_i::_StartUsed
private

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

int Engines_Parallel_Component_i::_studyId
protected

Referenced by getStudyId(), and setStudyId().

Engines_Parallel_Component_i* Engines_Parallel_Component_i::_thisObj
protected
long Engines_Parallel_Component_i::_ThreadCpuUsed
private
pthread_t Engines_Parallel_Component_i::_ThreadId
private
pthread_mutex_t* Engines_Parallel_Component_i::deploy_mutex
protected