Sous-routine wlm_key2class

Objectif

Extrait un nom de classe d'une clé.

Bibliothèque

Bibliothèque Workload Manager (libwlm.a)

Syntaxe

#include < sys/wlm.h

Int wlm_key2class (struct wlm_args *Args, wlm_key_t Clé, void *Ctx)

Descriptif

La sous-routine wlm_key2class extrait un nom de classe à partir d'une clé 64 bits calculée à l'aide de la sous-routine wlm_class2key . La traduction de clé à classe est effectuée en passant par les fichiers de configuration WLM pour la configuration nommée dans la structure Wlm_args pointé par des args (ou tous les fichiers de configuration WLM, si aucun nom de configuration n'est donné), et en traduisant tous les noms de classe sur une clé 64 bits jusqu'à ce que la clé correspondante soit trouvée.

Ce processus prend du temps et WLM offre les sous-routines Wlm_initkey et Wlm_endkey pour les applications ayant besoin de convertir plusieurs clés 64 bits en noms de classe. Ces sous-routines peuvent être utilisées conjointement avec le sous-programme wlm_key2class pour accélérer les recherches.

La sous-routine Wlm_initkey alloue un bloc de mémoire, calcule les clés correspondant aux noms de classe dans la ou les configurations dans la portée, stocke les noms avec les clés correspondantes dans la mémoire tampon et renvoie son adresse. Cette adresse est transmise à la sous-routine wlm_key2class à l'aide de l'argument Ctx , de sorte que wlm_key2class n'a besoin que de rechercher dans la mémoire tampon.

Une fois que toutes les clés ont été converties en noms de classe, l'application doit appeler Wlm_endkey pour libérer la mémoire tampon. Sinon, pour une application qui ne convertit qu'une seule clé, il est possible d'appeler wlm_key2class directement à l'aide d'un pointeur null dans l'argument Ctx . Cela entraîne l'appel interne de la sous-routine wlm_key2class à Wlm_initkey et Wlm_endkey.

La méthode d'extraction des noms de classe via les fichiers de configuration WLM implique que si une classe a été supprimée entre le moment où le nom de classe a été converti en clé et l'appel à la sous-routine wlm_key2class , le nom correspondant à la clé est introuvable et la sous-routine wlm_key2class renvoie une erreur.

Paramètres

Article Descriptif
-args Pointeur vers une structure Wlm_args :
  • La zone Confrép doit être initialisée comme indiqué dans Wlm_initkey si Wlm_initkey n'a pas été précédemment appelé (ctx == NULL). Sinon, la zone Confrép est ignorée.
  • La zone Versindicateurs doit être initialisée avec WLM_VERSION et éventuellement WLM_MUTE.
-ctx Le gestionnaire de contexte renvoyé par Wlm_initkeyou un pointeur NULL dans le cas contraire.
-clé La clé de recherche.

Valeurs renvoyées

Lorsque l'opération wlm_key2class aboutit, le nom de la première classe correspondant à la valeur de la clé est renvoyé dans la sous-zone de nom de la structure Wlm_args pointé par Args.

Codes d'erreur

Si la sous-routine wlm_key2class échoue, l'un des codes d'erreur suivants est renvoyé:

Article Descriptif
WLM_BADVERS Numéro de version incorrect.
WLM_NOT_INITED Appel manquant à Wlm_init.
WLM_NOMEM Mémoire insuffisante.
WLM_NOCLASS Aucune classe correspondant à la clé n'a été trouvée.
WLM_EFAULT Argument Ctx ou Args non valide.