FlexLM manager. Plus de détails...
#include <arcane/impl/FlexLMTools.h>
Fonctions membres publiques | |
void | init (IParallelSuperMng *parallel_super_mng) |
Initialise le gestionnaire de licences. | |
void | setCheckInterval (const Integer t=120) |
Définit une nouvelle périodicité du contrôle des licences. | |
bool | checkLicense (const String name, const Real version, bool do_fatal=true) const |
Teste la présence d'une fonctionnalité statique. | |
void | getLicense (const String name, const Real version, Integer nb_licenses=1) |
Demande l'allocation de. | |
void | releaseLicense (const String name, Integer nb_licenses=0) |
Relache les licences de la fonctionnalité | |
void | releaseAllLicenses () |
Relache toutes les licences allouées. | |
String | featureInfo (const String name, const Real version) const |
Return info on feature. | |
Fonctions membres publiques statiques | |
static FlexLMMng * | instance () |
Accès au singleton. | |
Types privés | |
typedef std::map< String, Integer > | FeatureMapType |
Fonctions membres privées | |
FlexLMMng () | |
Constructeur. | |
virtual | ~FlexLMMng () |
Destructeur. | |
Attributs privés | |
FeatureMapType | m_features |
IParallelSuperMng * | m_parallel_super_mng |
bool | m_is_master |
Cet host est il le maître des contrôles ? | |
Attributs privés statiques | |
static FlexLMMng * | m_instance = NULL |
FlexLM manager.
Singleton for recording all taken feature licenses
Les contrôles sont effectués par le noeud maître (commRank==0) Pour vérifier la validité de ce contrôle soit la fonctionnalité ArcaneMasterFlexLM est disponible (ce qui ne locke pas les autres noeuds de l'exécution parallèle sur le noeud de licence) ou que tous les noeuds ont l'autorisation de ArcaneCore. Ceci est testé dans la phase init().
Définition à la ligne 71 du fichier FlexLMTools.h.
Définition à la ligne 125 du fichier FlexLMTools.h.
|
private |
|
inlineprivatevirtual |
Destructeur.
Définition à la ligne 79 du fichier FlexLMTools.h.
bool Arcane::FlexLMMng::checkLicense | ( | const String | name, |
const Real | version, | ||
bool | do_fatal = true |
||
) | const |
Teste la présence d'une fonctionnalité statique.
Cette fonctionnalité n'utilisera pas de jeton de licence.
do_fatal | indique s'il faut générer une erreur si non disponible |
Définition à la ligne 172 du fichier FlexLMTools.cc.
Références Arcane::IParallelSuperMng::broadcast(), featureInfo(), et m_is_master.
Return info on feature.
Définition à la ligne 267 du fichier FlexLMTools.cc.
Références Arcane::IParallelSuperMng::broadcast(), m_is_master, Arccore::ConstArrayView< T >::size(), et Arccore::String::utf8().
Référencé par checkLicense(), et getLicense().
void Arcane::FlexLMMng::getLicense | ( | const String | name, |
const Real | version, | ||
Integer | nb_licenses = 1 |
||
) |
Demande l'allocation de.
nb_licenses | licences pour la fonctionnalité |
name |
Les licences demandées sont indépendantes du nombre de processeurs
nb_licenses | vaut par défaut 1 |
Définition à la ligne 192 du fichier FlexLMTools.cc.
Références Arcane::IParallelSuperMng::broadcast(), featureInfo(), et m_is_master.
void Arcane::FlexLMMng::init | ( | IParallelSuperMng * | parallel_super_mng | ) |
Initialise le gestionnaire de licences.
Définition à la ligne 141 du fichier FlexLMTools.cc.
Références m_is_master.
|
static |
Accès au singleton.
Définition à la ligne 129 du fichier FlexLMTools.cc.
Références FlexLMMng().
Référencé par Arcane::ArcaneMain::arcaneFinalize(), et Arcane::ArcaneMainExecInfo::initialize().
void Arcane::FlexLMMng::releaseAllLicenses | ( | ) |
Relache toutes les licences allouées.
Définition à la ligne 244 du fichier FlexLMTools.cc.
Références m_is_master.
Relache les licences de la fonctionnalité
name | |
nb_licenses | vaut 0 s'il faut relacher toutes les licences |
Définition à la ligne 214 du fichier FlexLMTools.cc.
Références m_is_master.
void Arcane::FlexLMMng::setCheckInterval | ( | const Integer | t = 120 | ) |
Définit une nouvelle périodicité du contrôle des licences.
La valeur par défaut est 120s. si t == -1 : désactive le contrôle périodique si 0 <= t < 30 : la valeur n'est pas prise en compte si t >= 30 : définit une nouvelle périodicité du contrôle
Définition à la ligne 161 du fichier FlexLMTools.cc.
|
private |
Définition à la ligne 126 du fichier FlexLMTools.h.
Définition à la ligne 127 du fichier FlexLMTools.h.
|
private |
Cet host est il le maître des contrôles ?
Définition à la ligne 129 du fichier FlexLMTools.h.
Référencé par checkLicense(), featureInfo(), getLicense(), init(), releaseAllLicenses(), et releaseLicense().
|
private |
Définition à la ligne 128 du fichier FlexLMTools.h.