X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FResourcesManager%2FResourcesManager.hxx;h=5e8c54d664fd388bb3aac7c4bd9a29863a5a75e7;hb=82668fe5e4d077072402d253497f96d4c53391f9;hp=a85f6849704d27a9b169fc25c722eccd4c1e7b03;hpb=288dc1c84630e521220d796b7c88c518f34856d5;p=modules%2Fkernel.git diff --git a/src/ResourcesManager/ResourcesManager.hxx b/src/ResourcesManager/ResourcesManager.hxx index a85f68497..5e8c54d66 100644 --- a/src/ResourcesManager/ResourcesManager.hxx +++ b/src/ResourcesManager/ResourcesManager.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 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 @@ -6,7 +6,7 @@ // 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. +// 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 @@ -30,16 +30,15 @@ #include #include #include "SALOME_ResourcesCatalog_Parser.hxx" -#include "SALOME_ResourcesCatalog_Handler.hxx" #include "SALOME_LoadRateManager.hxx" #include #include -#ifdef WNT +#ifdef WIN32 #else #include #endif -#ifdef WNT +#ifdef WIN32 #pragma warning(disable:4251) // Warning DLL Interface ... #pragma warning(disable:4290) // Warning Exception ... #endif @@ -49,10 +48,14 @@ // in a critical section to be sure to be clean. // Only one thread should use the SALOME_ResourcesManager class in a SALOME // session. -struct resourceParams +struct RESOURCESMANAGER_EXPORT resourceParams { + resourceParams(); + std::string name; std::string hostname; + bool can_launch_batch_jobs; + bool can_run_containers; std::string OS; long nb_proc; long nb_node; @@ -63,14 +66,6 @@ struct resourceParams std::vector resourceList; }; -class RESOURCESMANAGER_EXPORT ResourcesException -{ -public: - const std::string msg; - - ResourcesException(const std::string m) : msg(m) {} -}; - class RESOURCESMANAGER_EXPORT ResourcesManager_cpp { @@ -84,10 +79,9 @@ class RESOURCESMANAGER_EXPORT ResourcesManager_cpp std::vector GetFittingResources(const resourceParams& params) throw(ResourcesException); - std::string Find(const std::string& policy, - const std::vector& listOfResources); + std::string Find(const std::string& policy, const std::vector& listOfResources) const; - void AddResourceInCatalog (const ParserResourcesType & new_resource) throw(ResourcesException); + void AddResourceInCatalog (const ParserResourcesType & new_resource); void DeleteResourceInCatalog(const char * name); @@ -97,7 +91,8 @@ class RESOURCESMANAGER_EXPORT ResourcesManager_cpp const MapOfParserResourcesType& GetList() const; - ParserResourcesType GetResourcesDescr(const std::string & name); + //! thread safe + ParserResourcesType GetResourcesDescr(const std::string & name) const; protected: @@ -106,11 +101,16 @@ class RESOURCESMANAGER_EXPORT ResourcesManager_cpp void KeepOnlyResourcesWithComponent(std::vector& resources, const std::vector& componentList); - //! will contain the path to the ressources catalog + /** + * Add the default local resource in the catalog + */ + void AddDefaultResourceInCatalog(); + + //! will contain the path to the resources catalog std::list _path_resources; std::list::iterator _path_resources_it; - //! will contain the informations on the data type catalog(after parsing) + //! will contain the information on the data type catalog(after parsing) MapOfParserResourcesType _resourcesList; //! a map that contains all the available load rate managers (the key is the name) @@ -118,6 +118,9 @@ class RESOURCESMANAGER_EXPORT ResourcesManager_cpp //! contain the time where resourcesList was created time_t _lasttime; + + //! the name of the default local resource + static const std::string DEFAULT_RESOURCE_NAME; }; #endif // __RESOURCESMANAGER_HXX__