1 // Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either
7 // version 2.1 of the License.
9 // This library is distributed in the hope that it will be useful
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // Lesser General Public License for more details.
14 // You should have received a copy of the GNU Lesser General Public
15 // License along with this library; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 #ifndef _SALOME_CONTAINERMANAGER_IDL_
21 #define _SALOME_CONTAINERMANAGER_IDL_
23 #include "SALOME_Exception.idl"
24 #include "SALOME_Component.idl"
30 Type to transmit list of machines.
32 typedef sequence<string> MachineList;
33 typedef sequence<string> CompoList;
34 typedef sequence<string> FilesList;
35 typedef sequence<string> ModulesList;
38 Type to describe properties of resource.
40 struct MachineParameters
42 string container_name;
52 long nb_proc_per_node;
59 // PaCO specific informations
61 long nb_component_nodes;
65 exception thrown if a computer is not found in the catalog
67 exception NotFound {};
69 enum policy {P_FIRST,P_CYCL,P_BEST};
70 typedef policy ResPolicy;
73 Structure used for Salome Batch Job parameters
75 struct BatchParameters
77 string batch_directory; // Where batch command will be launched
78 // and log files will be created
79 string expected_during_time; // Time for the batch
80 // has to be like this : hh:mm
81 string mem; // Minimum of memory needed
82 // has to be like : 32gb or 512mb
84 long nb_proc; // Number of processors requested
87 /*! \brief Interface of the %salomelauncher
88 This interface is used for interaction with the unique instance
91 interface SalomeLauncher
93 long submitSalomeJob( in string fileToExecute,
94 in FilesList filesToExport,
95 in FilesList filesToImport,
96 in BatchParameters batch_params,
97 in MachineParameters params ) raises (SALOME::SALOME_Exception);
98 string querySalomeJob( in long jobId, in MachineParameters params ) raises (SALOME::SALOME_Exception);
99 void deleteSalomeJob( in long jobId, in MachineParameters params ) raises (SALOME::SALOME_Exception);
100 void getResultSalomeJob( in string directory, in long jobId, in MachineParameters params ) raises (SALOME::SALOME_Exception);
108 /*! \brief Interface of the %containerManager
109 This interface is used for interaction with the unique instance
112 interface ContainerManager
114 Container FindOrStartContainer( in MachineParameters params,
115 in MachineList possibleComputers);
118 This operation launches a PaCO++ container.
120 \param Description of the container resquested.
121 \param List of computers ressources.
123 \return Container's CORBA reference.
125 Container FindOrStartParallelContainer( in MachineParameters params,
126 in MachineList possibleComputers);
128 Container StartContainer( in MachineParameters params,
130 in CompoList componentList );
132 Container GiveContainer( in MachineParameters params,
134 in CompoList componentList );
136 void ShutdownContainers();
140 /*! \brief Interface of the %resourcesManager
141 This interface is used for interaction with the unique instance
144 interface ResourcesManager
146 string FindFirst(in MachineList possibleComputers);
148 MachineList GetFittingResources( in MachineParameters params,
149 in CompoList componentList )
150 raises (SALOME::SALOME_Exception);
152 MachineParameters GetMachineParameters( in string hostname );