FileDocCategorySizeDatePackage
SnmpPduFactoryBER.javaAPI DocJava SE 5 API3693Fri Aug 26 14:55:04 BST 2005com.sun.jmx.snmp

SnmpPduFactoryBER

public class SnmpPduFactoryBER extends Object implements Serializable, com.sun.jmx.snmp.SnmpPduFactory
Default implementation of the {@link com.sun.jmx.snmp.SnmpPduFactory SnmpPduFactory} interface.
It uses the BER (basic encoding rules) standardized encoding scheme associated with ASN.1.

This implementation of the SnmpPduFactory is very basic: it simply calls encoding and decoding methods from {@link com.sun.jmx.snmp.SnmpMsg}.

public SnmpPdu decodeSnmpPdu(SnmpMsg msg)
throws SnmpStatusException {
return msg.decodeSnmpPdu() ;
}

public SnmpMsg encodeSnmpPdu(SnmpPdu pdu, int maxPktSize)
throws SnmpStatusException, SnmpTooBigException {
SnmpMsg result = new SnmpMessage() ; // for SNMP v1/v2
or
SnmpMsg result = new SnmpV3Message() ; // for SNMP v3
result.encodeSnmpPdu(pdu, maxPktSize) ;
return result ;
}
To implement your own object, you can implement SnmpPduFactory or extend SnmpPduFactoryBER.

This API is a Sun Microsystems internal API and is subject to change without notice.

Fields Summary
Constructors Summary
Methods Summary
public com.sun.jmx.snmp.SnmpPdudecodeSnmpPdu(com.sun.jmx.snmp.SnmpMsg msg)
Calls {@link com.sun.jmx.snmp.SnmpMsg#decodeSnmpPdu SnmpMsg.decodeSnmpPdu} on the specified message and returns the resulting SnmpPdu.

param
msg The SNMP message to be decoded.
return
The resulting SNMP PDU packet.
exception
SnmpStatusException If the encoding is invalid.
since
1.5

	return msg.decodeSnmpPdu();
    
public com.sun.jmx.snmp.SnmpMsgencodeSnmpPdu(com.sun.jmx.snmp.SnmpPdu p, int maxDataLength)
Encodes the specified SnmpPdu and returns the resulting SnmpMsg. If this method returns null, the specified SnmpPdu will be dropped and the current SNMP request will be aborted.

param
p The SnmpPdu to be encoded.
param
maxDataLength The size limit of the resulting encoding.
return
Null or a fully encoded SnmpMsg.
exception
SnmpStatusException If pdu contains illegal values and cannot be encoded.
exception
SnmpTooBigException If the resulting encoding does not fit into maxPktSize bytes.
since
1.5

	switch(p.version) {
	case SnmpDefinitions.snmpVersionOne:
	case SnmpDefinitions.snmpVersionTwo: {
	    SnmpMessage result = new SnmpMessage();
	    result.encodeSnmpPdu((SnmpPduPacket) p, maxDataLength);
	    return result;
	}
	case SnmpDefinitions.snmpVersionThree: {
	    SnmpV3Message result = new SnmpV3Message();
	    result.encodeSnmpPdu(p, maxDataLength);
	    return result;
	}
	default:
	    return null;
	}