偶然间发现很多人转了我之前的那篇关于SUBagentx的代码。
那个时候处于研究阶段自己也不是太明白。
其实关于JSNMP -AGENTX中的MIB很简单
我们只需要知道DefaultMOTable,和DefaultMOMutableTableModel这两个类。
对这两个类其中的方法复写可以重写我们所要的功能
- /**
- * 通用的MOTable
- */
- public class CurrencyMOTable extends DefaultMOTable {
- public CurrencyMOTable(OID oid, MOTableIndex indexDef, MOColumn[] columns) {
- super(oid, indexDef, columns, new DefaultMOMutableTableModel());
- }
- @Override
- public void get(SubRequest request) {
- LOGGER.info("从SNMP端执行了 OID:" + request.getVariableBinding().getOid().toString() + " 的 GET操作。");
- super.get(request);
- }
- @Override
- public boolean next(SubRequest request) {
- LOGGER.info("从SNMP端执行了 OID:" + request.getVariableBinding().getOid().toString() + " 的 NEXT操作。");
- return super.next(request);
- }
- @Override
- public void prepare(SubRequest request) {
- LOGGER.info("从SNMP端执行了 OID:" + request.getVariableBinding().getOid().toString() + " 的 SET操作。");
- super.prepare(request);
- }
- }
- public class CurrencyMOTableModel extends DefaultMOMutableTableModel {
- }
- /**
- * 通用的MOColumn
- */
- public class CurrencyMOColumn extends MOMutableColumn {
- public CurrencyMOColumn(int columnID, int syntax, MOAccess access,
- Variable defaultValue) {
- super(columnID, syntax, access, defaultValue);
- }
- }
- /**
- * 通用的MORow
- */
- public class CurrencyRow extends DefaultMOMutableRow2PC {
- private List list;
- public CurrencyRow(OID index, Variable[] values, List dblist) {
- super(index, values);
- list = dblist;
- }
- public void setStaticValue(int column, Variable newValue) {
- super.setValue(column, newValue);
- }
- @Override
- public void setValue(int column, Variable newValue) {
- TblSnmpInfo tblsnmpinfo = (TblSnmpInfo) list.get(column);
- usercustom.getProcess(tblsnmpinfo);
- super.setValue(column, newValue);
- }
- @Override
- public Variable getValue(int column) {
- TblSnmpInfo tblsnmpinfo = (TblSnmpInfo) list.get(column);
- Variable nowvar = null;
- try {
- nowvar = usercustom.getProcess(tblsnmpinfo);
- setStaticValue(column, nowvar);
- } catch (Exception e) {
- LOGGER.fatal("错误:CORBA服务存在问题。无法从CORBA获得内容");
- }
- return values[column];
- }
- }