Salome HOME
tag 5.1.2 --> 5.1.3
[modules/kernel.git] / idl / SALOME_PACOExtension.idl
1 //  Copyright (C) 2007-2009  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 //  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 //  This library is free software; you can redistribute it and/or
7 //  modify it under the terms of the GNU Lesser General Public
8 //  License as published by the Free Software Foundation; either
9 //  version 2.1 of the License.
10 //
11 //  This library is distributed in the hope that it will be useful,
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 //  Lesser General Public License for more details.
15 //
16 //  You should have received a copy of the GNU Lesser General Public
17 //  License along with this library; if not, write to the Free Software
18 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 //  File   : SALOME_PACOExtension.idl
23 //  Author : AndrĂ© RIBES, EDF
24 //  $Header: 
25 //
26 #ifndef _SALOME_PACOExtension_IDL_
27 #define _SALOME_PACOExtension_IDL_
28
29 /*! \file SALOME_PACOExtension.idl 
30     \brief Interfaces for Parallel Component and Container using PaCO++
31 */
32
33 #include "SALOME_Component.idl"
34 #include "DSC_Engines.idl"
35
36 module Engines
37 {
38   interface Parallel_Component : Engines::Component {
39     void send_parallel_proxy_object(in Object proxy_ref);
40   };
41
42   interface PACO_Container : Engines::Container {
43     // Replicated Method used by the proxy to create
44     // a PACO Component
45     void create_paco_component_node_instance(in string registeredName,
46                                              in string proxy_containerName,
47                                              in long studyId) raises(SALOME::SALOME_Exception);
48
49     void updateInstanceNumber();
50   };
51
52 /*--------------------------------------------------------------------------------------------*/
53
54   /*! \brief Interface of a Parallel_DSC component.
55     This interface defines the operations needed to add a paco++ port 
56     into a parallel DSC component.
57   */
58   interface Parallel_DSC : Engines::Superv_Component, Engines::Parallel_Component {
59
60     /*!
61       This operation gives the proxy node of a paco++ port to all the nodes.
62       Only a node of the parallel component is going to add a proxy object 
63       with an internal method.
64
65       \param ref provides proxy port's reference.
66       \param provides_port_name provides port's name.
67
68       \see Engines_ParallelDSC_i::add_parallel_provides_proxy_port
69      */
70     void set_paco_proxy(in Object ref, 
71                         in string provides_port_name,
72                         in Ports::PortProperties port_prop);
73                         
74   };  
75
76   /*! \brief Interface of a Parallel_Salome_file
77     This interface is used by parallel components and containers.
78     It adds methods to enable to choose on which node of the parallel component the file has to 
79     be received.
80   */
81   interface Parallel_Salome_file : Engines::Salome_file {
82
83     /*!
84       Set a number of node for the file. Default is the node 0.
85
86       \param file_name name of the file.
87       \param node_nbr node number where the file is.
88
89       \exception raised if the file doesn't exist.
90     */
91     void setFileNode(in string file_name, in long node_nbr) raises (SALOME::SALOME_Exception);
92
93     /*!
94       Get the number of the node that actually managed the file.
95
96       \param file_name name of managed file.
97
98       \return node number of the file
99
100       \exception raised if the file doesn't exist.
101      */
102     long getFileNode(in string file_name) raises (SALOME::SALOME_Exception);
103
104     /*!
105       This method update the state of file for the Parallel_Salome_file. 
106
107       \param new_file the new state of file.
108      */
109     Engines::Container updateFile(in Engines::file new_file);
110
111     /*!
112       This method is used by the parallel implementation of recvFiles.
113
114       \exception raised if the file cannot be ok.
115      */
116     void recvFiles_node() raises (SALOME::SALOME_Exception);
117   };
118 };
119
120 #endif