-// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2024 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
#include "SALOME_Container_i.hxx"
#include "RegistryConnexion.hxx"
#include "Basics_Utils.hxx"
-#include <stdio.h>
+#include "OpUtil.hxx"
+#include "Utils_SINGLETON.hxx"
+#include "SALOME_NamingService.hxx"
+#include "Utils_CorbaException.hxx"
+
+#include <cstdio>
#ifndef WIN32
#include <dlfcn.h>
#endif
*/
//=============================================================================
-Engines_Component_i::Engines_Component_i():_myConnexionToRegistry(0), _notifSupplier(0), _id(0)
+Engines_Component_i::Engines_Component_i(): _id(0), _myConnexionToRegistry(0), _notifSupplier(0)
{
//ASSERT(0);
MESSAGE("Default Constructor, not for normal use...");
bool regist ) :
_instanceName(instanceName),
_interfaceName(interfaceName),
+ _id(0),
+ _contId(0),
_myConnexionToRegistry(0),
_notifSupplier(0),
+ _graphName("") ,
+ _nodeName(""),
_ThreadId(0) ,
_ThreadCpuUsed(0) ,
_Executed(false) ,
- _graphName("") ,
- _nodeName(""),
- _id(0),
- _contId(0),
_CanceledThread(false)
{
MESSAGE("Component constructor with instanceName "<< _instanceName);
if(regist)
{
const CORBA::String_var ior = _orb->object_to_string(o);
- _myConnexionToRegistry = new RegistryConnexion(0, 0, ior,"theSession",
- _instanceName.c_str());
+ _myConnexionToRegistry = new RegistryConnexion(ior,"theSession",
+ _instanceName.c_str(), getNS());
}
if(notif)
bool regist) :
_instanceName(instanceName),
_interfaceName(interfaceName),
+ _id(0),
+ _contId(0),
_myConnexionToRegistry(0),
_notifSupplier(0),
+ _graphName("") ,
+ _nodeName(""),
_ThreadId(0) ,
_ThreadCpuUsed(0) ,
_Executed(false) ,
- _graphName("") ,
- _nodeName(""),
- _id(0),
- _contId(0),
_CanceledThread(false)
{
MESSAGE("Component constructor with instanceName "<< _instanceName);
const CORBA::String_var ior = _orb->object_to_string(_container);
if(regist)
{
- _myConnexionToRegistry = new RegistryConnexion(0, 0, ior,"theSession", _instanceName.c_str());
+ _myConnexionToRegistry = new RegistryConnexion(ior,"theSession", _instanceName.c_str(),getNS());
}
if(notif)
_notifSupplier = new NOTIFICATION_Supplier(instanceName, notif);
}
+CORBA::Boolean Engines_Component_i::isSSLMode()
+{
+ PortableServer::ServantBase *serv(_poa->reference_to_servant(_container));
+ if(!serv)
+ THROW_SALOME_CORBA_EXCEPTION("_container and component are not managed by the same POA ! Looks bad !", SALOME::INTERNAL_ERROR);
+ Abstract_Engines_Container_i *elt=dynamic_cast<Abstract_Engines_Container_i *>(serv);
+ if(!elt)
+ THROW_SALOME_CORBA_EXCEPTION("_container servant object if not a Abstract_Engines_Container_i ! It smells bad !", SALOME::INTERNAL_ERROR);
+ SALOME_NamingService_Container_Abstract *ns(elt->getNS());
+ if(!ns)
+ THROW_SALOME_CORBA_EXCEPTION("_container servant object points to a nullptr NS ! It smells bad !", SALOME::INTERNAL_ERROR);
+ return elt->isSSLMode() && (!dynamic_cast<SALOME_NamingService *>(ns));
+}
+
+SALOME_NamingService_Abstract *Engines_Component_i::getNS()
+{
+ CORBA::ORB_var orb = KERNEL::GetRefToORB();
+
+ SALOME_NamingService *naming = SINGLETON_<SALOME_NamingService>::Instance() ;
+ naming->init_orb( orb ) ;
+ return naming;
+}
//=============================================================================
/*!
Engines::FieldsDict* Engines_Component_i::getProperties()
{
Engines::FieldsDict_var copie = new Engines::FieldsDict;
- copie->length(_fieldsDict.size());
+ copie->length((CORBA::ULong)_fieldsDict.size());
std::map<std::string,CORBA::Any>::iterator it;
CORBA::ULong i = 0;
for (it = _fieldsDict.begin(); it != _fieldsDict.end(); it++, i++)
if ( !_CanceledThread )
_ThreadCpuUsed = CpuUsed_impl() ;
- float cpus=_ThreadCpuUsed/1000.;
+ float cpus=_ThreadCpuUsed/1000.f;
std::cerr << "endService for " << serviceName << " Component instance : " << _instanceName ;
std::cerr << " Cpu Used: " << cpus << " (s) " << std::endl;
MESSAGE("Send EndService notification for " << serviceName
// << _StartUsed << std::endl ;
}
#else
- // NOT implementet yet
+ // NOT implemented yet
#endif
*/
//=============================================================================
-Engines::TMPFile* Engines_Component_i::DumpPython(CORBA::Boolean isPublished,
+Engines::TMPFile* Engines_Component_i::DumpPython(CORBA::Boolean /*isPublished*/,
CORBA::Boolean isMultiFile,
CORBA::Boolean& isValidScript)
{
const char* aScript = isMultiFile ? "def RebuildData(): pass" : "";
char* aBuffer = new char[strlen(aScript)+1];
strcpy(aBuffer, aScript);
- CORBA::Octet* anOctetBuf = (CORBA::Octet*)aBuffer;
- int aBufferSize = strlen(aBuffer)+1;
- Engines::TMPFile_var aStreamFile = new Engines::TMPFile(aBufferSize, aBufferSize, anOctetBuf, 1);
+ size_t aBufferSize = strlen(aBuffer)+1;
+ Engines::TMPFile_var aStreamFile = new Engines::TMPFile((CORBA::ULong)aBufferSize, (CORBA::ULong)aBufferSize, (CORBA::Octet*)aBuffer, 1);
isValidScript = true;
return aStreamFile._retn();
}
*/
//=============================================================================
void
-Engines_Component_i::configureSalome_file(std::string service_name,
- std::string file_port_name,
- Salome_file_i * file)
+Engines_Component_i::configureSalome_file(std::string /*service_name*/,
+ std::string /*file_port_name*/,
+ Salome_file_i* /*file*/)
{
// By default this method does nothing
}
//=============================================================================
/*!
- \brief 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.
+ * \brief Return \c true if component can provide creation information.
+ */
+//=============================================================================
+bool Engines_Component_i::hasObjectInfo()
+{
+ return false;
+}
- \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.
+//=============================================================================
+/*!
+ * \brief Get creation information for object addressed by given entry.
+ */
+//=============================================================================
+char* Engines_Component_i::getObjectInfo(const char* /*entry*/)
+{
+ return CORBA::string_dup("");
+}
- \return string containing component's version, e.g. "1.0"
-*/
+//=============================================================================
+/*!
+ * \brief 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.
+ *
+ * \return string containing component's version, e.g. "1.0"
+ */
+//=============================================================================
char* Engines_Component_i::getVersion()
{
return CORBA::string_dup( "" );