The label attribute structure contains one form of the label.
typedef struct _DCILabel { uint32 size; /* The total structure size. */ UMATextString ascii; UMAElementDescr reserved; /* Reserved. Set to 0 for Release 1. */ UMAVarLenData data; /* Start of the data. */ } DCILabel; typedef DCILabel * DCILabel ;
Labels can be used to assign metric names that are more meaningful than the metric identifier. Applications may then search the name space for a metric using the metric's label, rather than the metric id.
The label is a variable length null-terminated ASCII string, padded on the right for a word boundary if necessary. This is to ensure that the size field is always a multiple of 4 bytes.
Labels should be made unique using following criteria:
Maintaining unique labels is the responsibility of the entity that registers the class or adds a new instance. The Performance Services function will not return an error status if the label is not unique.
The provider must register a label with each name space entity (metric class, metric instance or metric datum) before an application may use the label to search the name space.
Once a metric class, instance or datum has been labeled, the metric provider cannot relabel it unless the metric has been completely unregistered.