Salome HOME
bug on ccrt + eris
[tools/libbatch.git] / src / Core / Batch_BatchManager_eClient.hxx
index 938e8ecfad8940ace63758907b50f14b96f2c4aa..bc4396b328fe21507648fd2d69f31a0e0865bd25 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
@@ -36,6 +36,7 @@
 #include "Batch_MpiImpl.hxx"
 #include "Batch_BatchManager.hxx"
 #include "Batch_EmulationException.hxx"
+#include "Batch_CommunicationProtocol.hxx"
 
 #include <string>
 
@@ -43,25 +44,30 @@ namespace Batch {
 
   class Job;
 
-  class BATCH_EXPORT BatchManager_eClient : public BatchManager
+  class BATCH_EXPORT BatchManager_eClient : virtual public BatchManager
   {
   public:
     // Constructeur et destructeur
     BatchManager_eClient(const Batch::FactBatchManager * parent, const char* host="localhost",
-                         const char* protocol="ssh", const char* mpiImpl="mpich1");
+                         const char * username="",
+                         CommunicationProtocolType protocolType = SSH, const char* mpiImpl="mpich1");
     virtual ~BatchManager_eClient();
-    void importOutputFiles( const Job & job, const std::string directory ) throw(EmulationException);
+    virtual void importOutputFiles( const Job & job, const std::string directory );
+    bool importDumpStateFile( const Job & job, const std::string directory );
 
   protected:
-    std::string _protocol; // protocol to access _hostname
-    std::string _username; // username to access _hostname
+    const CommunicationProtocol & _protocol; // protocol to access _hostname
+    const std::string _username; // username to access _hostname
     MpiImpl *_mpiImpl; // Mpi implementation to launch executable in batch script
 
-    std::string createAndOpenTemporaryFile(std::ofstream & outputStream) const;
-    MpiImpl* FactoryMpiImpl(std::string mpiImpl) throw(EmulationException);
+    std::string generateTemporaryFileName(const std::string & prefix);
+    std::string createAndOpenTemporaryFile(const std::string & prefix, std::ofstream & outputStream);
+    MpiImpl* FactoryMpiImpl(std::string mpiImpl);
     void exportInputFiles(const Job & job);
+    const std::string & getTmpDir();
 
   private:
+    std::string tmpDirName; // Path to the directory for temporary files
 
   };