Udostępnij za pośrednictwem


Kwalifikatory BitMap i BitValue

Mapa bitowa jest liczbą całkowitą połączoną z właściwością z BitMap i kwalifikatory bitvalue. Każdy bit wartości właściwości działa jako indeks do tablicy wartości na liście BitValue. Ponieważ wiele bitów w wartości właściwości może być "włączone" w tym samym czasie, można użyć jednej wartości właściwości, aby wskazać wiele współbieżnych wartości.

Na przykład poniższy przykład kodu MOF ustanawia właściwość FileType jako właściwość BitMap i BitValues kwalifikatorów. Ponadto ustanawia, że bit o niskiej kolejności (bit 0) odpowiada wartości "Tylko do odczytu". Następny bit (bit 1) odpowiada wartości "Hidden" itd. (Nie wszystkie bity muszą być znaczące. W tym ośmio bitowym systemie dwa bity o wysokiej kolejności, 6 i 7, nie mają znaczenia.

[BitMap("0","1","2","3","4","5"),
 BitValues("Read Only",
           "Hidden",
           "System",
           "Volume Label",
           "Subdirectory",
           "Archive")]
byte FileType;

Jeśli właściwość FileType zgłasza wartość 7 (bity 0000 0111), plik ma wartość "Tylko do odczytu", "System" i "Ukryte". Jeśli właściwość FileType zgłasza wartość 18 (0x12, bity 0001 0010), jest to ukryty podkatalog.

Istnieją dwa różne typy map bitowych używających kodu MOF:

  • Kolejne znaczące bity rozpoczynające się od bitu o niskiej kolejności (bit 0)

    Można zdefiniować tablicę wartości bitowych bez jawnego określenia znaczących bitów, jeśli bity znaczące zaczynają się od bitu o niskiej kolejności (bit 0) i postępu w górę bez przerwy przez wszystkie elementy w tablicy BitValue. Poniższy przykład kodu MOF wykonuje tę samą funkcję co w poprzednim przykładzie.

    [BitValues("Read Only",
               "Hidden",
               "System",
               "Volume Label",
               "Subdirectory",
               "Archive")]
    byte FileType;
    
  • Bit znaczący poprzedzony nie znaczącym bitem

    Jeśli bit o niskiej kolejności jest nieistotny lub sekwencja bitów znaczących nie jest ciągła, należy określić zarówno BitMap, jak i BitValues kwalifikatory. Poniższy przykład kodu MOF pokazuje sytuację, w której bit o niskiej kolejności nie jest znaczący i istnieje luka w sekwencji znaczących bitów.

    [BitMap("1","4","5"),
     BitValues("Follow-up","Delivery receipt","Read receipt")]
    sint32 MailOptions;
    

    W tym przypadku ustawienie bitu o niskiej kolejności (bit 0) nie ma znaczenia i jest ignorowane. Jednak ustawienie bitu 1 (0x2) wskazuje, że ta wiadomość e-mail jest oflagowana do wykonania, ustawienie bit 4 (0x8) wskazuje, że potwierdzenie dostarczenia powinno być wysyłane do nadawcy, gdy wiadomość e-mail dotarła do skrzynki pocztowej adresata, a ustawienie bit 5 (0x10) określa, że potwierdzenie odczytu powinno być wysyłane do nadawcy po otwarciu wiadomości e-mail przez odbiorcę. Ustawienie wszystkich trzech znaczących bitów (0x1A) określa wszystkie trzy warunki dla wiadomości e-mail.

Uwagi

Podejmując decyzję, czy należy użyć BitMap/BitValues, czy ValueMap/Wartości kwalifikatorów, ustal, czy którakolwiek z wskazywanych wartości może wystąpić współbieżnie. Jeśli może istnieć wiele współbieżnych wartości, należy użyć BitMap/BitValues. Jeśli wszystkie wartości wzajemnie się wykluczają, należy użyć ValueMap/Values kwalifikatorów.

ValueMap i kwalifikatory wartości