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

📄 scopedpdu.java

📁 snmp4j
💻 JAVA
字号:
/*_############################################################################  _##  _##  SNMP4J - ScopedPDU.java  _##  _##  Copyright 2003-2005  Frank Fock and Jochen Katz (SNMP4J.org)  _##  _##  Licensed under the Apache License, Version 2.0 (the "License");  _##  you may not use this file except in compliance with the License.  _##  You may obtain a copy of the License at  _##  _##      http://www.apache.org/licenses/LICENSE-2.0  _##  _##  Unless required by applicable law or agreed to in writing, software  _##  distributed under the License is distributed on an "AS IS" BASIS,  _##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  _##  See the License for the specific language governing permissions and  _##  limitations under the License.  _##  _##########################################################################*/package org.snmp4j;import org.snmp4j.smi.OctetString;import org.snmp4j.asn1.BER;import java.io.OutputStream;import java.io.IOException;import org.snmp4j.asn1.BERInputStream;import org.snmp4j.asn1.BER.MutableByte;/** * The <code>ScopedPDU</code> class represents a SNMPv3 scoped PDU. * * @author Frank Fock * @version 1.0 */public class ScopedPDU extends PDU {  private OctetString contextEngineID = new OctetString();  private OctetString contextName = new OctetString();  /**   * Create a empty ScopedPDU.   */  public ScopedPDU() {  }  /**   * Copy constructor.   * @param other   *    a <code>ScopedPDU</code> instance.   */  public ScopedPDU(ScopedPDU other) {    super(other);    this.contextEngineID = (OctetString) other.contextEngineID.clone();    this.contextName = (OctetString) other.contextName.clone();  }  /**   * Sets the context engine ID field of the scoped PDU.   * @param contextEngineID   *    an <code>OctetString</code> instance (must not be <code>null</code>).   * @throws NullPointerException if contextEngineID == null   */  public void setContextEngineID(OctetString contextEngineID) {    if (contextEngineID == null) {      throw new NullPointerException("Context engine ID must not be null");    }    this.contextEngineID = contextEngineID;  }  /**   * Gets the context engine ID of this scoped PDU.   * @return   *    an <code>OctetString</code> instance.   */  public OctetString getContextEngineID() {    return contextEngineID;  }  /**   * Sets the context name field of this scoped PDU.   * @param contextName   *    an <code>OctetString</code> instance (must not be <code>null</code>).   */  public void setContextName(OctetString contextName) {    if (contextName == null) {      throw new NullPointerException("Context name must not be null");    }    this.contextName = contextName;  }  /**   * Gets the context name of this scoped PDU.   * @return   *    an <code>OctetString</code> instance.   */  public OctetString getContextName() {    return contextName;  }  public int getBERLength() {    int length = getBERPayloadLength();    length += 1 + BER.getBERLengthOfLength(length);    return length;  }  public int getBERPayloadLength() {    int length = super.getBERLength();    int cid = (contextEngineID == null) ? 0 : contextEngineID.length();    int cn = (contextName == null) ? 0 : contextName.length();    length += BER.getBERLengthOfLength(cid) + 1        + cid + BER.getBERLengthOfLength(cn) + 1 + cn;    return length;  }  public void encodeBER(OutputStream outputStream) throws IOException {    BER.encodeHeader(outputStream, BER.SEQUENCE, getBERPayloadLength());    contextEngineID.encodeBER(outputStream);    contextName.encodeBER(outputStream);    super.encodeBER(outputStream);  }  public Object clone() {    return new ScopedPDU(this);  }  /**   * Decodes a <code>Variable</code> from an <code>InputStream</code>.   *   * @param inputStream an <code>InputStream</code> containing a BER encoded   *   byte stream.   * @throws IOException   */  public void decodeBER(BERInputStream inputStream) throws IOException {    MutableByte mutableByte = new MutableByte();    int length = BER.decodeHeader(inputStream, mutableByte);    long startPos = inputStream.getPosition();    contextEngineID.decodeBER(inputStream);    contextName.decodeBER(inputStream);    super.decodeBER(inputStream);    if (BER.isCheckSequenceLength()) {      BER.checkSequenceLength(length,                              (int) (inputStream.getPosition() - startPos),                              this);    }  }  /**   * Returns a string representation of the object.   *   * @return a string representation of the object.   */  public String toString() {    StringBuffer buf = new StringBuffer();    buf.append(getTypeString(type));    buf.append("[reqestID=");    buf.append(requestID);    buf.append(", errorStatus=");    buf.append(errorStatus);    buf.append(", errorIndex=");    buf.append(errorIndex);    buf.append(", VBS[");    for (int i = 0; i < variableBindings.size(); i++) {      buf.append(variableBindings.get(i));      if (i + 1 < variableBindings.size()) {        buf.append("; ");      }    }    buf.append("]]");    return buf.toString();  }}

⌨️ 快捷键说明

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