X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FParallelContainer%2FSALOME_ParallelComponent_i.hxx;h=13c4593ad5bead07fb6efd464c6d90d884504cf7;hb=d8edd4804d9e6513a17c497c1a30326d4ba0d677;hp=3a72a55ccd1e58f2fedb692ec44e71597a73f659;hpb=7d2fe213bdf5bf962ce11e253020c9d3e0bc1cce;p=modules%2Fkernel.git diff --git a/src/ParallelContainer/SALOME_ParallelComponent_i.hxx b/src/ParallelContainer/SALOME_ParallelComponent_i.hxx index 3a72a55cc..13c4593ad 100644 --- a/src/ParallelContainer/SALOME_ParallelComponent_i.hxx +++ b/src/ParallelContainer/SALOME_ParallelComponent_i.hxx @@ -1,27 +1,28 @@ -// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2021 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. // -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + // SALOME_ParallelComponent : implementation of container and engine for Parallel Kernel // File : SALOME_ParallelComponent_i.hxx -// Author : André RIBES, EDF +// Author : Andr� RIBES, EDF // Author : Paul RASCLE, EDF - MARC TAJCHMAN, CEA // #ifndef _SALOME_PARALLEL_COMPONENT_I_HXX_ @@ -38,7 +39,7 @@ #include #include -#include "SALOME_ComponentPaCO_Engines_Parallel_Component_server.h" +#include "SALOME_PACOExtensionPaCO_Engines_Parallel_Component_server.hxx" #include "NOTIFICATION.hxx" #include "RegistryConnexion.hxx" @@ -47,7 +48,7 @@ class Engines_Parallel_Container_i; #ifdef WIN32 -# ifdef CONTAINER_EXPORTS +# if defined CONTAINER_EXPORTS || defined SalomeParallelContainer_EXPORTS # define CONTAINER_EXPORT __declspec( dllexport ) # else # define CONTAINER_EXPORT __declspec( dllimport ) @@ -61,13 +62,13 @@ class CONTAINER_EXPORT Engines_Parallel_Component_i: public virtual PortableServer::RefCountServantBase { public: - Engines_Parallel_Component_i(CORBA::ORB_ptr orb, char * ior, int rank); 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); + PortableServer::POA_ptr poa, + PortableServer::ObjectId * contId, + const char *instanceName, + const char *interfaceName, + bool notif = false, + bool regist = true); virtual ~Engines_Parallel_Component_i(); @@ -79,7 +80,6 @@ public: void ping(); void destroy(); - CORBA::Long getStudyId(); Engines::Container_ptr GetContainerRef(); void setProperties(const Engines::FieldsDict& dico); @@ -92,33 +92,35 @@ public: bool Resume_impl(); CORBA::Long CpuUsed_impl() ; - virtual Engines::TMPFile* DumpPython(CORBA::Object_ptr theStudy, - CORBA::Boolean isPublished, - CORBA::Boolean& isValidScript); + virtual Engines::TMPFile* DumpPython(CORBA::Boolean isPublished, + CORBA::Boolean isMultiFile, + CORBA::Boolean& isValidScript); // CORBA operations for Salome_file virtual Engines::Salome_file_ptr getInputFileToService(const char* service_name, - const char* Salome_file_name); + const char* Salome_file_name); virtual Engines::Salome_file_ptr getOutputFileToService(const char* service_name, - const char* Salome_file_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); + 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); + const char* Salome_file_name); void send_parallel_proxy_object(CORBA::Object_ptr proxy_ref); + // Object information + virtual bool hasObjectInfo() { return false; } + virtual char* getObjectInfo(const char* entry) { return ""; } + // --- local C++ methods PortableServer::ObjectId * getId(); Engines_Parallel_Container_i *GetContainerPtr(); - bool setStudyId(CORBA::Long studyId); - static bool isMultiStudy(); static bool isMultiInstance(); static std::string GetDynLibraryName(const char *componentName); @@ -130,24 +132,23 @@ public: bool Killer( pthread_t ThreadId , int signum ); void SetCurCpu() ; long CpuUsed() ; + void CancelThread(); void wait_parallel_object_proxy(); char * get_parallel_proxy_object(); virtual void configureSalome_file(std::string service_name, - std::string file_port_name, - Engines::Parallel_Salome_file_proxy_impl * file); + std::string file_port_name, + Engines::Parallel_Salome_file_proxy_impl * file); protected: - int _studyId; // -1: not initialised; 0: multiStudy; >0: study - static bool _isMultiStudy; static bool _isMultiInstance; std::string _instanceName ; std::string _interfaceName ; - CORBA::ORB_ptr _orb; - PortableServer::POA_ptr _poa; + CORBA::ORB_var _orb; + PortableServer::POA_var _poa; PortableServer::ObjectId * _id; PortableServer::ObjectId * _contId; Engines_Parallel_Component_i * _thisObj ; @@ -196,6 +197,8 @@ private: long _StartUsed ; long _ThreadCpuUsed ; bool _Executed ; + bool _CanceledThread ; + bool _destroyed; }; #endif