summaryrefslogtreecommitdiff
path: root/agent/mibgroup/disman/expr/expExpression.h
diff options
context:
space:
mode:
Diffstat (limited to 'agent/mibgroup/disman/expr/expExpression.h')
-rw-r--r--agent/mibgroup/disman/expr/expExpression.h91
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 */