org.snmp4j.smi |
org.snmp4j.smi
Provides classes for the representation of SMIv1/v2 data types (which also
includes some basic ASN.1 primitive data types).
The org.snmp4j.smi classes are capable of BER encoding and
decoding themself to/from a byte stream. In addition, the SMI data type
classes provide convenient functions for manipulating their content.
The VariantVariable is a special class that can be
used in command responder applications to intercept access to
a SMI value.
Variable Binding Examples
import org.snmp4j.smi.*;
...
VariableBinding vb = new VariableBinding(new OID("1.3.6.1.2.1.1.4.0"));
vb.setValue(new OctetString("SNMP4J Text"));
...
vb = new VariableBinding();
vb.setOid(new OID(new int[] { 1,3,6,1,2,1,1,2,0 }));
...
vb = new VariableBinding(vb.getOid(), new IpAddress("255.255.255.255"));
...
vb = new VariableBinding(vb.getOid(), new Gauge32(2^32-1));
int syntax = vb.getSyntax();
if (syntax != SMIConstants.SYNTAX_GAUGE32) {
// never reached
}
else {
long value = ((UnsignedInteger32)vb.getValue()).getValue();
System.out.println(vb.getOid() + " = " + value);
// prints: 1.3.6.1.2.1.1.2.0 = 4294967295
}
...
The following UML class diagram shows the most important classes of the
org.snmp4j.smi package and their relationships
(relationships to other packages are not shown):
|
Java Source File Name | Type | Comment |
AbstractVariable.java | Class | The Variable abstract class is the base class for all SNMP
variables.
All derived classes need to be registered with their SMI BER type in the
smisyntaxes.properties so that the
AbstractVariable.createFromBER(BERInputStream inputStream) method
is able to decode a variable from a BER encoded stream.
To register additional syntaxes, set the system property
AbstractVariable.SMISYNTAXES_PROPERTIES before decoding a Variable for the first
time. |
Address.java | Interface | The Address interface serves as a base class for all SNMP
transport addresses. |
AssignableFromByteArray.java | Interface | The AssignableFromByteArray interface describes objects whose
value can be set from a byte array and converted back to a byte array. |
AssignableFromInteger.java | Interface | |
AssignableFromLong.java | Interface | |
AssignableFromString.java | Interface | |
BitString.java | Class | The BitString class represents the obsolete SMI type
BIT STRING which has been defined in RFC 1442 (an SNMPv2 draft) but
which has been obsoleteted by RFC 1902 and RFC 2578. |
Counter32.java | Class | The Counter32 class allows all the functionality of unsigned
integers but is recognized as a distinct SMI type, which is used for
monotonically increasing values that wrap around at 2^32-1 (4294967295). |
Counter64.java | Class | The Counter64 class represents a 64bit unsigned integer type. |
Gauge32.java | Class | The Gauge32 class is indistinguishable from
UnsingedInteger32 . |
GenericAddress.java | Class | The GenericAddress implements the decorator and factory
design pattern to provide a generic address type. |
Integer32.java | Class | The Integer32 represents 32bit signed integer values for SNMP. |
IpAddress.java | Class | The IpAddress class represents an IPv4 address SNMP variable. |
Null.java | Class | The Null class represents SMI Null and the derived
SMIv2 exception syntaxes. |
OctetString.java | Class | The OctetString class represents the SMI type OCTET STRING. |
OID.java | Class | The Object Identifier Class.
The Object Identifier (OID) class is the encapsulation of an
SMI object identifier. |
Opaque.java | Class | The Opaque class represents the SMI type Opaque which is used
to transparently exchange BER encoded values. |
ReadonlyVariableCallback.java | Class | This abstract class helps to implement a
VariantVariableCallback for a read-only Variable. |
SMIAddress.java | Class | A SMIAddress is an address that is defined by the Structure
of Management Information (SMI) and can be thereby serialized through the
Basic Encoding Rules (BER) used by the SNMP protocol. |
SMIConstants.java | Class | The SMIConstants defines the tag values for SMI syntax types. |
TcpAddress.java | Class | The TcpAddress represents TCP/IP transport addresses. |
TimeTicks.java | Class | The TimeTicks class represents the time in 1/100 seconds
since some epoch (which should be have been defined in the
corresponding MIB specification). |
TransportIpAddress.java | Class | The TransportIpAddress is the abstract base class for all
transport addresses on top of IP network addresses. |
UdpAddress.java | Class | The UdpAddress represents UDP/IP transport addresses. |
UnsignedInteger32.java | Class | UnsignedInteger32 type is an SNMP type that represents unsigned 32bit
integer values (0 to 4294967295). |
Variable.java | Interface | The Variable interface defines common attributes of all SNMP
variables. |
VariableBinding.java | Class | A VariableBinding is an association of a object instance
identifier (
OID ) and the instance's value (
Variable ). |
VariantVariable.java | Class | The VariantVariable provides a decorator for any type
of Variable instance, to be able to intercept or monitor variable
value modification by using a
VariantVariableCallback .
This class will work for implementations that use
VariantVariable.getSyntax() method to determine the variables syntax. |
VariantVariableCallback.java | Interface | The VariantVariableCallback can be implemented by
objects that want to intercept/monitor reading and writing of
a VariantVariable 's value. |