1 // Copyright (C) 2011-2016 EDF R&D
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.
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.
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
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 // Authors : Guillaume Boulant (EDF) - 31/01/2011
25 #include "SALOME_Exception.idl"
26 #include "SALOME_Component.idl"
29 // This interface is used for mesh job submission from within the
30 // SALOME plugin for PADDER.
36 // Structure to transmit the parameters requiered for the job to run
37 // the executable program on the target resource. See configure
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
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.
52 // This defines the set of temporary folders used by the jobmanager
53 // when executing a job (may depend on the job).
56 string local_inputdir;
57 string local_resultdir;
58 string remote_workdir;
61 // This defines the possible types for a job parameter
62 enum FileType {MED_CONCRETE, MED_STEELBAR};
64 // This defines a single parameter for the job initialization (a med file)
72 // This defines a set of parameters for the job initialization
73 typedef sequence<MESHJOB::MeshJobFile> MeshJobFileList;
75 // This defines a single parameter for the job initialization
76 struct MeshJobParameter
82 // This defines a set of parameters for the job initialization
83 typedef sequence<MESHJOB::MeshJobParameter> MeshJobParameterList;
85 // This defines the result data of a job
88 string results_dirname;
89 string outputmesh_filename;
93 // This defines the possible states of a job
94 enum MeshJobState {CREATED, IN_PROCESS, QUEUED, RUNNING, PAUSED, FINISHED, ERROR};
97 // This interface defines the computation services of the component
100 interface MeshJobManager: Engines::EngineComponent
103 /*! Add a resource configuration, identified by the string
104 configId and characterized by the parameters in
106 boolean configure(in string configId, in MESHJOB::ConfigParameter configParameter)
107 raises (SALOME::SALOME_Exception);
109 /*! Initialize a smesh computation job and return the job identifier */
110 long initialize(in MESHJOB::MeshJobFileList meshJobFileList,
111 in MESHJOB::MeshJobParameterList MeshJobParameterList,
113 raises (SALOME::SALOME_Exception);
115 /*! Submit the job execution and return true if submission is OK */
116 boolean start(in long jobId)
117 raises (SALOME::SALOME_Exception);
119 /*! Request the launch manager for the state of the specified job */
120 string getState(in long jobId)
121 raises (SALOME::SALOME_Exception);
123 /*! Request the launch manager for downloading the results */
124 MeshJobResults finalize(in long jobid)
125 raises (SALOME::SALOME_Exception);
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);
131 /*! Returns the set of temporary folders used by the job instance */
132 MeshJobPaths getPaths(in long jobId)
133 raises (SALOME::SALOME_Exception);
135 /*! Returns the last error message (for user display) */
136 string getLastErrorMessage();
141 #endif // _MESHJOB_IDL_