⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 snmptargetmib.java

📁 你个snmp的源码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                            OctetString contextName) {
      Address addr = getAddress();
      OctetString addrParams =
          (OctetString) getValue(idxSnmpTargetAddrParams);
      OID paramsIndex = addrParams.toSubIndex(true);
      MOTableRow paramsRow = snmpTargetParamsEntryModel.getRow(paramsIndex);
      if (paramsRow == null) {
        return null;
      }
      Target t;
      if (paramsRow.getValue(idxSnmpTargetParamsMPModel).toInt() ==
          MPv3.ID) {
        t = new UserTarget(addr,
                           (OctetString)
                           paramsRow.getValue(idxSnmpTargetParamsSecurityName),
                           contextEngineID.getValue(),
                           paramsRow.getValue(idxSnmpTargetParamsSecurityLevel).
                           toInt());
      }
      else {
        OctetString community =
            (OctetString) paramsRow.getValue(idxSnmpTargetParamsSecurityName);
        if (coexistenceProvider != null) {
          community = coexistenceProvider.getCommunity(community,
              contextEngineID, contextName);
          if (community == null) {
            return null;
          }
        }
        t = new CommunityTarget(addr, community);
      }
      t.setRetries(getValue(idxSnmpTargetAddrRetryCount).toInt());
      t.setTimeout(getValue(idxSnmpTargetAddrTimeout).toInt()*10);
      t.setVersion(paramsRow.getValue(idxSnmpTargetParamsMPModel).toInt());
      return t;
    }
  }

  // Value Validators

  /**
   * The <code>SnmpTargetParamsMPModelValidator</code> implements the value validation
   * for <code>SnmpTargetParamsMPModel</code>.
   */
  class SnmpTargetParamsMPModelValidator implements
      MOValueValidationListener {

    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
      int v = ((Integer32) newValue).getValue();
      if (session.getMessageProcessingModel(v) == null) {
        validationEvent.setValidationStatus(SnmpConstants.
                                            SNMP_ERROR_WRONG_VALUE);
        return;
      }
      //--AgentGen BEGIN=snmpTargetParamsMPModel::validate
      //--AgentGen END
    }
  }

  /**
   * The <code>SnmpTargetParamsSecurityModelValidator</code> implements the value validation
   * for <code>SnmpTargetParamsSecurityModel</code>.
   */
  static class SnmpTargetParamsSecurityModelValidator implements
      MOValueValidationListener {

    public void validate(MOValueValidationEvent validationEvent) {
      //--AgentGen BEGIN=snmpTargetParamsSecurityModel::validate
      Variable newValue = validationEvent.getNewValue();
      switch (((Integer32)newValue).getValue()) {
        case SecurityModel.SECURITY_MODEL_USM: {
          if (SecurityModels.getInstance().
              getSecurityModel((Integer32) newValue) == null) {
            validationEvent.setValidationStatus(SnmpConstants.
                                                SNMP_ERROR_WRONG_VALUE);
            return;
          }
          break;
        }
        default:
          break;
      }
      //--AgentGen END
    }
  }

  /**
   * The <code>SnmpTargetAddrTDomainValidator</code> implements the value validation
   * for <code>SnmpTargetAddrTDomain</code>.
   */
  class SnmpTargetAddrTDomainValidator implements
      MOValueValidationListener {

    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
      //--AgentGen BEGIN=snmpTargetAddrTDomain::validate
      if (newValue instanceof OID) {
        OID tdomain = (OID)newValue;
        if (!supportedAddressClasses.containsKey(tdomain)) {
          validationEvent.setValidationStatus(SnmpConstants.SNMP_ERROR_BAD_VALUE);
        }
      }
      else {
        validationEvent.setValidationStatus(SnmpConstants.SNMP_ERROR_WRONG_TYPE);
      }
      //--AgentGen END
    }
  }

  /**
   * The <code>SnmpTargetAddrTAddressValidator</code> implements the value
   * validation for <code>SnmpTargetAddrTAddress</code>.
   */
  static class SnmpTargetAddrTAddressValidator implements
      MOValueValidationListener {

    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
      OctetString os = (OctetString) newValue;
      if (!(((os.length() >= 1) && (os.length() <= 255)))) {
        validationEvent.setValidationStatus(SnmpConstants.
                                            SNMP_ERROR_WRONG_LENGTH);
        return;
      }
      //--AgentGen BEGIN=snmpTargetAddrTAddress::validate
      //--AgentGen END
    }
  }

  /**
   * The <code>SnmpTargetAddrTimeoutValidator</code> implements the value
   * validation for <code>SnmpTargetAddrTimeout</code>.
   */
  static class SnmpTargetAddrTimeoutValidator implements
      MOValueValidationListener {

    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
      long v = ((Integer32) newValue).getValue();
      if (!(((v >= 0L) /*&& (v <= 2147483647L)*/))) {
        validationEvent.setValidationStatus(SnmpConstants.
                                            SNMP_ERROR_WRONG_VALUE);
        return;
      }
      //--AgentGen BEGIN=snmpTargetAddrTimeout::validate
      //--AgentGen END
    }
  }

  /**
   * The <code>SnmpTargetAddrRetryCountValidator</code> implements the value validation
   * for <code>SnmpTargetAddrRetryCount</code>.
   */
  static class SnmpTargetAddrRetryCountValidator implements
      MOValueValidationListener {

    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
      long v = ((Integer32) newValue).getValue();
      if (!(((v >= 0L) && (v <= 255L)))) {
        validationEvent.setValidationStatus(SnmpConstants.
                                            SNMP_ERROR_WRONG_VALUE);
        return;
      }
      //--AgentGen BEGIN=snmpTargetAddrRetryCount::validate
      //--AgentGen END
    }
  }

  /**
   * The <code>SnmpTargetAddrParamsValidator</code> implements the value validation
   * for <code>SnmpTargetAddrParams</code>.
   */
  class SnmpTargetAddrParamsValidator implements
      MOValueValidationListener {

    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
      OctetString os = (OctetString) newValue;
      if (!(((os.length() >= 1) && (os.length() <= 32)))) {
        validationEvent.setValidationStatus(SnmpConstants.
                                            SNMP_ERROR_WRONG_LENGTH);
        return;
      }
      //--AgentGen BEGIN=snmpTargetAddrParams::validate
      OID paramsIndexOID = os.toSubIndex(true);
      MOTableRow paramsRow =
          snmpTargetParamsEntryModel.getRow(paramsIndexOID);
      if (paramsRow == null) {
        validationEvent.
            setValidationStatus(SnmpConstants.SNMP_ERROR_INCONSISTENT_VALUE);
      }
      //--AgentGen END
    }
  }

  public void incrementCounter(CounterEvent event) {
    if (event.getOid().equals(snmpUnavailableContexts.getOid())) {
      ((Counter32) snmpUnavailableContexts.getValue()).increment();
      event.setCurrentValue(snmpUnavailableContexts.getValue());
    }
    else if (event.getOid().equals(snmpUnknownContexts.getOid())) {
      ((Counter32) snmpUnknownContexts.getValue()).increment();
      event.setCurrentValue(snmpUnknownContexts.getValue());
    }
  }

 // Enumerations

  public static final class SnmpTargetParamsSecurityLevelEnum {
    public static final int noAuthNoPriv = 1;
    public static final int authNoPriv = 2;
    public static final int authPriv = 3;
  }

//--AgentGen BEGIN=_CLASSES

  public void rowChanged(MOTableRowEvent event) {
    if ((event.getType() == MOTableRowEvent.DELETE) &&
        (event.getRow() instanceof SnmpTargetAddrEntryRow)) {
      Variable[] vbs = new Variable[event.getRow().size()];
      vbs[idxSnmpTargetAddrTagList] = new OctetString();
      MOTableRow dummyRow =
          new DefaultMOTableRow(event.getRow().getIndex(), vbs);
      ((SnmpTargetAddrEntryRow)event.getRow()).updateUserObject(dummyRow);
    }
  }

  /**
   * Returns the SNMP Target Parameters row for the specified name.
   * @param paramsName
   *    the name of the parameters set to return.
   * @return
   *    if the row containing the target parameters if such an entry
   *    exists or <code>null</code> if no such entry exists
   */
  public MOTableRow getTargetParamsRow(OctetString paramsName) {
    if (paramsName == null) {
      return null;
    }
    OID paramsIndex = paramsName.toSubIndex(true);
    return snmpTargetParamsEntryModel.getRow(paramsIndex);
  }

  /**
   * Returns the SNMP Target Parameters row for the specified name.
   * @param paramsName
   *    the name of the parameters set to return.
   * @param activeOnly
   *    if <code>true</code> only an active row will be returned.
   * @return
   *    if the row containing the target parameters if such an entry
   *    exists or <code>null</code> if no such entry exists
   */
  public MOTableRow getTargetParamsRow(OctetString paramsName,
                                       boolean activeOnly) {
    MOTableRow row = getTargetParamsRow(paramsName);
    if (activeOnly && (row != null)) {
      if (((Integer32)row.getValue(idxSnmpTargetParamsRowStatus)).getValue()
          != RowStatus.active) {
        return null;
      }
    }
    return row;
  }

  public DefaultMOTable getSnmpTargetAddrEntry() {
    return snmpTargetAddrEntry;
  }

  public CoexistenceInfoProvider getCoexistenceProvider() {
    return coexistenceProvider;
  }

  public void setCoexistenceProvider(CoexistenceInfoProvider
                                     coexistenceProvider) {
    this.coexistenceProvider = coexistenceProvider;
  }
  //--AgentGen END

//--AgentGen BEGIN=_END
//--AgentGen END
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -