diff options
Diffstat (limited to 'agent/mibgroup/disman/expr/expExpression.h')
-rw-r--r-- | agent/mibgroup/disman/expr/expExpression.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/agent/mibgroup/disman/expr/expExpression.h b/agent/mibgroup/disman/expr/expExpression.h new file mode 100644 index 0000000..282e2bf --- /dev/null +++ b/agent/mibgroup/disman/expr/expExpression.h @@ -0,0 +1,91 @@ +#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 */ |