/*
* 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 */
/*
* 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 *);
/*
* 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 */