Salome HOME
Update copyrights
[tools/libbatch.git] / src / LSF / Batch_BatchManager_eLSF.hxx
index d09db3d9bafc507fc149b5c1f84848d87cfea553..57fa621cf57cc01382d6949af34676ea0b368428 100644 (file)
@@ -1,4 +1,4 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//  Copyright (C) 2007-2012  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
  *
  */
 
-#ifndef _BATCHMANAGER_eLSF_H_
-#define _BATCHMANAGER_eLSF_H_
+#ifndef _BATCHMANAGER_ELSF_H_
+#define _BATCHMANAGER_ELSF_H_
 
 #include "Batch_Defines.hxx"
-
 #include "Batch_JobId.hxx"
 #include "Batch_JobInfo.hxx"
-#include "Batch_JobInfo_eLSF.hxx"
-#include "Batch_InvalidArgumentException.hxx"
-#include "Batch_ConnexionFailureException.hxx"
-#include "Batch_APIInternalFailureException.hxx"
-#include "Batch_NotYetImplementedException.hxx"
-#include "Batch_BatchManager.hxx"
+#include "Batch_FactBatchManager.hxx"
 #include "Batch_BatchManager_eClient.hxx"
 
 namespace Batch {
 
-  class Job;
-  class JobId;
-  class JobInfo;
-  class FactBatchManager;
-
   class BATCH_EXPORT BatchManager_eLSF : public BatchManager_eClient
   {
   public:
     // Constructeur et destructeur
-    BatchManager_eLSF(const FactBatchManager * parent, const char * host="localhost", const char * protocol="ssh", const char * mpiImpl="nompi") throw(InvalidArgumentException,ConnexionFailureException); // connexion a la machine host
+    BatchManager_eLSF(const FactBatchManager * parent, const char * host="localhost",
+                      const char * username="",
+                      CommunicationProtocolType protocolType = SSH, const char * mpiImpl="nompi"); // connexion a la machine host
     virtual ~BatchManager_eLSF();
 
     // Recupere le nom du serveur par defaut
@@ -75,13 +66,16 @@ namespace Batch {
     virtual void setParametre(const JobId & jobid, const Parametre & param) { return alterJob(jobid, param); } // modifie un job en file d'attente
     virtual void setEnvironnement(const JobId & jobid, const Environnement & env) { return alterJob(jobid, env); } // modifie un job en file d'attente
 
+    virtual const Batch::JobId addJob(const Batch::Job & job, const std::string reference); // ajoute un nouveau job sans le soumettre
 
   protected:
-    void buildBatchScript(const Job & job);
+    std::string buildSubmissionScript(const Job & job);
     std::string getWallTime(const long edt);
 
   private:
 
+    std::string getHomeDir(std::string tmpdir);
+
 #ifdef SWIG
   public:
     // Recupere le l'identifiant d'un job deja soumis au BatchManager