wlm_key2class 子例程

用途

从键中检索类名。

工作负载管理器库 (libwlm.a)

语法

#include <sys/wlm.h

int wlm_key2class (struct wlm_args *阿尔格斯, wlm_key_t 钥匙, void *中央)

描述

wlm_key2class 子例程从使用 wlm_class2key 子例程计算的 64 位密钥中检索类名。 通过浏览在 wlm_args 结构中指定的由 args 指向的配置 (或所有 WLM 配置文件,如果未提供任何配置名称) 的 WLM 配置文件,并将所有类名转换为 64 位密钥,直到找到匹配的密钥为止,就可以进行键到类的转换。

此过程非常耗时,并且 WLM 为需要将多个 64 位密钥转换回类名的应用程序提供了子例程 wlm_initkeyWlm_endkey 。 这些子例程可以与 wlm_key2class 子例程一起使用,以加快搜索速度。

wlm_initkey 子例程分配一个内存块,在作用域内计算对应于配置中的类名的键,将这些名称与对应的键一起存储在内存缓冲区中,并返回其地址。 使用 中央 参数将此地址传递到 wlm_key2class 子例程,以便 wlm_key2class 只需要在内存缓冲区中进行搜索。

在将所有键都转换为类名后,应用程序必须调用 Wlm_endkey 以释放内存缓冲区。 或者,对于仅转换一个键的应用程序,可以在 中央 参数中直接使用空指针来调用 wlm_key2class 。 这导致 wlm_key2class 子例程在内部调用 wlm_initkeyWlm_endkey

通过 WLM 配置文件检索类名的方法意味着,如果在将类名转换为键和调用 wlm_key2class 子例程之间删除了类,那么将找不到对应于该键的名称,并且 wlm_key2class 子例程将返回错误。

参数

描述
-参数 指向 wlm_args 结构的指针:
  • 如果先前未调用 wlm_initkey (ctx == NULL) ,那么需要按照 wlm_initkey 中所述来初始化 康迪尔 字段。 否则,将忽略 康迪尔 字段。
  • 弗尔斯标志 字段需要使用 WLM_VERSION 和 (可选) WLM_MUTE 进行初始化。
-ctx wlm_initkey返回的上下文处理程序,否则为 NULL 指针。
-钥匙 搜索键。

返回值

wlm_key2class 操作成功时,将在 阿尔格斯所指向的 wlm_args 结构的名称子字段中返回与键值匹配的第一个类名。

错误代码

如果 wlm_key2class 子例程不成功,那么将返回下列其中一个错误代码:

描述
WLM_BADVERS 版本号不正确。
已执行 WLM_NOT_INITED 缺少对 wlm_init的调用。
WLM_NOMEM 无足够内存。
WLM_NOCLASS 找不到与键匹配的类。
WLM_EFAULT 中央阿尔格斯 参数无效。