ValueMap e qualificadores de valor
Um mapa de valores é uma matriz vinculada a uma propriedade com os qualificadores Value e ValueMap.
A propriedade atua como um índice na matriz, mantendo um valor que representa um dos valores na matriz. Usando o código MOF, você pode ter os seguintes tipos de mapas de valor:
Mapeamento de matriz para um inteiro.
Você pode definir uma matriz com o qualificador Value e vincular a matriz diretamente a uma propriedade inteira, conforme mostrado no exemplo a seguir:
[Values {"OK", "Error", "Degraded", "Unknown"}, Read] sint32 Status;
Neste exemplo, o Status valor da propriedade é um índice na matriz de cadeia de caracteres definida por Value. A propriedade só pode assumir valores que correspondam às posições ordinais na matriz Value menos 1. Por exemplo, definir Status como "1" mapeia para o valor "Erro". A propriedade index pode usar apenas valores que correspondam a posições na matriz Value. Por exemplo, se a matriz tiver 10 entradas, a propriedade index poderá contar de 0 a 9, não 30 ou 177.
Mapeamento de matriz para outro mapeamento de matriz para um inteiro.
Se desejar criar um índice que não use um sistema ordinal de contagem, use o qualificador ValueMap. O qualificador ValueMap configura outra matriz que contém um sistema de numeração de índice arbitrário, conforme mostrado no exemplo a seguir:
[ValueMap {"1", "3", "99", "0"}, Values {"OK", "Error", "Degraded", "Unknown"}, Read] sint32 Status;
Embora você deva colocar os valores de ValueMap entre aspas, o WMI considera os valores inteiros. Portanto, neste exemplo, você pode definir a propriedade Status como um inteiro no ValueMap conjunto: 1, 3, 99 ou 0. O WMI mapeia cada inteiro de uma posição ordinal na matriz de cadeia de caracteres ValueMap para uma posição correspondente na matriz Valor. Por exemplo, definir Status como 0 mapeia para "Desconhecido".
Mapeamento de matriz para outro mapeamento de matriz para uma cadeia de caracteres.
Se você não quiser usar um inteiro para indexar sua matriz, você pode, em vez disso, usar uma cadeia de caracteres para manter um dos valores possíveis em sua matriz. Para fazer isso, você deve definir um de valor e matriz de ValueMap que contenham cadeias de caracteres, conforme mostrado no exemplo a seguir:
[ValueMap {"OK", "Error", "Degraded", "Unknown"}, Values {"OK", "Error", "Degraded", "Unknown"}, Read] string Status;
Com uma propriedade string, os valores reais permitidos da propriedade são as entradas na matriz ValueMap. Por exemplo, você pode definir Status como "OK" ou "Desconhecido".
Cabe ao aplicativo aproveitar os mapeamentos de forma útil. Cabe ao provedor fazer valer uma faixa legal de valores.
Comentários
Ao decidir se deve usar o ValueMap/Value ou BitMap/BitValues qualificadores, determine se algum dos valores indicados pode ocorrer simultaneamente. Se vários valores simultâneos podem existir, você deve usar BitMap/BitValues. Se todos os valores forem mutuamente exclusivos, você deverá usar os qualificadores ValueMap/Value.
Tópicos relacionados