SYNOPSIS

#include <smi.h>

SmiAttribute *smiGetAttribute(SmiClass *smiClassPtr, char *name);

SmiAttribute *smiGetFirstAttribute(SmiClass *smiClassPtr);

SmiAttribute *smiGetNextAttribute(SmiAttribute *smiAttributePtr);

SmiType *smiGetAttributeParentType(SmiType *smiAttributePtr);

SmiClass *smiGetAttributeParentClass(SmiType *smiAttributePtr);

SmiAttribute *smiGetFirstUniqueAttribute(SmiClass *smiClassPtr);

SmiAttribute *smiGetNextUniqueAttribute(SmiAttribute *smiAttributePtr);

SmiRange *smiGetAttributeFirstRange(SmiAttribute *smiAttributePtr);

SmiRange *smiGetAttributeNextRange(SmiRange *smiRangePtr);

SmiNamedNumber *smiGetAttributeFirstNamedNumber(SmiAttribute *smiAttributePtr);

SmiNamedNumber *smiGetAttributeNextNamedNumber(SmiNamedNumber *smiNamedNumberPtr);

typedef struct SmiAttribute {

    SmiIdentifier       name;
    SmiDecl             decl;
    SmiStatus           status;
    char                *description;
    char                *reference;

} SmiAttribute;

typedef struct SmiRange {

    SmiValue            minValue;
    SmiValue            maxValue;

} SmiRange;

typedef struct SmiNamedNumber {

    SmiIdentifier       name;
    SmiValue            value;

} SmiNamedNumber;

DESCRIPTION

These functions retrieve information on a SMIng Attribute definition (SMIng).

smiGetAttribute(SmiClass *smiClassPtr, char *name) returns a pointer to struct SmiAttribute for the Attribute with the given name in the given class(smiClassPtr), or NULL if the attribute with the given name does not exist.

smiGetFirstAttribute(SmiClass *smiClassPtr) and smiGetNextAttribute(SmiAttribute *smiAttributePtr) are used to iterate through the attributes of the class given by smiClassPtr. They return a pointer to struct SmiAttribute that represents an attribute or NULL if there are no attributes left in the class, or error has occurred.

smiGetAttributeParentClass(SmiAttribute *smiAttributePtr) returns a pointer to a struct SmiClass, pointing to the parent class of the given smiAttributePtr, or NULL if the attribute does not reference class. Note that attributes always have either parent type or parent class.

smiGetAttributeParentType(SmiType *smiAttributePtr) returns a pointer to a struct SmiType, pointing to the parent type of the given smiAttributePtr, or NULL if the attribute does not reference type. Note that attributes always have either parent type or parent class.

smiGetFirstUniqueAttribute(SmiClass *smiClassPtr) and smiGetNextUniqueAttribute(SmiType *smiAttributePtr) are used to iterate through the unique attributes of the class given by smiClassPtr. They return a pointer to struct SmiAttribute that represents a unique attribute or NULL if there are no unique attributes left in the class, or error has occurred. This function MUST NOT be used for scalar classes, so it should only be called after isClassScalar() has returned 0.

smiGetAttributeFirstRange(SmiAttribute *smiAttributePtr), and smiGetAttributeNextRange(SmiRange *smiRangePtr) are used to iterate through ranges that restrict number or octet string types. Both functions return a pointer to the struct SmiRange representing the range, or NULL if there are no more ranges, or error has occurred.

smiGetAttributeFirstNamedNumber(SmiAttribute *smiAttributePtr) and smiGetAttributeNextNamedNumber(SmiNamedNumber *smiNamedNumberPtr) are used to iterate through named numbers of bits or enumerations for attributes, which reference types, and to retrieve the reference restriction of a pointer. Both functions return a pointer to the struct SmiNamedNumber representing the named number, or NULL if there are no named numbers left, or error has occurred. smiGetFirstNamedNumber() can be used to retrieve the name of the identity that is restricting Pointer type, as it is stored as the name of the first named number.

FILES

${prefix}/include/smi.h    SMI library header file

RELATED TO smiGetAttributeFirstNamedNumber…

AUTHOR

(C) 2007 Kaloyan Kanev, Jacobs University, Germany <[email protected]>