Salome HOME
Copyright update 2021
[tools/libbatch.git] / src / Core / BatchManager.hxx
index fffb817cb943d5ee6d9eba7532817f9b23a3a912..b737e44694643d1dcdd8e1f8a54dba188e51d6f8 100644 (file)
@@ -1,23 +1,23 @@
-//  Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2021  CEA/DEN, EDF R&D, OPEN CASCADE
 //
-//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 //
-//  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.
+// 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.
+// 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
+// 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
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 /*
  * BatchManager.hxx : 
@@ -77,9 +77,13 @@ namespace Batch {
                                       long initSleepTime = 1, long maxSleepTime = 600);
     virtual void importOutputFiles( const Job & job, const std::string directory );
     bool importDumpStateFile( const Job & job, const std::string directory );
+    // copier le fichier work_file à partir du working_directory vers directory
+    virtual bool importWorkFile( const Job & job, const std::string& work_file, const std::string& directory );
+    virtual void clearWorkingDir( const Job & job );
 
     // Get the underlying communication protocol
     const CommunicationProtocol & getProtocol() const;
+    virtual void exportInputFiles(const Job & job);
 
   protected:
     std::string _hostname; // serveur ou tourne le BatchManager
@@ -91,7 +95,14 @@ namespace Batch {
     MpiImpl *_mpiImpl; // Mpi implementation to launch executable in batch script
 
     MpiImpl* FactoryMpiImpl(std::string mpiImpl);
-    void exportInputFiles(const Job & job);
+    
+    // Preprocessing done on the frontal using "PREPROCESS" parameter as a script.
+    // May throw exceptions in case of failure.
+    virtual void preprocess(const Batch::Job & job);
+    
+    // Submit to batch manager, but we suppose input files are already copied
+    // and preprocess finished without error
+    virtual const Batch::JobId runJob(const Batch::Job & job);
 
   private: