Salome HOME
Issue 0020194: EDF 977 ALL: Get rid of warnings PACKAGE_VERSION already defined
[modules/kernel.git] / src / ResourcesManager / ResourcesManager.hxx
index 839faccf0df3faff69ed9b0f8f878eb1bb09db1b..9d95ee3f72d0e6a8e5637d5c12d49ee15d606b4c 100644 (file)
 #include <string>
 #include <fstream>
 #include <vector>
+#include <list>
 #include "SALOME_ResourcesCatalog_Parser.hxx"
 #include "SALOME_ResourcesCatalog_Handler.hxx"
 #include "SALOME_LoadRateManager.hxx"
+#include <sys/types.h>
+#include <sys/stat.h>
+#ifdef WNT
+#else
+#include <unistd.h>
+#endif
 
 // --- WARNING ---
 // The call of BuildTempFileToLaunchRemoteContainer and RmTmpFile must be done
 struct machineParams{
   std::string hostname;
   std::string OS;
+  std::string parallelLib;
   unsigned int nb_node;
   unsigned int nb_proc_per_node;
   unsigned int cpu_clock;
   unsigned int mem_mb;
+  unsigned int nb_component_nodes;
+  std::vector<std::string> componentList;
+  std::vector<std::string> computerList;
 };
 
 class RESOURCESMANAGER_EXPORT ResourcesException
@@ -65,12 +76,9 @@ class RESOURCESMANAGER_EXPORT ResourcesManager_cpp
     ~ResourcesManager_cpp();
 
     std::vector<std::string> 
-    GetFittingResources(const machineParams& params,
-                        const std::vector<std::string>& componentList) throw(ResourcesException);
+    GetFittingResources(const machineParams& params) throw(ResourcesException);
 
-    std::string FindFirst(const std::vector<std::string>& listOfMachines);
-    std::string FindNext(const std::vector<std::string>& listOfMachines);
-    std::string FindBest(const std::vector<std::string>& listOfMachines);
+    std::string Find(const std::string& policy, const std::vector<std::string>& listOfMachines);
 
     int AddResourceInCatalog
     (const machineParams& paramsOfNewResources,
@@ -82,9 +90,9 @@ class RESOURCESMANAGER_EXPORT ResourcesManager_cpp
 
     void DeleteResourceInCatalog(const char *hostname);
 
-    void WriteInXmlFile();
+    void WriteInXmlFile(std::string & xml_file);
 
-    const MapOfParserResourcesType& ParseXmlFile();
+    const MapOfParserResourcesType& ParseXmlFiles();
 
     const MapOfParserResourcesType& GetList() const;
 
@@ -101,7 +109,8 @@ class RESOURCESMANAGER_EXPORT ResourcesManager_cpp
       throw(ResourcesException);
 
     //! will contain the path to the ressources catalog
-    std::string _path_resources;
+    std::list<std::string> _path_resources;
+    std::list<std::string>::iterator _path_resources_it;
 
     //! will contain the informations on the data type catalog(after parsing)
     MapOfParserResourcesType _resourcesList;
@@ -109,10 +118,11 @@ class RESOURCESMANAGER_EXPORT ResourcesManager_cpp
     //! will contain the informations on the data type catalog(after parsing)
     MapOfParserResourcesType _resourcesBatchList;
 
-    SALOME_LoadRateManager _dynamicResourcesSelecter;
+    //! a map that contains all the available load rate managers (the key is the name)
+    std::map<std::string , LoadRateManager*> _resourceManagerMap;
 
-    //! different behaviour if $APPLI exists (SALOME Application) 
-    bool _isAppliSalomeDefined;    
+    //! contain the time where resourcesList was created
+    time_t _lasttime;
   };
 
 #endif // __RESOURCESMANAGER_HXX__