#ifndef EXPEXPRESSION_H #define EXPEXPRESSION_H #include "disman/expr/exp_enum.h" /* * Flags relating to the expression table .... */ #define EXP_FLAG_ACTIVE 0x01 /* for expExpressionEntryStatus */ #define EXP_FLAG_FIXED 0x02 /* for snmpd.conf persistence */ #define EXP_FLAG_VALID 0x04 /* for row creation/undo */ #define EXP_FLAG_SYSUT 0x08 /* sysUpTime.0 discontinuity */ /* * Standard lengths for various Expression-MIB OCTET STRING objects: * short tags ( 32 characters) * SnmpAdminString-style values (255 characters) * "long" DisplayString values (1024 characters) */ #define EXP_STR1_LEN 32 #define EXP_STR2_LEN 255 #define EXP_STR3_LEN 1024 /* * Data structure for an expression row. * Covers both expExpressionTable and expErrorTable */ struct expExpression { /* * Index values */ char expOwner[ EXP_STR1_LEN+1 ]; char expName[ EXP_STR1_LEN+1 ]; /* * Column values for the main expExpressionTable */ char expExpression[ EXP_STR3_LEN+1 ]; char expComment[ EXP_STR2_LEN+1 ]; oid expPrefix[ MAX_OID_LEN ]; size_t expPrefix_len; long expValueType; long expDeltaInterval; u_long expErrorCount; /* * Column values for the expExpressionErrorTable */ u_long expErrorTime; long expErrorIndex; long expErrorCode; oid expErrorInstance[ MAX_OID_LEN ]; size_t expErrorInst_len; unsigned int alarm; netsnmp_session *session; netsnmp_variable_list *pvars; /* expPrefix values */ long sysUpTime; long count; long flags; }; /* * Container structure for the expExpressionTable, * and initialisation routine to create this. */ extern netsnmp_tdata *expr_table_data; extern void init_expr_table_data(void); /* * function declarations */ void init_expExpression(void); struct expExpression *expExpression_createEntry(const char *, const char *, int); netsnmp_tdata_row *expExpression_createRow(const char *, const char *, int); void expExpression_removeEntry( netsnmp_tdata_row *); struct expExpression *expExpression_getEntry(const char *, const char *); struct expExpression *expExpression_getFirstEntry( void ); struct expExpression *expExpression_getNextEntry(const char *, const char *); void expExpression_enable( struct expExpression *); void expExpression_disable( struct expExpression *); void expExpression_getData( unsigned int, void *); void expExpression_evaluate(struct expExpression *); long expExpression_getNumEntries(int); #endif /* EXPEXPRESSIONTABLE_H */