logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

smiGetAttribute, smiGetFirstAttribute, smiGetNextAttribute, smiGetAttributeParentClass,

Author

       (C) 2007 Kaloyan Kanev, Jacobs University, Germany <k.kanev@jacobs-university.de>

                                                February 10, 2007                               smi_attribute(3)

Description

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

       smiGetAttribute(SmiClass*smiClassPtr,char*name) returns a  pointer  to  structSmiAttribute  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 structSmiAttribute  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  structSmiClass,
       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 structSmiType,  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  structSmiAttribute  that  represents  a  unique  attribute  or NULL if there are no unique
       attributes left in the class, or error has occurred. This function MUSTNOT 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 structSmiRange 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

Name

       smiGetAttribute,       smiGetFirstAttribute,       smiGetNextAttribute,       smiGetAttributeParentClass,
       smiGetAttributeParentType,    smiGetFirstUniqueAttribute,     smiGetNextUniqueAttribute,     smiGetEvent,
       smiGetFirstEvent,       smiGetNextEvent,       smiGetAttributeFirstRange,       smiGetAttributeNextRange,
       smiGetAttributeFirstNamedNumber, smiGetAttributeNextNamedNumber - SMI Attribute information routines

See Also

libsmi(3), smi_module(3), smi.h

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;

See Also