Structure Summary
Structure EnumerationInfo
Structure RangeInfo
Structure IntegerList
Structure CommonInfo
Structure ScalarAttributeInfo
Structure ColumnAttributeInfo
Structure IndexAttribute
Structure EntryInfo
Structure ModuleInfo
Structure NotificationAttribute
   
Structure Details

EnumerationInfo

/* * The folowing structure is used to store all the information * of a variable which is enumerated. */
INT32 size; /* specifies the number of labels */
CHAR *defVal; /* Default value of the variable */
INT32 *values; /* Integer values the variable can take */
CHAR **label; /* The label corresponding to each integer value */

RangeInfo

/* * The folowing structure is used to store all the information * of a variable which is ranged. */
INT32 size; /* specifies the number of values */
INT32 *startVal; /* Start values specified in the range */
INT32 *endVal; /* End values specified in the range */

IntegerList

/* * The folowing structure is used to store the reference * of a ranged or enumerated Structure. */
CHAR type; /* specifies whether RANGE / ENUMERATION */
void *typeInfo; /* stores the address of the Range/Enum Info */

CommonInfo

/* * This structure is used to store all common information of a scalar, * columnar, Entry, group and table attributes. structures * ScalarAttributeInfo, ColumnAttributeInfo, EntryInfo, and ModuleInfo * are using this structure. */
CHAR *name; /* Name of the Attribute */
U_CHAR type; /* Type of the Attribute */
U_CHAR access; /* Maximum access of the Attribute */
U_CHAR *description; /* The description of the Attribute */
IntegerList *intList; /* Stores the address of Integer list */

ScalarAttributeInfo

/* * This structure is used to store the information * about a scalar Attribute. */
CommonInfo cInfo; /* Common info of the scalar Attribute */
U_CHAR *(*GetAttribute)(INT32 *, U_CHAR *);
/* Getter for scalar Attribute */
U_CHAR *(*SetAttribute)(U_CHAR *, INT32 *, U_CHAR *);
/* Setter for scalar Attribute */

ColumnAttributeInfo

/* * This structure is used to store the information * about a column Attribute. */
CommonInfo cInfo; /* Common info of the column Attribute */
#if 0
Object defVal;
CHAR isRange;
Object allowedValues;
#endif
/* Getter for table column Attribute */
U_CHAR * (*GetAttribute)(void *, INT32 *, U_CHAR *);
/* Setter for table column Attribute */
U_CHAR * (*SetAttribute)(void *, U_CHAR *, INT32 *, U_CHAR *);

IndexAttribute

/* * This structure used to store index Attribute inforamtion. It is different * from column Attribute inforamtion. It just have key of the listener and * index Attribute name. We follow this convention to handle external index. */
CHAR *key; /* Key of the table module/listener */
CHAR *indexName; /* Name of the index */

EntryInfo

/* * It is a data strcutre for the table info. It will * have the necessary information of a table Entry. */
IndexAttribute *indexes; /* Table Index information */
INT32 indexesLen; /* Table Index information length */
CHAR impliedIndexFlag; /* To identify it has implied index or not */
Vector *(*GetTableInfo)(INT32, INT32, INT32 *); /* Getter for table info */
void *(*CreateNewRow)(U_CHAR **, INT32 *, INT32);
/* Method to create a new row */
void (*FreeEntry)(Entry *); /* Method to free a table row */
U_CHAR (*GetEntry)(U_CHAR ***,INT32**,INT32 ); /* Method to get a row */

ModuleInfo

/* * This is the supper structure for all, it is a generic * one, to hold all type of attributes like scalar/column. */
CHAR *name; /* Name of the module */
U_CHAR *description; /* Description of the module */
Object *attributes; /* Set of attributes (scalars/columns) */
INT32 attribSize; /* Attributes size */
EntryInfo *eInfo; /* Entry information if table */
/* Validate function before processing reqs. */
#ifndef MULTI_PROTOCOL
CHAR (*Validate)(U_CHAR, Vector *, LONG *, LONG *);
#else
CHAR (*Validate)(U_CHAR, U_CHAR, Vector *, INT32 );
#endif
/* Update function after successful set req. */
CHAR (*Update)(U_CHAR command);
/* To add Notification Listener for this module */
CHAR (*AddNotificationListener)(NotificationListener *, NotificationFilter *, CHAR *);
/* To remove the Notification Listener for this module */
CHAR (*RemoveNotificationListener)(NotificationListener *, CHAR *);

NotificationAttribute

/* * It is used to give a complete information of a notification * variable as defined in a MIB to all the protocol adapters. * Using this Attribute value the respective adapter create * its own format of notification and send their managers. */
CHAR *moduleName; /* Module name of the trap Attribute */
CHAR *attrbName; /* Trap Attribute name */
INT32 rowIndex; /* Row index in the case of table column */