Salome HOME
Typo fixes by Kunda
[modules/smesh.git] / src / Tools / padder / meshjob / idl / MESHJOB.idl
1 // Copyright (C) 2011-2019  EDF R&D
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19
20 // Authors : Guillaume Boulant (EDF) - 31/01/2011
21
22 #ifndef _MESHJOB_IDL_
23 #define _MESHJOB_IDL_
24
25 #include "SALOME_Exception.idl"
26 #include "SALOME_Component.idl"
27
28 //
29 // This interface is used for mesh job submission from within the
30 // SALOME plugin for PADDER.
31 //
32 module MESHJOB
33 {
34
35   //
36   // Structure to transmit the parameters required for the job to run
37   // the executable program on the target resource. See configure
38   // service.
39   //
40   struct ConfigParameter {
41     string resname; // The name of the SALOME resource to be used
42     string binpath; // The path of the executable program on this resource
43     string envpath; // The path of the environment file on this resource
44   };
45
46   //
47   // This set of specification defines the data structure used to
48   // initialize a job on a specific resource, then supervise the job
49   // and finally retrieve the result data.
50   //
51
52   // This defines the set of temporary folders used by the jobmanager
53   // when executing a job (may depend on the job).
54   struct MeshJobPaths
55   {
56     string local_inputdir;
57     string local_resultdir;
58     string remote_workdir;
59   };
60
61   // This defines the possible types for a job parameter
62   enum FileType {MED_CONCRETE, MED_STEELBAR};
63
64   // This defines a single parameter for the job initialization (a med file)
65   struct MeshJobFile
66   {
67     string file_name;
68     FileType file_type;
69     string group_name;
70   };
71   
72   // This defines a set of parameters for the job initialization
73   typedef sequence<MESHJOB::MeshJobFile> MeshJobFileList;
74
75   // This defines a single parameter for the job initialization
76   struct MeshJobParameter
77   {
78     string name;
79     string value;
80   };
81   
82   // This defines a set of parameters for the job initialization
83   typedef sequence<MESHJOB::MeshJobParameter> MeshJobParameterList;
84
85   // This defines the result data of a job 
86   struct MeshJobResults
87   {
88     string results_dirname;
89     string outputmesh_filename;
90     boolean status;
91   };
92
93   // This defines the possible states of a job
94   enum MeshJobState {CREATED, IN_PROCESS, QUEUED, RUNNING, PAUSED, FINISHED, ERROR};
95
96   //
97   // This interface defines the computation services of the component
98   //
99
100   interface MeshJobManager: Engines::EngineComponent
101   {
102
103      /*! Add a resource configuration, identified by the string
104          configId and characterized by the parameters in
105          configParameter */
106     boolean configure(in string configId, in MESHJOB::ConfigParameter configParameter)
107       raises (SALOME::SALOME_Exception);
108
109     /*! Initialize a smesh computation job and return the job identifier */
110     long    initialize(in MESHJOB::MeshJobFileList meshJobFileList,
111                        in MESHJOB::MeshJobParameterList MeshJobParameterList,
112                        in string configId)
113       raises (SALOME::SALOME_Exception);
114
115     /*! Submit the job execution and return true if submission is OK */
116     boolean start(in long jobId)
117       raises (SALOME::SALOME_Exception);
118
119     /*! Request the launch manager for the state of the specified job */
120     string getState(in long jobId)
121       raises (SALOME::SALOME_Exception);
122
123     /*! Request the launch manager for downloading the results */
124     MeshJobResults finalize(in long jobid)
125       raises (SALOME::SALOME_Exception);
126
127     /*! Clean all data associated to this job and remove the job from the launch manager */
128     boolean clean(in long jobId)
129       raises (SALOME::SALOME_Exception);
130
131     /*! Returns the set of temporary folders used by the job instance */
132     MeshJobPaths getPaths(in long jobId)
133       raises (SALOME::SALOME_Exception);
134
135     /*! Returns the last error message (for user display) */
136     string getLastErrorMessage();
137   };
138
139 };
140
141 #endif // _MESHJOB_IDL_