// Copyright (C) 2007-2023 CEA, EDF, OPEN CASCADE // // 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. // // 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 // // File : SALOME_PACOExtension.idl // Author : André RIBES, EDF #ifndef _SALOME_PACOExtension_IDL_ #define _SALOME_PACOExtension_IDL_ /*! \file SALOME_PACOExtension.idl \brief Interfaces for Parallel Component and Container using PaCO++ */ #include "SALOME_Component.idl" #include "DSC_Engines.idl" module Engines { interface Parallel_Component : Engines::EngineComponent { void send_parallel_proxy_object(in Object proxy_ref); }; interface PACO_Container : Engines::Container { // Replicated Method used by the proxy to create // a PACO Component void create_paco_component_node_instance(in string registeredName, in string proxy_containerName) raises(SALOME::SALOME_Exception); void updateInstanceNumber(); }; /*--------------------------------------------------------------------------------------------*/ /*! \brief Interface of a Parallel_DSC component. This interface defines the operations needed to add a paco++ port into a parallel DSC component. */ interface Parallel_DSC : Engines::Superv_Component, Engines::Parallel_Component { /*! This operation gives the proxy node of a paco++ port to all the nodes. Only a node of the parallel component is going to add a proxy object with an internal method. \param ref provides proxy port's reference. \param provides_port_name provides port's name. \see Engines_ParallelDSC_i::add_parallel_provides_proxy_port */ void set_paco_proxy(in Object ref, in string provides_port_name, in Ports::PortProperties port_prop); }; /*! \brief Interface of a Parallel_Salome_file This interface is used by parallel components and containers. It adds methods to enable to choose on which node of the parallel component the file has to be received. */ interface Parallel_Salome_file : Engines::Salome_file { /*! Set a number of node for the file. Default is the node 0. \param file_name name of the file. \param node_nbr node number where the file is. \exception raised if the file doesn't exist. */ void setFileNode(in string file_name, in long node_nbr) raises (SALOME::SALOME_Exception); /*! Get the number of the node that actually managed the file. \param file_name name of managed file. \return node number of the file \exception raised if the file doesn't exist. */ long getFileNode(in string file_name) raises (SALOME::SALOME_Exception); /*! This method update the state of file for the Parallel_Salome_file. \param new_file the new state of file. */ Engines::Container updateFile(in Engines::file new_file); /*! This method is used by the parallel implementation of recvFiles. \exception raised if the file cannot be ok. */ void recvFiles_node() raises (SALOME::SALOME_Exception); }; }; #endif